有關編程的一個惱人的地方是,就算看書之后覺得自己掌握了,真正寫的時候還是經常會出錯。它只能通過實踐來掌握,所以需要很多耐心。當你被折磨得想要放棄的時候,或許可以換一種角度,以此為契機掙脫過去那么多年的學院派教育。想一想吧,我們在學校里待了那么長時間,幾乎所有的學習路徑都是「先閱讀,再應用」或者「只閱讀,不應用」,是時候體驗一下如何在應用中學習了。
面對批評:
有些人做出想要的東西之后就已經很滿足,但有些人可能會想要展示一下自己的作品并獲取一些意見。因為業余,所以當專業程序員看到這樣的作品之后可能會非常不屑,甚至大肆批評。這個時候不要自卑或害怕,因為他們對作品的了解都是片面的。他們只是一味拿專業的技術標準來衡量,不清楚你只是想做出一個東西,不清楚你只是業余時間在做,不清楚你在整體上的考量和妥協。作為這個作品的創造者,你才是專家,如果按照他們的要求,你可能永遠都做不完。
之所以提到這一點,是覺得業余愛好者大都是自己一個人慢慢自學,被打擊一下說不定就完全放棄了,那樣實在可惜。對于專業程序員的批評,如果有用就記下來,下次不要再犯就好,沒有必要氣餒或者把之前的東西重寫一遍。從無到有實現了自己的創意已經很了不起,不需要對專業程序員有什么交代。
注意事項:
1. 不要過度關注編程語言的優劣。很多編程語言都可以達到相同的目的,選中一個之后把它用好就是了。和別人爭辯哪個編程語言更好是很多職業程序員的一大愛好,是他們生活的一部分。我們是業余愛好者,只要求工具夠用,不需要像他們那樣一定要用「最好的」語言。
2. 用不著關注國內的 IT 紅人和八卦。對學習編程和做東西沒有任何益處。(補充:這條可能帶了個人情緒,請自行判斷,但我關注了那么久覺得確實沒有任何益處。。。 >_<)
3. 不要自稱 "Geek","Hacker" 或其它什么東西。當開始給自己貼標簽的時候,就會試圖表現得像那類人,束縛自己的同時還會做出許多愚蠢的事情。我們要做的事情很簡單,就是掌握技術并做出能用的東西,沒有必要給自己貼任何標簽。事實上,能做出東西的人比自稱 "Geek" 或 "Hacker" 的人稀有得多。
4. 利用開源代碼。感謝開源事業的蓬勃發展和無數程序員的無私奉獻,使我們可以學習和使用別人的代碼。當需要一些功能時,可以先去找一下是否已經有開源的實現,沒有必要自己從頭寫。
5. 先找到自己想做的東西。不要為了學習編程而學習,那樣就算記住了很快也會忘掉。如果實在找不到什么想做的,可以考慮給一些公益組織義務做一個網站,鍛煉技能的同時還可以關心一下社會。
6. 保持初心。業余愛好者擁有的最寶貴的財富就是初學者的心,也正是因為這份初心,才讓代碼質量問題變得并不那么重要??上У氖?,隨著技術越來越熟練,初心會漸漸消失,做東西的時候首先考慮的不是結果而是實現方式,當初那個滿腦子想法苦于不能用技術實現的人不見了,取而代之的是一個精通技術卻乏味的人。所以,作為業余愛好者,應該把「完成作品」和「保持業余」作為首要目標,如果精通技術的代價是失去初心,那就不要精通好了,反正并不想以此為生。
學習資料:
由于我的工作大部分是 web develop, 所以這里給出一些不錯的相關資料。如果你想要做一個簡單的網站或者 app, 那么這些知識夠用了。也歡迎補充好的入門資料,我會不斷更新。(之所以沒有推薦其它方面的資料,是因為我并沒有相關的經驗,不知道其中優劣。編程可做的東西非常多,比如 Arduino 硬件編程,有興趣的可以去找一下資料,也歡迎補充。)
1. Head First HTML 與 CSS、XHTML 。在大學圖書館偶爾看到過這本書的英文版,很喜歡。本書非常適合初學者,里面很多插圖,寫得也很有趣。
2. A Beginner’s Guide to HTML & CSS 一個很好的在線學習 HTML & CSS 基礎的網站。
3. An Advanced Guide to HTML & CSS HTML & CSS 進階,里面還包含了 jQuery 的學習。
4. 笨方法學 Ruby. 這本在線電子書是 Learn Ruby The Hard Way 的繁體中文翻譯,也是 Zed Shaw 寫的 Learn XXX The Hard Way 系列中的一本,之所以推薦 Ruby 是因為我很喜歡這門語言。本書非常注重實踐,全書由 52 個習題構成,當你完成這些習題的時候就已經寫了很多代碼了。我覺得書中后面的一些習題(比如讀寫文件)可以先跳過,用到的時候再去學習。
5. Codecademy 備受推崇的在線學習編程網站,而且有中文界面,非常推薦。
6. Code School 和 Codecademy 類似的在線學習網站,評價不錯。
7. Learn CSS Layout 很實用的學習 CSS 的網站。
最后再次提醒一下,如果你選擇了學習編程,以后很長一段時期內業余時間都會被占據,而且期間會體會到很多痛苦。但是當完成第一個作品的時候,你就會發現之前的痛苦都是值得的,它們是創造不可或缺的一部分。
后記:想要寫這篇文章的時候激情滿滿,覺得自己在做好事,但寫的過程中一直誠惶誠恐,非常擔心文中業余愛好者可能面臨的問題都是自己臆想出來的。畢竟在這個行業待的時間不算短,早就變成了一個乏味的職業人士。如果你是一個想學習編程的業余愛好者,歡迎留言告訴我哪些擔心是不必要的,以及漏掉了哪些東西,我會及時修正或補充。
原文轉自:http://www.kuqin.com/pragmatic/20130627/334617.html