技術的道與術
寫的很好,轉載下, 轉載自:https://www.cnblogs.com/doit8791/p/8157453.html
技術的道與術
回歸平淡是一個熱門技術必然的趨勢,五年在IT領域已經是很長久的時間了。回歸平淡的未必是技術過時,反而可能是技術過於普及。但是如果你精通的不只是淺表,那是否回歸平淡對你來說就無所謂了。
趨勢和熱點肯定是對前途/薪水會有加成,比如大數據(其實火了很久了),或者AI。在幾年內會對從業者薪酬有不小的增幅。但是就如你所說,熱點和趨 勢是會降溫的,比如慢慢社會上就會有越來越多會搗鼓Spark的人,能跑Tensorflow的人,熱點帶來的紅利會慢慢減少到消失的。有些人會迷茫,為 什麽自身價值似乎越來越低,是不是要換一個熱點;但是有些人卻越做越深入,越來越資深,越走越順。
我的想法是,工程師應該更重視“道”而不是“術”,才能保持競爭力。
什麽是“術”?
比如,“遣詞造句”,是術。如果你是一個作家,遣詞造句無疑是必備技能。
同樣,“熟悉編程語言”是術。作為一個程序員,熟悉自己常用的語言的特性,完全是必須的。
類比一下大數據,應用開發或者數據庫領域。如何配置Hadoop,架設集群;如何使用某個UI庫做出炫酷的界面效果;使用什麽參數可以調整某數據庫緩存大小等等,都是術。
那什麽是“道”?
比如,“一部小說如何謀篇布局”,是道。如果你是一個作家,那麽無疑這是比遣詞造句更影響你職業生涯的技能。
同樣,作為一個程序員,了解系統背後的原理,比熟悉一門語言一個框架對你職業發展會有更深遠的影響。
如果你做大數據,那你是否知道分布式系統的一致性保證有些什麽不同的設計和取舍?容錯又該如何實現?如果你做數據庫,又是否知道不同索引的數據結構有什麽樣的特性?抑或優化器背後的原理是什麽?或者你做業務邏輯開發,那你是否通曉了邏輯背後的業務流程以及相關的行業知識?
術的特點是容易過時,或者附加值越來越小。如何使用工具在每天都有新發明的計算機領域無疑是非常容易過時的,公司也不會為使用工具的經驗投資太多錢,畢竟夠用就行。
誠然術是你必備的技能:不會寫代碼,不熟悉語言,根本找不到工作。但是並不是你修煉的方向:公司並不會因為你精通一個語言的各種細節而特別青睞你。公司的確是招人寫程序的,但是公司並不僅僅是招人“寫程序”。
道是我們在領域內不斷精進成長的根本:只有了解背後的原理,你才可能在每天都有新系統新語言新框架誕生的科技領域存活;某個框架你並沒有摸過,但是你知道哪些指標和特性是選擇取舍的依據;某個系統你才聽說,但是看了架構設計,你就知道它在你的使用場景下會有什麽樣的表現,可能會有什麽樣的坑;再或者你看了某個論文,發現它的原創性設計能改進在你們現有的系統解決之前無法解決問題等等。這樣的你,往往比只是對語言熟悉,API精通的碼農更受歡迎和尊重。
有人可能會說,你看那些大神程序員,哪個不是對某些語言滾瓜爛熟。是的,我們看到的碼農大神們,往往寫的一手好C++,精通Go的上上下下左左右 右,但那並不是因為他們專門修行這門語言,而是因為他們在不斷研習“道”的路上,順便磨練了“術”。為了更好的性能,為了實現構思的新設計,他們必須更熟 悉所用的語言。
再你當然可以舉出特例:通曉一門語言的方方面面能成為參與制定語言規範的大神;哪怕寫字寫的好也能成為書法家。這樣說也沒錯。鐵砂掌練到極致,也能 和五絕一拼,但這比修內功的路難多了。況且,某人能制定語言規範肯定不是因為她特別熟悉這個語言的細節;書法家之所以是書法家也遠不止寫字寫得好。
技術的道與術