碼農之路:我早該做好的5件事
在過去幾個月的時間里,我一直在學習如何用Objective-C構建iOS應用,時至今日才終于有點眉目了。不得不感嘆,這比我想象得要難多了。
糾結,困惑,沮喪,實際寫代碼的時間甚至還沒有尋找并修復bug的時間多。但是當我終于可以把玩自己親手做的手機app時,忽然感覺所有的努力都是值得的!
在制作app的道路上,我學到了很多——不僅僅關于如何開發iOS應用程序,還有如何總體規劃,甚至編程技能也提高了。但是其實有很多問題是可以避免的,如果我在學Objective-C時采取其他方式的話。
整合這些經驗,如果今天讓我重新學習代碼的話,我會這么做:
找個“碼友”
首先要找到一個可以交流心得的“碼友”。
我的一個朋友Josh,Python開發人員,也會Objective-C,非常感激我提出的很多實質性的問題(“如何再次運用if語句?”),而當我百思不得其解時,他也會幫我調試一二,正可謂教學相長。
老實說,有這樣一個耐心的碼農朋友給我解釋基本編程原理,真心是獲益匪淺。如果早點有這樣一個朋友,我相信我就不會Objective-C上走這么多彎路。
利用所有可利用的資源
如果你身邊沒有這樣一個耐心的碼友,那么你可以使用下面的方式來獲取幫助:
1. Stack Overflow
碰到特定的語法和開發問題,上Stack Overflow就對了。不過我個人還沒有在網上提問過,因為光看別人提的問題和回答就夠了。
2. 訂閱網絡期刊
網絡中的學習資源錯綜復雜,有時候往往能讓初學者暈頭轉向,一些網絡期刊定期會將近期的精華內容推送給你,讓你有選擇地學習。我們推薦由碼農網推出的《快樂碼農》,你可以直接點此郵件訂閱。
3. Treehouse
通過視頻課程和內置的社區論壇教你如何編程。
4. askadev
通過askadev可以在你需要幫助的時候,給你連接到經驗豐富的開發人員。我自己沒試過,不知道這是否涵蓋了所有的編程語言,不過有一點是好的,it’s free。所以下次你要是碰到什么難題,盡可以試試。
5. Codementor
如果你不介意花點錢來獲取資深開發人員的幫助,那么不妨試試Codementor。它會為你匹配至最優選項,語種包括Android、iOS、HTML、CSS、PHP、Python等等等等。
6.橡皮鴨法
此方法的關鍵點在于,將自己的問題大聲地宣之于口,解釋給橡皮鴨或者其他沒有生命的物體,哪怕是烤面包機亦可。
在你解說的時候,往往會靈機一現突然想到答案(或者發現有不對的地方)。
學習基本原理
很多東西之所以會成為攔路虎,是因為我們自己本身的錯誤理解或者不熟悉正在使用的技術所造成的。
例如,使用API意味著需要了解API是如何工作的,如何使用POST和GET請求,以及如何解析JSON數據。甚至連如何接收JSON數據也需要知道。
想要建立一個iOS應用程序,光學習Objective-C是不夠的——至少這不足以構建我心目中的app。曾經的我就犯過這樣的錯誤。
更糟糕的是,我時常會卡住,即使有論壇解說、網上教程以及書籍章節的解釋,但是這些通通跳過了一些基本原理——以為我知道但其實我并不知道。
如果再讓我重新學習,我一定好好掌握HTML和CSS的基礎知識。如果再讓我做app我絕對不會再像現在這樣盲目開始,而是會先打好基礎。
第一門語言
任何語言都是財富,哪怕我學的HTML和CSS至今也沒有用武之地,我依然不覺得學習它們是浪費時間。
初學者一開始可以試試用HTML和CSS建立網站。這些其實都是標記語言,因此可能對你建立手機或者web應用程序沒多大幫助。但是即使沒有用處,我們在學習的過程中還是能獲得很多的知識和經驗,方便我們學習下一門編程語言。
如果你剛開始學代碼但不知道從何處著手,可是挑選自己喜歡的書本、教程或者在線課程,只要你覺得ok就別猶豫。一旦你有了確切的目標,還可以馬上轉去學習其他不同的編程語言。
找一個自己真心想做的項目
我自認是個還算用功的人,先是在十幾歲的時候學習了HTML和CSS,然后又在幾年前學了有關Ruby的基礎知識,以及最近又將目標放在了Python上面。
然后我又決定去學習Objective-C,不過我學習Objective-C不是因為我更喜歡它也不是因為看到別人在學我也眼饞,而是因為我想做一個iOS應用程序——我真心非常想親自做一個。
可以說,學習Objective-C語言的激情比以往任何一種語言都要來得高昂。
最重要的是,當我碰到各種難題時,當我沮喪時,我都沒有想過要放棄——因為這是我真心想做的項目。即便是小小的一個進步,都是我堅持下去的動力。
如果你正在考慮學習編碼并且沒有其他任何限制條件,那就選擇自己真正熱愛和構建項目所需要的編程語言。
每個人的學習過程都不盡相同,所以你的經歷經驗可能與我的也存在不同,不過如果你正在起步階段或者正在考慮學習編碼,我真心希望我的經驗教訓能幫你學得更快。
譯文鏈接:http://www.codeceo.com/article/what-to-do-if-be-programmer.html
英文原文:What I would do differently if I was learning to code today
翻譯作者:碼農網 – 小峰