Categories
程式開發

也談程序員的核心競爭力


一天在技術群裡,看到大家在討論“程序員核心競爭力”的話題,引用一下一位技術大牛的發言:

也談程序員的核心競爭力 1

其實,我一直也在思考這個問題,同時這也是最近幾年一直以來困惑我的問題,因為自己也即將35歲了(對,就是人們常說的程序員要失業送外賣的年紀),這幾年來的焦慮和困惑比我之前20多年的都要多。雖然,目前自己也沒有完全想清楚這個問題,不過對這個問題的理解也越發清晰,同時工作中也朝著自己理解的方向上努力,這裡想談幾點自己的理解。

持續學習,解決問題的能力

互聯網時代的技術變化太快了,作為一名程序員,不得不擁抱變化。不能持續堅持自我學習的程序員是沒有未來的,而學習的終極目的是為了不斷提升自己解決問題的能力,解決問題能力大小直接決定著你在公司裡的薪水和晉升空間。

阿里的“新六脈神劍”價值觀中其中有一條:“今天最好的表現是明天最低的要求”,就是強調作為員工要不斷學習和進步,提升自己的解決問題的能力。無論是寫代碼,做功能設計,做系統架構,還是做團隊管理,都是程序員在不同階段為公司解決不同層面的問題。如何在不同階段進行突破和躍遷,學習能力應該是最重要的一個推動力。

大浪淘沙,不進則退,唯有持續學習,不斷進步,才能笑到最後。

獨立思考,清晰表達能力

能進行獨立思考是人和動物最大的區別,對於程序員來說更是如此。單純寫代碼和做功能不進行獨立思考是沒有太大問題的,因為這個階段基本有人會告訴你怎麼做,也因此很多程序員CURD寫了好幾年,能力卻沒有什麼提升。

一旦負責系統架構設計或者團隊管理時,不能進行深入思考和清晰表達是比較災難性的,因為這個階段基本沒有人會手把手告訴你你怎麼做。你必須要想清楚你負責的系統和團隊要解決什麼問題,怎樣解決,為什麼要這樣解決等一系列問題。正所謂“學而不思則罔,思而不學則殆”,這些問題不是光學習就能解決的,必須進行獨立思考才能找到出口。

溝通表達的重要性不言而喻,尤其是高階程序員來說。跟團隊小伙伴溝通工作,能否將你的想法和意圖表達出來讓對方聽明白;跟上級匯報時,能否將團隊做的事情的價值表達出來讓領導認可;跨部門推動項目時,能否將事情對雙方的利害闡述到位,這些都至關重要。這也是為什麼很多大公司要求員工必須學習“結構化思維”,看《金字塔原理》這本書。

馬雲在回憶當初為什麼支持王堅做阿里雲,並將他推到阿里巴巴CTO的位置上,其中一個很重要的原因就是:王堅能將很多高深的技術理論讓馬雲這個不懂技術的外行人聽明白。那時很多阿里員工都說王堅是個“大忽悠”,馬雲被他蒙蔽了,但我想說即便是忽悠,能說服你的領導認可你做的事情,本身就是一種非常牛逼的能力。

獨立思考讓我們看清目標和方向,清晰表達助我們插上翅膀,一飛沖天。

積極主動,自我驅動的能力

真正積極主動的人不會一直等待事情發生,而是主動選擇讓事情主動發生。作為一個出色的程序員是充滿熱情和努力工作的,他們具有很強的自驅能力,而且講究方法,他們有能力將事情結構化。

缺乏自我驅動能力,是很難投入足夠盡力和熱情將事情做到極致。如果我們總是對於上級交代的任務,總是滿足於剛剛完成就好;對於線上出現的問題,每次見到一個修復一個,不進行深入分析需求徹底解決;對於代碼質量得過且過,不精益求精;那麼就很難成為真正優秀的程序員。

積極主動能夠讓我們脫穎而出,自動驅動能讓我們從優秀到卓越。

管理技術團隊的能力

不想當將軍的士兵,不是一個好士兵。同理,不懂管理思維的程序員也很難成為一個頂尖的程序員。程序員要想發揮更大的影響力,就必須能夠帶領一支團隊能打勝仗,個人英雄主義在當今互聯網軟件行業已經行不通了。