看看大神 Paul Graham 對如何學習編程的回答

前言

我翻閱本身以前寫的博客文章,發如今 2015 年我剛開始學習編程的時候,翻譯了一段 Paul Graham 關於「How can I learn to program?」的回答。git

1.png

當時居然沒有翻譯完,我就跑去 GitHub 上面收集有意思的項目去了。三年過去了,我作了 HelloGitHub 這個項目 🤪。程序員

今天既然翻到了,那是時候把這個事情作完了。我以爲須要先介紹下 Paul Graham 是誰?github

1、Paul Graham 是誰?

保羅·格雷厄姆(英語:Paul Graham,1964年11月13日-),哈佛大學應用科學(計算機方向)博士學位,美國著名程序員、風險投資家、博客和技術做家。web

公司:他是著名的創業投資公司 Y Combinator 的創始人,這個公司有個新聞網站叫 Hacker News。編程

:他還寫了本書《Hackers & Painters》(黑客與畫家)框架

:最先的 Web 應用 Viaweb 的創辦者之一,1998 年被雅虎以近 5 千萬美圓價格收購,後成爲 Yahoo! Store。編程語言

我看完他的介紹就兩個字「大神」。下面是他對 How can I learn to program? 如何學習編程這個問題的回答。ide

2、如何學習編程

原文分爲 6 段,咱們一段段的看。開源項目介紹

2.1 第一段(入門)

原:Find a friend who knows how to program. Get them to set you up with a system where you can edit and run programs. Use whatever language they suggest for a beginner (probably it will be Python or Ruby). Then get the O'Reilly book and start working through it.學習

譯:找一個會編程的朋友,讓它幫你部署編程環境。學習他們建議的適合初學者的編程語言(多是 Python 或者 Ruby),而後找 O'Reilly 出版的關於該語言的入門系列書籍,啃完。

我的實踐:由於編程入門安裝開發環境是一件很痛苦的事情,因此最好有人幫你弄好,我當時是靠搜索引擎折騰死我了。編程語言的話找一個語法簡單,好比:Python。書的話我當時看的是《笨方法學 Python》,而後看的是《Python 核心編程第 2 版》

2.2 第二段(動力)

原:As you learn the mechanics of writing and running a program, start thinking about specific programs you want to write. That will motivate you to learn more.

譯:當你學習編程的時候,也要想一想本身想寫個什麼好玩、有意思的項目。思考你想要編寫什麼酷的程序,這樣會讓你有動力去學習更多東西。

我的實踐:「無知無畏」的想法是讓你學習更多的動力,並且它是一個「種子」。我就當時想寫一個可以畫詞翻譯的網站,而後能夠記錄我請求翻譯過的單詞和次數,不一樣翻譯次數顏色不同(綠、藍、金、暗金,玩過暗黑的都懂)。後面再看別的文章的時候就知道那些是高頻詞彙,我就能夠突破記憶一下,有助於我提升英文閱讀的能力。後來我作了這個項目 holleworld,在寫這個項目的過程當中讓我學習到了不少。當時不少代碼都是拷貝來的,可是能讓它跑起來達到我預期的效果,着實讓我查了不少資料。 😪

2.3 第三段(動手寫)

原:Don't start with a problem that's too big. A good way to begin is to take an existing program and modify it to do something new.

譯:起步的時候不要去解決太難的問題。一種好的方法建議:修改一個已有的程序,讓它實現新的、更多的功能。

我的實踐:修改項目會比較簡單,並且基於某一個流行框架去作一個項目也會輕鬆不少。首先要動手寫,改、抄都是動手,不要上來就想寫個功能強大的項目,慢慢來。我在寫上面那個項目以前,抄了兩遍廖雪峯老師的那個博客實戰項目(不用複製粘貼,手打每行代碼)😬。最開始我一大段一大段的抄,抄完 model 模塊,代碼跑都跑不起來,看不到博客的樣子讓人心灰意冷。後來我就一個功能一個功能的抄,抄完跑、調試。每一個功能調試過能看效果,而後就知道每行代碼有什麼用了,並且對項目有個總體的感受,後面修改、增長功能就很簡單了。而後我又去 GitHub 上找有趣的開源項目,想着能不修改、增長功能之類的。後面收集的項目多了,就有了 HelloGitHub

2.4 第四段(堅持寫)

原:Initially your programs will be ugly, but don't worry about that. Everyone's are. Just keep going, and they'll get better.

譯:起初你的程序可能很「醜「(代碼不簡潔、界面醜、編碼風格很差),可是不用擔憂這些,由於每一個人剛開始寫的程序都不咋樣。只要你堅持寫下去,你寫的東西會愈來愈好的。

我的實踐:我如今的代碼依然很醜,這是個漫長的過程。知道醜就行,寫多了就會變得好看和簡潔了。我還記得我最開始寫網頁的時候,每一個頁面下面都有一段聯繫方式之類的信息,而後我把這段代碼在每一個頁面最下面都寫了一遍。後來一個不懂技術的產品看了說:「你這段代碼都同樣,能不能提取出來,而後每一個頁面結尾都引用相同的那段代碼的文件?」。從哪之後我就知道一段代碼,若是在兩個地方都用了,就須要提取出來一個公共方法。還有一次,我重構項目,看到一段編碼風格特別差、沒註釋、for 循環濫用的代碼。我心想:」這 TMD 誰寫的垃圾代碼。「,擡頭一看做者是我本身。而後把後半句咽回去了,默默地把這段代碼給重寫了,毫不能讓別人發現噁心別人 😂。

2.5 第五段(看懂了,不必定能寫出來)

原:As you learn, you'll find it useful to look at programs other people have written. But you'll learn more from this once you've tried programming yourself.

譯:在學習編程的過程當中,你會發現讀別人的代碼對你會頗有幫助。但你本身動手實現從別人哪裏學到的技巧,你會收穫更多。

我的實踐:我還在這個階段摸索中,我如今是通常的代碼都能看懂,其中精妙部分可能也能理解。可是讓我本身寫就瞎了。可能這就是我要提升的方向吧,仍是要多寫、實現。看明白的不必定就懂了,懂了的不必定能實現。引用費曼的名句:「我不能創造的東西,我就不理解。」 和你們共勉 💪

2.6 第六段(結伴同行)

原:Finally, find friends who like to write programs. They can answer your technical questions; you'll get new ideas from talking to them; and they'll be the audience for your first efforts.

譯:最後一點,找到一樣喜歡編程朋友,他們能夠解答你再編程上的問題。你也會從與他們交流的過程當中收穫新的想法,他們也會是你成長的見證者。

我的實踐:編程的路上,若是有一羣志同道合的小夥伴一塊兒交流、鼓勵,相互促進的前行,那樣你會走的更遠的。「三人行,必有我師」,多和程序員的小夥伴成爲朋友,相互交流技術的過程潛移默化就會獲得提升。因此我這邊拉了個 「HelloGitHub 交流羣」(加入方式下面有),羣裏都是編程愛好者、小白、從業多年的人、Geek 等。這個羣是討論技術、開源項目、程序員相關話題,但願你們在這裏呆的開心。我也在作開源項目的過程當中、還有羣裏,結交了不少朋友😏。對了!你還能加入咱們 HG-Team 一塊兒作些有意思的事情(加入方式在最下面)。

3、最後

上面大神說的這段話是翻譯完成了,內容包含了:編程入門、動力、實踐、堅持、提升、交友🤣。大神的說的這段話,我是真的從中收益了不少。如今回頭看看,仍是有要提升地方,因此這裏把這篇文章分享給你們,其中有不對的地方歡迎指正。

成長的路上,你我都是新手,咱們何不結伴同行,成爲亦師亦友的小夥伴?加咱們 HelloGitHub-Team 的小(後面會不會變‘大’不知道)家庭,咱們須要你。​咱們可以接受和你一塊兒成長,經驗不是問題,態度決定一切:

  • 專欄負責人:負責某一專欄項目的推薦。須要:擅長某一門語言,關注開源動態。
  • 投稿者:HG 原創技術內容投稿。須要:必定文字功底,喜歡寫文章。投稿文章類別能夠爲:開源框架的深刻講解文章、我的開源項目介紹文章、學習路線、翻譯文章、技術系列文章
  • 開發者:HG 相關項目的開發。須要:熱愛編碼,有良好的編碼風格,必定的編碼經驗(語言:Python、JS)
  • 運營者:運營 HG 平臺帳號等相關事物。須要:細心、熱愛技術、懂技術最好,妹子優先
  • 贊助者:老闆您坐着就行了,剩下的交給我來幹。😂

掃描下面的二維碼,關注公衆號回覆加羣。就能夠入羣和一羣熱愛技術的小夥伴一塊兒交流成長。對上述有興趣的小夥伴也能夠去羣裏找我,我等大家!

相關文章
相關標籤/搜索