艱難的這年,程式設計師的未來在哪裡?

csdn程序人生 發佈 2020-05-07T03:44:17+00:00

我當時很不解,後來我 leader 找我談話,具體的內容記不清了,但我記得他當時跟我說,不要花太多時間看 linux 的原始碼,要多花時間在業務代碼上。Firefox 76.0 發布 | 極客頭條。☞螞蟻金服高要求的領域建模能力,對研發來說到底指什麼?

作者 | 大飛碼字

來源 | 大飛碼字(ID:BigFly1024)

大部分技術人,在職業發展的後半段,會觸及發展的瓶頸。面對這種瓶頸,大部分人是想通過提高技術來突破。對這個問題,我結合自己的經歷說說自己的一些思考。

大學的時候,我特別喜歡編程,用 「痴迷」 來形容也不為過。畢業工作後,也對技術有著近乎偏執的執著,覺得只要技術高到一定水平,就能夠搞定所有的事情。

畢業第一年,過得蠻焦慮的,當時壓力很大,老擔心工作做不好。

不過我有一個好的行為模式:越是擔心,越是努力。所以第一年的時候,我看了不少技術書籍,也繼續看了不少 linux 內核的原始碼,期望通過技術的提高,解決工作問題,最後消除焦慮。

但事與願違,我的第一個考核拿了一個B,就是那種不好也不差的水平。

我當時很不解,後來我 leader 找我談話,具體的內容記不清了,但我記得他當時跟我說,不要花太多時間看 linux 的原始碼,要多花時間在業務代碼上。

我當時聽了,覺得 leader 不重視技術,很長的時間裡,我一直很反感他說的那段話。

接下來的5年,我一直在基礎架構部門,從事底層框架和存儲相關的工作,直到14年,我才轉調到了業務部門,開始真正意義上接觸業務。

而直到這幾年,我才慢慢轉變了 「純技術」 思維的想法。

網際網路公司,無論國內國外,除了極少數技術驅動的公司,絕大部分的公司都是業務驅動的,或產品,或商業。

這個道理我很早就懂了,也很早就接觸到了,但一直沒有深刻的思考過,這意味著什麼。

我估計很多人都沒有思考過,特別是對於工作不滿三年的新人。

我想大部分人都會有 「只要技術牛B」 就可以通吃一切的信念!

直到這幾年,我才從更高的層次,理解了技術在整個商業體系裡面的價值和技術人員的價值。

其實,目前根本就沒有所謂的純技術公司,更加沒有純技術驅動的公司,但是有技術人員主導的公司。

這兩者是有著本質的不同的。

技術人員,大部分設想的是,我只要 「技術牛B」, 就可以通吃一切,這是 「純技術」 的思想,但 「技術人員主導」 跟 「純技術」 並不是等價的。

正確的理解,應該是技術 + 業務,是的,技術人員除了掌握技術,還要深刻理解業務。

也只有通過對用戶,對商業的理解,將技術轉化為實際可用的產品的公司,才有可能最後存活下來。而在公司內部,這種人才也是最值錢的。

技術能力不容易培養,需要個人花費很多的時間,精力,甚至還要有一定的天賦,而業務的敏感度,商業思維,一點都不比技術能力來的容易,很多時候比技術能力更難培養。

因為實際的能力都要來自實際項目的歷練,無論是技術還是業務,相比成功的技術項目,成功的產品項目其實更少,更加難以獲得。

這也是一些知名產品的員工在招聘市場上大受歡迎的原因 --- 因為有過成功的技術經驗和業務經驗。

這幾年招過不少畢業生,也帶過不少畢業生,大部分畢業都有對技術的執著,我覺得這個是好事。

不過有些畢業生對技術的執著過了頭,太過於牴觸 「技術含量低」 的工作,其實這種牴觸是相當不利於個人發展的。

除非你未來做學術研究,要不你一定會接觸業務,而且不單只是接觸業務,你後面還會發現,決定你技術成長快慢的也是業務。

遇到一個高速發展的業務,一個高速擴張的團隊,真的是技術人員的福音。

因為發展快,遇到的問題就會特別多,需要解決的問題自然也特別多,這個時候,個人只要能夠扛下來,技術能力,綜合素質都會有飛快地提升。

微信的早期,就是這麼一個項目。在微信取得成功後,我記得當時的技術總監提了一個問題 :「是技術成就了產品,還是產品成就了技術?」

有人可能會對前半句嗤之以鼻,覺得怎麼是技術成就了產品?

而實際情況是,當時微信跟米聊搶市場,最終取勝,跟技術是有莫大關係的,因為微信的系統更穩,產品疊代速度更快,這些都跟技術強相關。

因為有了堅固的基礎架構,所以系統穩;因為軟體層面的復用做的更好,所以疊代更快。(當然這些都是相對當時的米聊,現在回頭看,當時也確實存在很多的問題)

產品成就技術,大家可能就更難以理解了。

而實際情況是,微信產品的快速發展,催生出了一些獨特的軟體開發理念,比如小步快跑,快速試錯。這些在現在看來,大家熟知的理念,在當時都是很新穎的。

為了達到又快又穩的產品效果,技術上做了很多的創新和改進。包括業務架構設計的創新,基礎軟體,如存儲系統,RPC框架的創新等,都是業務發展催生出來的產物。

所以說產品成就了技術,也是有道理的。

我覺得答案是:技術和產品互相成就了彼此。

公司如此,產品團隊如此,我覺得個人也是如此的。

一開始的新人,都是接任務,按需求做方案,隨著技術能力的提升,個人的工作職責,會慢慢從 「怎麼做」 過渡到 「做什麼」。

你得先會解決問題,當你能夠熟練地解決問題後,你就要開始學會 「提出問題」。

真正的技術大拿,一定都是 「提問題」 的高手,而這種提問題的能力,純有技術是不行的,一定是在技術能力紮實,並深刻理解業務的基礎上,才能夠提出的。

多年之後,我終於明白了,第一年,我的 leader 跟我說那句話的初衷。我需要學好底層技術,但同時也要花時間在業務邏輯,業務代碼上,兩者是相得益彰的。

最後

技術人員,早期的時候,花費更多的時間在技術的淬鍊,成長上,是正確的,但當技術達到一定的水平,一定要開始關注業務,不要無視甚至牴觸業務。

你對業務的理解越深刻,你就越容易看到業務的問題。提出問題,並用自己的技術能力解決問題,才能真正將你的技術能力轉變成生產力,你也才會成為真正意義上的技術大拿!

作者:大飛。十年網際網路人,資深架構師,技術 leader。


☞全國程式設計師工資最新統計來了,平均 14,542 元!
☞老師,你確定Java注釋不會被執行嗎?
☞華為副總裁回應應用刪除用戶圖片;美國擬允許華為參與 5G 標準建設;Firefox 76.0 發布 | 極客頭條
☞螞蟻金服高要求的領域建模能力,對研發來說到底指什麼?
☞一文看懂主流區塊鏈攻擊底層邏輯 | 博文精選
☞餓了麼交易系統5年演化史
關鍵字: