程式設計能力體現以下兩點:
1、對可預測系統的理解:理解越深, 預測能力越強, 自己的智慧才越好發揮。 這就是為什麼學習軟體程式設計最快的方式之一是“造輪子” -- 造輪子就是為了深刻理解輪子、預測輪子的行為
2、如何把自己的目標轉化成指揮方案, 這其實就是“做應用題”的能力, 我們從小學就在練習這個能力。
真正的程式設計能力,
兩個詞概括:建模+實現
1、程式設計能力是一種解決問題的能力
如果問題沒能很好地解決, 知道再多也沒用。
2、程式設計能力是一種運用機器解決問題的能力
什麼問題可以被機器解決?如何讓機器更好地理解問題?不同的問題適用不同的程式設計語言。
提高程式設計能力的幾點:
1、與別的程式師交流。 讀別人的代碼。 這比任何書籍或培訓課程都更重要。
2、動手寫程式!最好的學習方法就是邊做邊學。
3、在本科或研究生的課程中學習程式設計課程。
4、找一些專案來做, 並且需要與其他程式師形成團隊來合作。 在項目的進行過程中, 學會辨別最出色的程式師以及最糟糕的程式師。
5、在專案中跟隨別的程式師一起工作, 瞭解如何維護那些不是你寫的代碼, 並且學習如何寫出利於他人維護的代碼。
6、學習多種不同的程式設計語言, 特別是那些與你現在所熟悉的語言有著不同的世界觀和程式設計模型的。
7、瞭解硬體對軟體的影響。 知道你的電腦執行一條指令需要多少時間, 從記憶體中取出一個字(在有緩存或沒緩存的情況下)需要多少時間, 在乙太網(或者網際網路)上傳輸資料需要多少時間, 從磁片中讀取連續的資料或者在磁片上跳轉到另一個位置需要多少時間, 等等。
8、通讀公司內部的技術和培訓資料
比如說, 穀歌有很多的代碼實驗室, 有著幾十年經驗的大牛們用各種語言寫出來的最好的實踐在實驗室裡用來做核心培訓和高品質的指導。
9、寫博客
當你學習程式設計時,你會遇到各種問題, 並且想盡辦法去解決它們。 你可以在博客中記錄下你解決問題的過程和你從中學到了什麼。
總結:
有些程式師可能把精力都花在提升程式設計技能上了, 領域知識知之甚少, 這其實在日常工作中也是極其有害的。 有些需求可能早已經有了現成、開源免費的解決方案, 或者只需要組合幾個現有軟體就可以快速搞定, 而他們卻不得不自己花大量時間去開發。 另外, 缺少領域知識, 在程式出現非預期狀況時, 很難快速定位到問題的根源, 很難解決bug。
另外還有一點可以通過自身的學習來獲取一大進步。
究竟有哪些乾貨呢?