有很多人,包括我也困惑的一個問題,就是如何成為一個很厲害的工程師。類似的問題也有很多,如何成為一個很厲害的運營,如何成為一個很厲害的產品,或者跨行業的,如何成為一個很厲害的醫生,如何成為一個很厲害的作家等等。

如何成為一個很厲害的工程師,我想是我的畢生追求,至少目前是。

榜樣的力量

一個很好的方式,就是以業界成功或者知名的人來作為目標。從阿里來說,就有很多很厲害的人物,比如

多隆

,“他從阿里的第一位程式設計師,做到了阿里的合夥人,是神一樣的人物”、“阿里掃地僧”、“一群工程師幾天無法排查的問題,多隆一眼定位問題根源”。

比如

吳翰清

,“輕鬆癱瘓阿里內網,防禦16億次駭客攻擊”、“20 歲入職阿里,馬雲 500 萬聘請的天才少年”。類似這樣的阿里人,多如牛毛,以上兩個已經在網際網路順手拈來的神話般的人物。從阿里內部看,可能就更多了,無數的P10和P11都有各自的神話故事,也是每個技術人榜樣。

不可複製的神話

在學校起,就湧現了很多網際網路的天才人物,10歲的駭客,百萬年薪的阿里星天才等。讓人的感覺,此類人物天賦異稟,是常人無法企及的。比如多隆,一眼能看出的問題,我等屌絲程式設計師首先,要拿出電腦,列印錯誤日誌上下文,拉上上下游同學,DEBUG一個星期,可能勉強才能定位:這尼瑪,原來少傳了一個入參。

因此除了望洋興嘆,我不知道自己能做什麼。

不可複製的年代機遇

有些神話可能註定是神話,成功的人很多,但是沒有一個成功是可以被複制的。成功不僅自身天賦很重要,也需要同時具備天時地利人和。

在網際網路野蠻生長的十年,湧現了很多技術牛人,但是到了如今網際網路紅利吃緊的時代,缺沒有新的技術大牛嶄露頭角,在如今,想成為技術大牛,卻變得如此艱難。

從業前,

求伯君寫出了WPS第一行程式碼,那時候我剛出生

馬雲去美國的時候,中國沒有網際網路。

馬化騰QQ使用者50萬的時候,我還在高中的破網咖裡,著急向網咖老闆2塊錢買個QQ號。

新浪微博

走紅的時候,我還在研究生期間寫論文。

從業後,

人手必備的

迅雷

已無人問津

紅極一時的

暴風影音

關門大吉

而今,

大大小小的公司紛紛裁員。

年代已不在,當初的網際網路有多火,現在可能就有多悲傷

於是乎,大多數人這麼做

沒有天賦,沒有時代的紅利,如何成為一個厲害的工程師,變成了一種奢望和工匠般的追求。

大多數人,開始了

搶灘逃難

,有去考公務員的,有去國企的,有去開店的,當然,還有去送外賣的。

但是更多的,是在潮水褪去,光著身子,站在沙灘上,無所適從。於是,“摸魚”成為了一個程式設計師最佳的選擇。“摸魚”成為了一種態度,也成為了一種工作方式。

無戰略,無戰術,從以前的指哪打哪,變成了打哪指哪。

擼碼隨心所欲,跑起來是檢驗系統成功上線的唯一標準。

編碼狂放不羈,半年內不出問題是編碼的唯一標準。

“可維護”,搞笑吧,半年後我可能跑路了,維護不維護跟我有啥關係;

“可擴充套件”,逗我玩吧,業務半年後也要掛了,擴充套件啥玩意;

“高可用”,瞎扯了,就幾十個幾百個人訪問,掛了幾天也無所謂。

當石匠喝完酒來建別墅,當賓士在

索馬利亞

創辦工廠,噹噹紅小生來主演歷史劇,可想而知,我們理想中要的精緻和現實中的粗糙會有多大的反差。

此時,一本《論演員的自我修養》應該給演員一個大大的耳光。同樣的,一本《論程式設計師的自我修養》也應該擺在大多數有追求的程式設計師面前。

至少,此時我,還想有一些追求,追求設計出優雅結構的系統、落地快速發展的業務、追求成為一名優秀的工

程師

如何成為一個厲害的工程師

從知乎上一個經典的理論,“以大多數人的努力程度之低,根本輪不到拼天賦”,即大部分對於自己夢想付出的努力,還遠遠不到拼天賦的地步。換句話說,每個人只要真正努力,就可以超越大部分人。

保持學習

前兩天跟公司的一位P9溝通,他說,我至少幾個月要保持學習一門新語言,從學習新語言裡學習新的思考方式。對於普通程式設計師來說,不僅要保持學習的態度,更要保持學習的深度,學習是唯一不落後的最佳渠道。

我在專案裡,就學習java8的語法,用新語法來嘗試新業務,效果出奇。而且據我觀察,往往有追求的大佬和新同學,都對新技術渴求和渴望。

即為明顯的一個例子,我根據多年的交易經驗,設計了一套輕量級業務隔離框架,一個P9大佬,在我做完技術彙報後,硬是單獨拉著我,諮詢我框架是如何實現,並且直接閱讀我寫的原始碼,一直到問懂了才恍然大悟。

學習,可以是學習書本知識,可以學習當下的知識付費,可以學習

跨界思維

,還可以學習人,學習大師,學習身邊的同事。

REVIEW

學而思,學和思本來就是互相補充的關係,而REVIEW在網際網路界,有著更深的含義,有CODE REVIEW、故障REVIEW、專案REVIEW、

技術方案REVIE

W等等。網際網路變得很快,有時候快是第一要素,先行搶佔市場,搶佔使用者才能勝者為王。但是快,往往也會忽視很多問題,忽略方案上的漏洞、忽略程式碼上的缺陷、忽略團隊上的管理和溝通,此時要停下來,REVIEW自身和專案,繼續做到每日精進。

借勢和借力

前幾週末,跟CTO做技術REVIEW,我彙報的主題是

交易系統架構

。談到跨部門的合作問題和難點,CTO一句話讓我醍醐灌頂,如何推動專案。他說,做業務,要懂得借勢和借力。借勢指的是兩者目標一樣,自然能促進業務發展和跨團隊合作,借力是指複用已有的產品能力、技術架構。兩者合二為一,驅動業務發展自然水到渠成。

總結和抽象

我一直認為,從低層次往高層次走,最重要的一個特性,就是“總結和抽象”。這是一種能力,也是一種思考方式。

前兩天看到有很多同行在脈脈吐槽阿里的中臺,“徒有其表”、“炒作概念”、“無需中臺”的評論。為什麼從中臺哺育了整個阿里

經濟體

技術框架的中臺,在這些人裡一文不名?我想除了不懂阿里內情、視角不同外,很多人缺少“總結和抽象”的能力。

總結,是把一篇文章,用一句話概括;能從下筆千言裡,找到最重要的一句話;能把做了半年的系統,用一個

序列圖

完美釋義。資訊氾濫的網際網路,總結變成了一種非常重要的能力,能剔除垃圾資訊,找到最重要的值得付費的一句話。

總結是精煉,類似咖啡萃取,將最精華的部分提煉出來,可以理解成量變,只不過是將大的化小,化繁為簡;而抽象是質變,將一個業務和一個系統,抽象到更高的層次,抽象成更為通用的理解方式。抽象,用哲學來說,是還原一個事務最本質的面目。在JAVA

面向物件程式設計

裡,一個非常重要的特性,就是介面定義,介面就是對業務具體邏輯實現的抽象,抽象出一個模組具有的能力。

舉個例子來說,釘釘有很多功能,IM聊天會話、審批、打卡等,抽象起來,這個能力叫:

辦公協同

抽象可以讓使用者在更高層次上去思考,拓寬業務和系統邊界。這也是為什麼老闆一句話,屬下做一年。正是老闆在更高程度的抽象,而實際落地,卻是需要補充無數的血肉,才能真正落地一個業務。

之所以老闆可以高瞻遠矚,而我等屌絲只能一線擼碼,相信也是總結和抽象能力讓我等望其項背。

最後

讀一本書,不會成為很厲害的人,但是想成為很厲害的人,可以讀一下《如何成為一個很厲害的人》,知乎推薦書目。

本文作者:蔣輝文

原文連結

更多技術乾貨敬請關注雲棲號知乎機構號:阿里云云棲號 - 知乎