我寫代碼已超過 20 年了,并且迄今為止也教了大約 6 門編程入門課,總課時已經 1000 多個小時了。以下是一些我跟學生至少說過一次的(入門編程的)建議,排名不分先后。
歡迎來到編程的世界!
1. 編程真的很難
無論你多擅長編程,唯一能降低開發速度的,就是學習和解決問題的能力。而當你越是擅長編程的時候,這種情況就可能越明顯。這是一個非常吸引人的特質—你永遠不會厭倦編程。如果你厭倦了,那么你的做法肯定是錯的,你應該去總結思考你在重寫的代碼。
2. 編程也會是最令人沮喪的事情之一
編程的一般步驟是:嘗試解決問題 → 受挫 → 更努力地嘗試 → 回顧 → 頓悟之后最終把程序運行起來。感到沮喪太正常了,而且這種感覺永遠不會完全離去。(當你能力更強的時候,你將會面對更加困難的問題,因此也會存在同樣的情況)。但這種沮喪的感覺,將使得解決這個問題感到更加地滿足。因此你需要去適應在這種沮喪的感覺中工作。
3. 無論問題多么復雜,總會有其對應的解決方案的
當你的編程技能逐漸提升的時候,你也將更擅長也更有信心使自己保持平靜,不陷入沮喪抓狂之中。這會使得沮喪的感覺變淡,同時也將促使你去解決更加困難復雜的問題。(如果問題太簡單了,你甚至會覺得無聊的?。?/p>
4. 編程不是每個人都能做的
當我們還是孩子的時候,我們做不好任何事,但是我們也沒有意識到這些。然而作為成年人,我們幾乎沒有機會去搞砸某些事。擁抱這種感覺吧。這太正常了,因為你在做的事,并不是每個人都有能力做的。
5. 要知道和你編程的第一個小時相比,練習 10 小時之后將會完全不同
同樣的,當你完成100小時的練習之后,事情又更不一樣了。曾經有個人在博客上寫到當他在高爾夫上練習一萬小時之后,水平產生了質的飛越。編程也是這樣的。
6. 如果程序員是巫師哈利,那編程是基礎的魔法
我們努力學習,鉆研“課本知識”(計算機+互聯網),學習“單詞拼寫”(程序)。巫師也可以教其他巫師如何使用他們的魔法。我們也可讓這樣的情景在地球上實現,去創造每個人都可以使用的神奇的設備。(就像互聯網和手機)。即使沒有我們“施魔法”,這些設備同樣可以做一些不可能的事情。
7. 用好互聯網
在你開始學習編程的第一年,你所遇到的每一個問題都是其他100個人已經遇到的。解決方法在網上已經記錄下來了。你越快的學會有效的使用 Google 尋求幫助,你也將變得越開心。提示:如果你不明白代碼的原理是什么,永遠不要直接從網上復制。
8. 善于總結經驗和技巧
作為程序員,無論何時,我們都要帶一個工具箱。工具包含了我們解決問題的所有技巧。你所學的第一個對象(比如變量、for 循環等等)就像我們的螺絲刀和錘子。在你的編程生涯中將會每天都使用它們。當逐漸熟練的時候,你將開始學習如何使用更加高級的工具,這些工具可能不會被經常使用,但是卻在解決特定問題的時候非常有效。(比如數據結構中的樹、A* 算法、valgrind (內存調試工具)、調試器等)。大部分開發領域(游戲開發、 web 開發、數據庫)同樣也有著各自領域內的特定問題和解決方案。其結果就是,你所解決的任何問題在下次遇到的時候將會簡單很多。
9. 每個寫好的程序,都是一步一步編碼而來的
你幾乎可以在你的計算機上閱讀、修改、測試任何項目,同樣也包含大部分別人寫好的項目。對計算機來說,這基本上就是一項超能力。
10. 堅持大量實踐
在開發上有所進步的最好方法就是大量寫程序堅持做東西。作為老師,在我力所能及范圍內我將會給予幫助。但是一旦掌握了足夠的知識儲備,你將有能力弄懂我告訴你的任何事情而不需要太多時間。所以堅持寫程序吧。正如一位智者曾經告訴我的:“只要有耐心,成功不可避免。”
11. 多讀優秀代碼
有太多的程序員比我們聰明了。他們寫了很多代碼,只要你需要你都可以閱讀。這些代碼很有可能在 Github 上。
12. 據說,你所學的第二種編程語言將會是最難的
第一門編程語言將會塑造你對程序的思維模式(嚴肅臉?。?,當學習第二門語言的時候,你將不得不陷入前面的思維模式中。(絲毫不影響大腦思維方式的編程語言根本不值得學習)。但是當完成第二門語言的學習之后,你將能夠很快的學會其他新的語言?,F在我可以在一周的時間內把任意一門給定的命令式語言學得足夠熟練。
13. 沒有所謂的“最好的語言”
某些語言和工具只是在解決特定對應的問題時比其它的要好一點。當學習新的語言的時候,不要嘗試把你過去的思維模式帶到新的語言系統中。相應地,我們應該學會如何更“地道”用新語言編程。
14. 放松心態、保持“單純”
編程是一個巨大的樂高積木集合,充滿了各種需要被解決的有趣的問題。為了深入弄懂其中的構造,花時間去編寫有趣的程序,將比給你任何任命都要有趣的多。
15. 最優秀的程序員總是在工作之外自己也一直嘗試編程。如果你真的非常喜歡且擅長這樣,你將永遠不會失業。
16. 當你卡殼的時候,在紙上寫下你的程序。我是認真的。這非常神奇,是在編程競賽中的標準訓練模式。(我認為這個方法有效的原因是,當你不必花費精力去考慮語法的時候,你會有更多的精力去思考問題的本質和如何解決它)
-
編程
+關注
關注
88文章
3645瀏覽量
94156 -
程序員
+關注
關注
4文章
953瀏覽量
29897
發布評論請先 登錄
相關推薦
“程序員將消失”,李彥宏/黃仁勛都贊同,三大方向可“自救”

阿里云升級通義靈碼AI程序員,全面上線
機械革命發布CODE AI程序員本
AI編程工具會不會搶程序員飯碗
第五屆長沙·中國1024程序員節開幕
GitHub Copilot:你的代碼超級助手!程序員的最強福音

評論