我給所有新手程序員的建議



我寫代碼已超過 20 年了,並且迄今爲止也教了大約 6 門編程入門課,總課時已經 1000 多個小時了。以下是一些我跟學生至少說過一次的(入門編程的)建議,排名不分先後。

歡迎來到編程的世界!

1. 編程真的很難

無論你多擅長編程,唯一能降低開發速度的,就是學習和解決問題的能力。而當你越是擅長編程的時候,這種情況就可能越明顯。這是一個非常吸引人的特質—你永遠不會厭倦編程。如果你厭倦了,那麼你的做法肯定是錯的,你應該去總結思考你在重寫的代碼。

2. 編程也會是最令人沮喪的事情之一

編程的一般步驟是:嘗試解決問題 → 受挫 → 更努力地嘗試 → 回顧 → 頓悟之後最終把程序運行起來。感到沮喪太正常了,而且這種感覺永遠不會完全離去。(當你能力更強的時候,你將會面對更加困難的問題,因此也會存在同樣的情況)。但這種沮喪的感覺,將使得解決這個問題感到更加地滿足。因此你需要去適應在這種沮喪的感覺中工作。

3. 無論問題多麼複雜,總會有其對應的解決方案的

當你的編程技能逐漸提升的時候,你也將更擅長也更有信心使自己保持平靜,不陷入沮喪抓狂之中。這會使得沮喪的感覺變淡,同時也將促使你去解決更加困難複雜的問題。(如果問題太簡單了,你甚至會覺得無聊的!)

4. 編程不是每個人都能做的

當我們還是孩子的時候,我們做不好任何事,但是我們也沒有意識到這些。然而作爲成年人,我們幾乎沒有機會去搞砸某些事。擁抱這種感覺吧。這太正常了,因爲你在做的事,並不是每個人都有能力做的。

5. 要知道和你編程的第一個小時相比,練習 10 小時之後將會完全不同

同樣的,當你完成100小時的練習之後,事情又更不一樣了。曾經有個人在博客上寫到當他在高爾夫上練習一萬小時之後,水平產生了質的飛越。編程也是這樣的。

6. 如果程序員是巫師哈利,那編程是基礎的魔法

我們努力學習,鑽研“課本知識”(計算機+互聯網),學習“單詞拼寫”(程序)。巫師也可以教其他巫師如何使用他們的魔法。我們也可讓這樣的情景在地球上實現,去創造每個人都可以使用的神奇的設備。(就像互聯網和手機)。即使沒有我們“施魔法”,這些設備同樣可以做一些不可能的事情。

7. 用好互聯網

在你開始學習編程的第一年,你所遇到的每一個問題都是其他100個人已經遇到的。解決方法在網上已經記錄下來了。你越快的學會有效的使用 Google 尋求幫助,你也將變得越開心。提示:如果你不明白代碼的原理是什麼,永遠不要直接從網上覆制。

8. 善於總結經驗和技巧

作爲程序員,無論何時,我們都要帶一個工具箱。工具包含了我們解決問題的所有技巧。你所學的第一個對象(比如變量、for 循環等等)就像我們的螺絲刀和錘子。在你的編程生涯中將會每天都使用它們。當逐漸熟練的時候,你將開始學習如何使用更加高級的工具,這些工具可能不會被經常使用,但是卻在解決特定問題的時候非常有效。(比如數據結構中的樹、A* 算法、valgrind (內存調試工具)、調試器等)。大部分開發領域(遊戲開發、 web  開發、數據庫)同樣也有着各自領域內的特定問題和解決方案。其結果就是,你所解決的任何問題在下次遇到的時候將會簡單很多。

9. 每個寫好的程序,都是一步一步編碼而來的

你幾乎可以在你的計算機上閱讀、修改、測試任何項目,同樣也包含大部分別人寫好的項目。對計算機來說,這基本上就是一項超能力。

10. 堅持大量實踐

在開發上有所進步的最好方法就是大量寫程序堅持做東西。作爲老師,在我力所能及範圍內我將會給予幫助。但是一旦掌握了足夠的知識儲備,你將有能力弄懂我告訴你的任何事情而不需要太多時間。所以堅持寫程序吧。正如一位智者曾經告訴我的:“只要有耐心,成功不可避免。”

11. 多讀優秀代碼

有太多的程序員比我們聰明瞭。他們寫了很多代碼,只要你需要你都可以閱讀。這些代碼很有可能在  Github  上。

12. 據說,你所學的第二種編程語言將會是最難的

第一門編程語言將會塑造你對程序的思維模式(嚴肅臉!),當學習第二門語言的時候,你將不得不陷入前面的思維模式中。(絲毫不影響大腦思維方式的編程語言根本不值得學習)。但是當完成第二門語言的學習之後,你將能夠很快的學會其他新的語言。現在我可以在一週的時間內把任意一門給定的命令式語言學得足夠熟練。

13. 沒有所謂的“最好的語言”

某些語言和工具只是在解決特定對應的問題時比其它的要好一點。當學習新的語言的時候,不要嘗試把你過去的思維模式帶到新的語言系統中。相應地,我們應該學會如何更“地道”用新語言編程。

14. 放鬆心態、保持“單純”

編程是一個巨大的樂高積木集合,充滿了各種需要被解決的有趣的問題。爲了深入弄懂其中的構造,花時間去編寫有趣的程序,將比給你任何任命都要有趣的多。

15. 最優秀的程序員總是在工作之外自己也一直嘗試編程。如果你真的非常喜歡且擅長這樣,你將永遠不會失業。

16. 當你卡殼的時候,在紙上寫下你的程序。我是認真的。這非常神奇,是在編程競賽中的標準訓練模式。(我認爲這個方法有效的原因是,當你不必花費精力去考慮語法的時候,你會有更多的精力去思考問題的本質和如何解決它)。

 

之前我也時不時給出了其他建議。但正如大多數建議一樣,如果某件事對你真的很重要,相信你自己會主動去研究清楚的。

快樂編程 :D






原文地址:http://blog.jobbole.com/96647/

發佈了15 篇原創文章 · 獲贊 8 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章