華文網

這幾件事可能是學習程式設計中更為重要的!

為什麼這些優秀的工程師能夠自學程式設計? 是優質的教程,高效的工具?還是他們的天賦?我和身邊的同事一起討論了一番,覺得也許下面的幾件事可能是學習程式設計中更為重要的:

1、學習如何自主學習

學習程式設計技術,涉及到多個種類的知識學習,不存在一本完美教程能夠教授你所有方面的知識。你必須學會自己搞定問題,學習知識。程式設計技術的更新速度也很快,你必須自主吸收營養,保持知識更新。這裡最重要的能力就是自主學習!

2、學習程式設計需要實戰

學習程式設計最重要的一點就是實戰。你無法只通過書本和習題學習程式設計知識,

就像無法通過閱讀教程來學會游泳。如果你要學會游泳,就必須下水!

3、學習如何去解決問題

把注意力放在“如何去解決問題”上面,而不是這個問題答案本身。比如,你是如何去分析一個Bug? 通過哪些路徑來驗證你的想法?這個解決方案是否還能解決其他問題?

4、先學會使用Google

你真的會使用Google嗎?如何使用Google搜索網站內的內容;如何使用google.com而不是google.co.jp;在Google搜索中空格和雙引號有什麼用?工程師每天都會不少的時間在Google上,學會使用工具是你開始自己搞定問題的第一步。

5、在敲代碼中記憶

剛學C語言的時候,自己還沒有電腦。由於是利用寒假自學,也沒有實驗室的機器可以用。你能想像我當時有多痛苦。死記硬背32個關鍵字都讓我頗費了一番功夫。

在沒有電腦的情況下學程式設計和學馬經差別不大,除了死記硬背做選擇填空題之外沒有什麼太好的方法,我一度有了放棄的打算,因為完全沒有樂趣可言。

後來有了電腦,我第一次把自己寫在紙上的代碼敲在電腦上運行的時候,那感覺變得完全不一樣了。

6、讓IDE幫你檢查代碼

為什麼試錯能提高學習效率呢?很多同學有這樣的精力,信心滿滿地輸入了一段代碼,覺得肯定不會有任何問題,結果IDE告訴編譯失敗。最鬱悶的是報錯信息還看不懂,你很抓狂。這時候你能做的就是用自己僅有的知識進行排查。是不是什麼地方少了個分號?是不是大括弧沒有匹配?是不是關鍵字寫錯了?是不是標頭檔沒有包含?是不是...?

有時候編譯器告訴你代碼編譯成功,你很開心。可是運行的時候卻彈出了錯誤資訊。一堆你根本看不懂得提示資訊。你又鬱悶了。

7、在調試中培養邏輯性思維

最難的還不是這些。有時候你的代碼能夠成功運行,沒有任何問題。當你剛舒一口氣的時候,突然發現結果並不是你想要的。上機練習時常聽到這樣的自言自語:“怎麼是3,應該是5呀...”。

這個時候,你該發揮IDE的優勢調試你的代碼了。最常用的方法就是通過打斷點、單步調試的辦法跟著代碼的邏輯一步一步走,過程中要監視著各個變數是如何變化的。這樣,你就會在某一次迴圈中突然發現原來你有個環節沒有考慮周全。

後話

曾經何時,想要建立一個網站服務,需要購買動轍數萬元的專業伺服器,支付昂貴的機房託管和頻寬租賃費用,聘請專業的開發人才或團隊來研發,再通過廣告和運營活動去拉攏用戶……門檻如此之高,使絕大多數人望而卻步,只有企業才能負擔得起。

而現如今,雲伺服器甚至比家裡的寬頻都便宜了,各種開源技術唾手可得,各種開放平臺提供了免費的用戶和管道,一個APP通過社交網路可能瞬間火遍全國……有了樹莓派這樣超便宜的卡片電腦,再加上現在各種家電都在向智慧化發展,想通過程式設計在實現自己的一些小創意,真是不要太簡單。

我們正身處一個只要願意思考,就能改變世界的時代。那麼你是願意去改變世界,還是等待被世界改變呢?

另外還有一點可以通過自身的學習來獲取一大進步。

當你剛舒一口氣的時候,突然發現結果並不是你想要的。上機練習時常聽到這樣的自言自語:“怎麼是3,應該是5呀...”。

這個時候,你該發揮IDE的優勢調試你的代碼了。最常用的方法就是通過打斷點、單步調試的辦法跟著代碼的邏輯一步一步走,過程中要監視著各個變數是如何變化的。這樣,你就會在某一次迴圈中突然發現原來你有個環節沒有考慮周全。

後話

曾經何時,想要建立一個網站服務,需要購買動轍數萬元的專業伺服器,支付昂貴的機房託管和頻寬租賃費用,聘請專業的開發人才或團隊來研發,再通過廣告和運營活動去拉攏用戶……門檻如此之高,使絕大多數人望而卻步,只有企業才能負擔得起。

而現如今,雲伺服器甚至比家裡的寬頻都便宜了,各種開源技術唾手可得,各種開放平臺提供了免費的用戶和管道,一個APP通過社交網路可能瞬間火遍全國……有了樹莓派這樣超便宜的卡片電腦,再加上現在各種家電都在向智慧化發展,想通過程式設計在實現自己的一些小創意,真是不要太簡單。

我們正身處一個只要願意思考,就能改變世界的時代。那麼你是願意去改變世界,還是等待被世界改變呢?

另外還有一點可以通過自身的學習來獲取一大進步。