駁 《駁 《駁 《停止學習框架》》》

caiyongji發表於2018-12-20

今天看了三篇文章。
《停止學習框架》
《駁 《停止學習框架》》
《駁 《駁 《停止學習框架》》》

說實話,我湊熱鬧的心態超過辯論(抬槓)的心態。本文只是藉此機會表達一些觀點,至於切不切提不重要,能引發你的一些思考才重要。
上面三篇文章或多或少都能給讀者提供一些思考,希望大家結合自己的能力、所處的環境找到適合自己的方向,不要完全跟著作者的思路走。

技術是工具

當你掌握了某種框架,你就有能力用它來解決問題,這個情景和大猩猩用石頭砸開核桃沒什麼區別。我寫的《如何成為10倍速的程式設計師》中有提到,要善用工具。你的大腦的運算力是有限的,你的精力、你的生命都是有限的。你一生可以做的事情是有限的。懂得尋找捷徑讓人類成為了智慧生物。
框架,無疑是程式設計師解決問題的工具。至於要把工具掌握到什麼程度,取決於你需要解決的問題。
那麼要不要學習框架呢?
當然要。但要在你精力允許的範圍內,選擇性精通。什麼是選擇性精通呢?就是你把你感興趣的、業務需要的、技術展示的(跟同事、面試官胡吹)知識點弄清楚。
大家也看到了,原文來自國外,講究work life balance,想想自己的國情,不可盡信。
那是不是演算法真的永不過時,掌握演算法就一通百通呢?
這麼說吧,即使你懂得Leetcode的全部演算法,你也要懂業務。當你沉浸在某個區域性的細節去實現時,你會專注進去,此時你無法從巨集觀的角度去審視整個業務,每個人都是這樣。要想站在更高的角度考慮問題,就要“片面”的掌握某些東西來保持頭腦清醒,以做一些更巨集觀的判斷和決策。這聽起來有些反常識,大家可以仔細思考下。
業務與細節的平衡,恰恰是框架與演算法的平衡。 這個平衡點大家自己掌握。

流水的工具

我用java最多,從SSH到Spring MVC, 從jdk1.4到java12,技術的更新換代速度可以說是“指數加速型”(加速度增長,而不是速度增長)變化。當你鑽研透SSH框架之後發現它已經被淘汰了。
當你還在使用eclipse時,實習生已經用idea作為IDE了,你試了兩下,覺得有些彆扭,還是原來的開發工具順手。你原有的習慣,成為了你接受新事物的阻力。越是深入掌握某種舊的事物,越是如此。 這就是程式設計師35歲(30歲?whatever)到達職業瓶頸的根本原因。
最最現實的是,程式設計師本身,就是公司實現業務的工具。 像國外常說的"make the world a better place",你想想就好。

至於鐵打的演算法?不好意思,演算法也是工具。拿NLP來說,從傳統的規則模型到基於統計的深度模型,歷時25年之多,這其中演算法的改進不知凡幾,為什麼?演算法是人類對世界認識的歸納總結,看似不破的真理一直在被顛覆。只是這個週期較長,大家體會不深而已。

吃飯

最近失業、降薪的不少,大家有沒有想想原因?其中一定不乏演算法牛人,也一定不乏精通框架的。他們之所以被裁(降薪),是因為他們是可替代的。

駁 《駁 《駁 《停止學習框架》》》

我們其實很容易得出結論,大家趨之若鶩的方向,一定是不可替代性最差的。再狹隘點來講,大家越認同哪個觀點,往往這個觀點就越容易是錯的。 不要選擇人人競相追逐的方向作為你的核心競爭力!

演算法、語言、框架都是程式設計師賺錢的工具。想想晚上吃什麼才是真格的。再說,你們難道真要new 一個Object?

我的意思是,雖然深入技術能讓程式設計師賺更多的錢………… 算了,程式設計師也賺不了什麼錢,不說了。

相關文章