工作中如何體現(xiàn)一個人的技術深度?
點擊關注公眾號:互聯(lián)網(wǎng)架構師,后臺回復 2T獲取2TB學習資源!
上一篇:Alibaba開源內網(wǎng)高并發(fā)編程手冊.pdf
看到一個討論帖,原文如下:

思考:做需求與做需求的差異

再回答問題之前,我想先拋開「技術深度」這次詞,講講做需求這件事,說說我對做需求的理解。每一個程序員都是從剛畢業(yè)做需求開始,為什么有的人逐漸成為大牛,主導大型技術項目或走向團隊管理崗位,而有的人一直還在做需求。我覺得這里面的差異在于:每一個對做需求這件事的理解有所不同。
這里面的差異在于,你是抱著一種什么樣的心態(tài)去完成這個需求,是把這個需求做到極致,還是只是當做任務完成這個需求,達到產品想要的功能就行。這兩個表面上看似差不多其實相差極大,差異在于,你有沒有站在更高的角度,希望這件事做到完美。
從需求角度有沒有思考產品設計當中的缺陷,能不能反向為產品設計提供建議,從技術角度能不能做到高質量高兼容性無bug,以及下次再有類似的需求能不能快速高效率的迭代。
用一句話來描述就是,能不能跳出自己是一個程序員是一個被動執(zhí)行人的角色,而是將自己當做產品當做技術負責人的心態(tài)去做這件事。

業(yè)務需求該怎么做

知易行難。如果一開始做不到,那就先著眼小事:關注細節(jié),從需求開始的需求評審、編寫技術方案文檔、設計文檔、到開發(fā)的代碼注釋、結構設計,保證高質量,完善無漏洞的代碼邏輯,再到異常埋點、指標監(jiān)控、線上可用性運維等等,認真對待一個需求的每一個環(huán)節(jié)。
當你自認為已經(jīng)做好整個流程的每一件小事之后,接下來可以通過深入細節(jié),思考整個流程是否存在問題。做需求過程中溝通協(xié)作的有沒有問題,流程規(guī)范的有沒有問題,機制環(huán)節(jié)哪方面問題,代碼公共基礎能力的是否有缺失,開發(fā)過程中你所遇到的問題是不是一個通用問題,能不能抽象出一個公共庫解決大家的問題,能不能制定一個SOP的解決方案流程,亦或是提煉出一個最佳實踐在組內外分享經(jīng)驗。
通過這些一件件小事來鍛煉自己解決問題的能力,以及更深層級的發(fā)現(xiàn)問題的能力。再通過不斷的發(fā)現(xiàn)問題,思考問題出現(xiàn)的原因,拿出解決方案,最終落地解決了自己或組內或協(xié)作方的問題,鍛煉自己的綜合能力逐步慢慢成長。

再說「技術深度」

說了這么多,你可能會說,這跟我問的技術深度有什么關系?我想說:拋開業(yè)務需求談技術深度都是耍流氓。
舉一個例子,數(shù)據(jù)可視化方面3D three.js,視頻直播方面的編解碼壓縮,客戶端安全方面的攻防滲透,每一個都是有技術深度的事情,但問題是即使你掌握了這些領域擁有了非常高的技術深度之后呢,不能應用于業(yè)務需求,不能解決產品急迫要解決的問題,不能完成你老板的OKR,達成部門的戰(zhàn)略目標,還是英雄無用武之地(當然你也可以選擇一個可以用得上的團隊,那是就是另外一回事了)。
由于這些單點的有技術深度的事情,不能為你帶來直觀和顯而易見的 「回報」(也就是顏如玉、黃金屋與金榜題名),也就間接的打擊了積極性(當然自己對某門技術感興趣而鉆研的不再本次討論之列)。
所以提升自己的技術深度,最好的方式還是在公司業(yè)務中,發(fā)現(xiàn)有深度的事,然后去在攻克這個問題的過程中,提升了自己的技術深度,即跟隨公司業(yè)務的發(fā)展的同時自身也獲得了成長,你用技術能力為公司解決了業(yè)務發(fā)展過程中的問題,自然也就從公司獲得了該有的回報。這是一個ROI投入產出比最高的獲得技術深度的方式。

獲取做有深度事情的授權

當想明白獲取技術深度的路徑之后,接下來要解決的就是:如何讓領導給你安排有技術深度的事情?
業(yè)務發(fā)展中有很多有技術深度有技術難度的事情,為什么領導要安排你來做這件事呢?你憑什么讓領導覺得你 「有能力」 也 「有意愿」 來完成這件事?能力與意愿是作為領導在分配工作當中的最重要的兩個決策項。
既然你能提問如何積累技術深度,我相信你一定是有強烈意愿的,那么剩下的就是如何讓領導認為你有完成這個有技術深度的事情的能力?最簡單來講就是,你能不能在開發(fā)需求中做到深度思考、追求極致、精益求精、有責任心、有主人翁意識與主R意識,在每件小事中能做到 「自閉環(huán)」,之后才會逐步讓你承擔更大范圍更高挑戰(zhàn)更大深度的事情,形成正向循環(huán)。
這也是我前面為什么要先重點強調做好每一件小事的重要性。

技術深度不是唯一標準

作為一個程序員,在職業(yè)生涯的初期,確實是以技術深度也就是技術能力作為最大的衡量標準。
但隨著職業(yè)生涯的發(fā)展,職級從L5到L8,站在從公司角度,對一個人的需求,也會從能完成一個業(yè)務需求,變成能帶領一幫人完成一個更大的維度的需求,能不能為組織解決問題,為事業(yè)部達成戰(zhàn)略目標,對人的要求的重心也會慢慢發(fā)生變化,這種變化可以參考公司的職級能力模型體系的雷達圖。
所以一味的追求積累技術深度就跑偏了,但不是說技術深度不重要,技術能力是作為程序員的安身立命之本,但是在積累技術深度的同時,也需要學習鍛煉技術深度以外的能力。具體到底是什么其他能力,這就夠再展開好幾篇文章的篇幅了,今天在這就不細說了。

最后

故不積跬步無以至千里,不積小流無以成江海。先從做好每一件小事開始,把每個業(yè)務需求做到120分,深度思考、發(fā)現(xiàn)問題、解決問題,逐步建立起靠譜、有責任心、技術牛的人設,逐步負責有技術難度的事情,跟隨公司業(yè)務發(fā)展積累自己的業(yè)務領域經(jīng)驗與技術深度,從而獲得雙贏的回報。
這是我對如何積累技術深度這件事的理解,或許會有一些片面和偏激,畢竟不是誰都有一個能知人善任的好領導,不是誰都能遇到一個快速發(fā)展的業(yè)務,不是誰都能遇到有技術難度與技術挑戰(zhàn)的場景,無論我怎么說,都會有幸存者偏差的存在。
努力與機遇并存,機遇可遇不可求,所以我們能做的事,就是學會正確做事的思路和方法,并為之堅持不懈的踐行它。知易行難,學會方法容易,堅持踐行難于上青天。自己該做的都做好了,機遇來了就可以抓住,即使抓不住,你也有了「選擇的能力」,有了選擇更好機遇、更好公司的能力。
正文結束
1.求求你別在用SpringMVC了,太Low了!Spring又官宣了一個更牛逼的替代框架!

