有人問我"怎樣才能成爲技術高手"

有一位網友,今年大二,詢問我怎樣才能成爲技術高手. 我並不確定如何定義所謂的技術高手, 但是既然問到我, 便列舉一下可能相關的事實.

首先請明確以下事實:
A. 掙錢能力和技術能力相關,但不成正比。
B. 他人的信任與信賴和技術能力無關。
C. 泡妞能力和技術能力可能負相關,請謹慎面對。

沒有人知道未來是什麼樣子. 也沒有人能夠保證自己永遠都是技術大潮中的弄潮兒. 如果你只是擔心知識的老化, 擔心能否長期的保有一份工作. 那麼只需要不失去別人的信任,越來越熟練的做好本職工作就可以了。任何工作中當時用到的知識永遠都只是很少的部分,只要別人給你機會重新學習,你的人生經驗就會是你最寶貴的財富。

大二的小孩不要每天盡整些沒用的東西。認真學好自己的專業課。做軟件開發並不需要什麼高深的知識,但是接受知識傳承,得到全面教育的時機卻是一去不回的。

不要怕學得多,更不要自以爲學得多。我在學校的時候,橫掃圖書館的哥們並不少。

讀了書並不意味着懂得了道理。用自己的語言能否講述學過的內容?能否用個簡圖勾勒Unix內核的結構?學過一門語言到底它有什麼不同,能否勾勒發展的脈絡?你學過的東西並不是你的東西. 你既無法消費它,也無法販賣它. 在書本以外你是否真的意識到這些知識的存在性? 最重要的問題是, 你創造的東西在哪裏?

讀書開始的時候半知半解是正常的。這就如同張無忌背七傷拳經,總有一天你會懂得,只是需要不時的去回味。數學典籍中經常有這樣的說法,本書內容是封閉的,只需要某某領域知識,但是掌握它需要數學成熟性。成熟是需要時間的。

讀書不是以數量取勝。一個領域中類似的書只要細讀一本,完整的讀下來,讀的時候多方參照,做簡短的筆記。讀一些原始的文獻,讀大師的原著。儘量選用英文的經典教材。懂一點學科的歷史,知道什麼是文化。瞭解一些學術界的八卦,吹牛的時候多一些談資。

學習任何一個領域都需要深入, 需要掌握大量的相關細節, 因爲只有這樣才能夠不再被細節問題所幹擾, 而集中精力於真正的思想核心.

拳不離手,曲不離口。連Knuth老兄都在勤奮的敲程序,所以請不要找藉口。

天下沒有免費的午餐。不付出相應的成本,無法得到相應的回報。學習沒有捷徑,只有方法。只是方法正確並不能保證你走到終點,毅力,機緣都是不可或缺的。你是否能夠1天10小時以上持續地考慮同一個問題,是否能夠保持同樣的注意力堅持到每本書的最後一頁, 是否一年365天對新鮮事物總是保有一份天真的好奇。

在工作中除了抽象的思想和具體的技術知識之外,還有大量小的trick. 例如調用equals的時候把常量放在前方if(MY_CONST.equals(myVar)). 一般不可能通過書本學習掌握所有這些技巧,只能在編程的實踐中觀察總結,更多的時候是要你主動思考,重新去發現這些方法。一個人的工作效率很大程度上是受其工作習慣所制約的,你是否在隨時隨地的改進自己的工作?

怎樣才能做技術高手?這個問題我並不知道答案。公司裏所需要的也不是技術高手,而是能夠解決問題的人。不過如何培養合格的程序員,在公司內部也有兩種看法。adun說要給他們指明職業發展的方向,關心他們遇到的困惑。這是P大的浪漫主義情懷。X羅說要給他們可以完成但是不易完成的任務,等待大浪淘沙後的結果。這是T大的現實主義精神。

開源是不可阻擋的歷史洪流,我們只能改變自己的思維方式,調整自己的行爲目標來適應它。

面對未來的挑戰,Alan Kay有一句名言:The best way to predict the future is to invent it。如果你不知道該怎麼創造,那就先從捏造開始練習吧----事物之間總是可以建立關聯的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章