? ? 在我十幾歲的時候就開始玩甲級級棒球破婆。我水平很差涮总,但當我決定要做好什么事時,最終總能如我愿〉灰ǎ現(xiàn)在我是計算機專業(yè)3年紀的學生瀑梗。在編程上,有些事情和體育是截然不同的:棒球教練可以教會你如何打棒球裳扯,但一個計算機教授卻不能教你如何編程抛丽。
? 我很吃驚,在整個大一期間饰豺,我的老師或教授從來不點評我的代碼亿鲜,大二時更是如此。我們的作業(yè)很多,題目很難蒿柳,但在完成了數(shù)據(jù)結構課上的2000行的代碼后饶套,我從來沒有收到過老師的任何一條評論——只要程序能編譯通過,單元測試顯示沒有錯誤垒探,這就行了妓蛮。直到遇到了一個小組開發(fā)的項目,我才認識到我的代碼寫的多爛圾叼,我才開始詢問:好的程序應該如何寫蛤克。
? 但是,什么樣的代碼才是好的代碼夷蚊?我花了大量的時間來提高代碼的可讀性构挤,添加注釋。我努力模仿UNIX的哲學觀惕鼓,力求簡約儿倒,首先讓程序能跑起來,在此基礎之上呜笑,在需要的情況在進行優(yōu)化。復雜的東西要逐步增加彻犁。除非必要叫胁,我不使用線程。但是汞幢,說實話驼鹅,我不知道這是不是好的代碼(說實話,我覺得自己水平很差)森篷。
? 我很幸運输钩,能和一群優(yōu)秀同學一起工作,他們都是出色的程序員仲智,他們在微軟买乃、谷歌、亞馬遜等公司實習钓辆。他們的觀點都很一致剪验,認為自己的知識都是自己總結或從其他程序員那里學到的。即使是非常資深的軟件工程師也有這樣的看法前联。所以功戚,我的結論是:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?所有程序員都是自學成才的。
? 我受的教育給了我很好的基礎:數(shù)據(jù)結構似嗤,算法啸臀,數(shù)據(jù)庫設計,并行計算烁落,網絡編程乘粒,敏捷開發(fā)以及各種編程模式豌注。但所有的這些,即使是它們使得編程更高效和更精巧谓厘,你仍然可能用錯它們——我曾經看過一些學生在這些課程上學習成績非常好幌羞,但寫的代碼卻讓人想哭。
? 我并不認為學過計算機科學竟稳、軟件工程或得到一個大學文憑會有多大的用處属桦,如果你想靠寫代碼為生,自學是你不可缺少的途徑他爸。
--------------------------------------------------------------------------------------------------
? ? ? ? 前兩天看到一個文章聂宾,題名為《所有的程序員都是自學成才》。當時沒有什么特別的想法诊笤,只是覺得自己也確實是基本上靠自學來掌握新的知識的系谐。但是今天在公車上沒事好好想了一想,想明白了讨跟,原來對于程序員來說纪他,只能自學才能成才。
? ? ? ? ? ? 這個道理似乎有點奇怪晾匠,因為我們從小都是由老師教授新知識的茶袒。我自己也實驗過,掌握同樣的高中課本上的知識凉馆,自己自學的速度通常比老師講授的速度要慢一倍的時間薪寓。即一個知識點,如果你自己要看 2 小時的書才能理解的話澜共,有好的老師給你講解的話向叉,只需要一個小時就夠了。所以嗦董,我一直希望在學習各種東西的時候都能去聽一些課程母谎,因為我認為這樣節(jié)省了我學習的時間。
? ? ? ? ? ? ?但是這個道理在程序員這一行行不通展懈,為什么這么說呢销睁?原因有 2 點:
? ? ? ? ? 計算機編程相關的知識更新速度很快。同時存崖,國內的 IT 類資料的翻譯質量相當差冻记,原創(chuàng)的優(yōu)秀書籍也很少。所以来惧,我們通常需要靠閱讀英文才能掌握最新的資料冗栗。
? ? ? ? ? ?計算機編程知識需要較多的專業(yè)知識積累和實踐。
? ? ? ? ? 如果一個培訓機構有一個老師,他強到能夠通過自己做一些項目來積累很多專業(yè)知識和實踐隅居,并且不斷地從國外資料上學習最新的技術钠至。那么這個人在企業(yè)里面會比在國內的培訓機構更有施展自己能力的空間。國內的培訓機構因為受眾面的原因胎源,基本上還是培養(yǎng)那種沒有自學能力棉钧,只能做低級技術活的代碼民工,所以對老師的技術要求不會那么高涕蚤,自然也不會給出很誘人的薪水宪卿。但是企業(yè)就不一樣了刁俭,企業(yè)需要不停地利用新技術來增強自己的產品競爭力翻伺,所以對于 IT 企業(yè)來說,產品的競爭就是人才的競爭烂翰,所以給優(yōu)秀的人能夠開出很高的薪水烦粒。
? ? ? ? 所以休溶,我們不能期望從 IT 類培訓機構中學習到最新的技術,一切只能通過我們自學扰她。當然兽掰,自學之后在同行之間相互交流,對于我們的技術成長也是很有用的徒役。
? ? 所以禾进,各位同行,別想有人能夠教你廉涕,一切還是靠自己吧。
via http://www.vaikan.com/all-programmers-are-self-taught/
via http://blog.devtang.com/2012/01/20/we-must-self-learning/