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

零基礎(chǔ)入門:如何在樹莓派上編寫和運行Python程序?

Gemini Vision + Raspberry Pi 化身“數(shù)字導(dǎo)盲犬”?

阿里云升級通義靈碼AI程序員,全面上線
ADS1194調(diào)試串口輸出,在一定時間的轉(zhuǎn)換后數(shù)據(jù)會少一位輸出,為什么?
TMS320C55x DSP CPU程序員參考補充

RVFA 認(rèn)證賦能未來:資深 IT 專家 Andrea Gallo 的職業(yè)轉(zhuǎn)型技術(shù)之旅

UCD3138A64/UCD3138128程序員手冊

機械革命發(fā)布CODE AI程序員本
AI編程工具會不會搶程序員飯碗
軟通動力子公司鴻湖萬聯(lián)助陣鴻蒙1024程序員節(jié)成功舉辦

第五屆長沙·中國1024程序員節(jié)開幕
技術(shù)干貨驛站 ▏深入理解C語言:掌握程序結(jié)構(gòu)知識

評論