程式設計師的核心競爭力是什麼?

伯英發表於2019-03-28
程式設計師的核心競爭力是什麼?

有網友在某職業社群求助:“今年 35 歲,剛過完年第一天,因為年紀較大被公司勸退了,建議我這個月底提離職。十年開發經驗,接下來我該怎麼辦?怎樣維持生計?

35 歲,真的是程式設計師的一道坎嗎? 程式設計師的核心競爭力到底是什麼? 作為程式設計師需要掌握多少技能才能“可持續發展”呢?

01 核心競爭力

程式設計師的核心競爭力是什麼?

除去平時被提到無數遍的學習能力、程式設計能力、表達能力、耐心等。究竟是哪些明顯不同於其他人的能力,可以助力你在職場上一路順利前行呢?小編採訪了幾位年齡不同的程式設計師,從不同的年齡段的程式設計師身上,得到了不同的答案。

(1) 解決問題的穩準狠是衡量一個程式設計師是否優秀的重要因素之一,也是資深技術人員真正的價值所在。

作為一名程式設計師,我們要掌握多門程式語言和各種資料庫技術,瞭解前端技術、後端技術,通曉網路七層架構,知道 TCP/IP 三次握手和四次揮手,編寫漂亮的程式碼,設計優美的架構。除了這些知識儲備之外,在工作中,我們面對的更多的是研發、程式執行和產品上線過程中遇到的各種問題,如何利用自己已有的知識儲備,以最小的代價在短時間內解決問題,才是展現一位程式設計師真正能力的時候。

隨著時代的發展,技術資訊多如山海,一位剛畢業的大學生,如果足夠勤奮,也能在兩三個月之內掌握一門程式語言,編寫出像模像樣的軟體。而他們的學習速度通常比老程式設計師更快,那麼,作為有經驗的程式設計師,你的優勢是什麼?是解決問題的能力,依靠時間、經驗甚至是慘痛教訓歷練而成。 大多數的工作中的問題,只要給足時間,都是能夠解決的,不過是時間長短而已。如果你遇到問題告訴上級,這個問題交給我了,兩年之內搞定絕對沒問題。那估計專案組要組團打你了,在這個急速發展的時代,大家要的是在最快的時間內解決,不是兩年。在最短的時間內,用最小的代價快速解決問題,這才是程式設計師的價值。

程式設計師的核心競爭力是什麼?

(2) 整合資源的能力

遇到一個新的需求,什麼時候造輪子,什麼時候不造輪子,什麼情況下利用公司自己的輪子,什麼情況下利用開源的輪子,都是需要考慮的問題。在自己的技術棧中,不同的框架有何優劣,各自都適合於哪種場景,都應該能了熟於心。最不可取的是,長時間調研沒結果,學習了很多框架,做法,但無法認真對比優劣,這就是不能抓住核心的問題。

(3) 方法論

劉未鵬的《暗時間》是專門為程式設計師寫的方法論,其中有些很好的思維方法值得我們參考。

在程式設計師的眼裡,做一個專案,首先想到的是用什麼語言、什麼框架、什麼庫。很多人會想用這個方向最厲害最前沿的方法去完成,用老套的方法格外沒有成就感。其實,這種想法就屬於只考慮單個孤立因素的決策,就是希望能在展現自己技術能力和技術水平的情況下解決這個問題。然而, 事實上,相比這些,更為重要的是,這個產品需要滿足什麼需求,有什麼市場,是不是值得去做。

再舉個例子,領導分配給了你一個產品資訊分類的問題,你發現這個問題剛好可以有機會試用一下自己最近剛學的 NLP 中的一些分詞、段落以及短語比較和分類的框架,而且這個工作好像很有挑戰性,還不是一般人能做的了的,綜合以上幾點,你躍躍欲試,準備大幹一場。然而,考慮到以上各點,這將是個投入相當大的專案,那麼,其收益就必須對得起這個投入,技術上很牛不代表商業上就牛,再厲害再難做的專案如果不能帶來商業價值,那就是負的收益。

總之,一件事情僅僅讓你覺得挺牛不代表這件事情就是值得做的;一件事情僅僅讓你很感興趣並不代表這件事情就是值得做的。

02 學習技能

程式設計師的核心競爭力是什麼?

作為一名程式設計師,單純說技術上的技能,那麼要學習的技能大概是無限多。 從開發語言: C,C++,Java,Python,到開發內容:Web 開發,嵌入式,AI 應用等等。要說這些技能,大概是永遠都學不完的,但無論你是使用什麼程式語言,做哪種開發和研究工作,有些基本且通用的職業技能,是作為一名合格的程式設計師所必須的,能否用好這些技能,直接關係到了你的職業生涯。那麼,讓我們來看看,哪些通用技能,可以為你的職業發展給予幫助。

(1)文件習慣

把文件習慣放在第一點,因為很多人還沒有意識到好的文件習慣的重要性。說高水平程式設計師從來不寫文件的肯定是乳臭未乾的毛孩子,良好的文件是正規研發流程中非常重要的環節,作為程式碼程式設計師,30 %的工作時間寫技術文件是很正常的,而作為高階程式設計師和系統分析員,這個比例還要高很多。 缺乏文件,一個軟體系統就缺乏生命力,在未來的查錯,升級以及模組的複用時就都會遇 到極大的麻煩。因此,有良好文件習慣,增強自己程式碼的可管理能力,一定能夠為自己在團隊協作中增添不少光彩。

程式設計師的核心競爭力是什麼?

(2)歸納總結的能力

相比於其他行業,計算機行業的知識和技能的更新迭代速度更快,因此,程式設計師隊伍是很容易被淘汰、很容易落伍的。可能某種技術僅僅是在近兩三年具有通用性和先進性,一旦被淘汰了,就立刻要開始掌握新的技術。因此,善於學習,將學習新技能當做是工作和生活的常態,是良好的職業技能的體現,每次完成一個研發任務,完成一段程式碼,都要歸納總結一些之前沒有注意到的點,隨時總結,找到自己的不足,並不斷自我提高。

(3)模組化的思維能力

經常可以聽到一些程式設計師有這樣的抱怨,寫了幾年程式,變成了熟練工,每天都是重複寫一些沒有任何新意的程式碼,這其實是中國軟體人才最大浪費的地方,一些重複性工作變成了熟練程式設計師的主要工作,而這些,其實是完全可以避免的。

複用性設計,模組化思維就是要程式設計師在完成任何一個功能模組或函式的時候,要多想一些,不要侷限在完成當前任務的簡單思路上,想想看該模組是否可以脫離這個系統存在,是否可以通過簡單的修改引數的方式在其他系統和應用環境下直接引用,這樣就能極大避免重複性的開發工作,如果一個軟體研發單位和工作組能夠在每一次研發過程中都考慮到這些問題,那麼程式設計師就不會在重複性的工作中耽誤太多時間,就會有更多時間和精力投入到創新的程式碼工作中去。 一些好的程式模組程式碼,即便是 70 年代寫成的,拿到現在放到一些系統裡面作為功能模組都能適合的很好,而現實中則是,很多公司的軟體一旦升級或者改進就要全面程式碼重構,這些大部分的重複工作浪費了大量的人力物力。

(4)皮實的身心

程式設計師的核心競爭力是什麼?

作為一名程式設計師,始終是要要學會養生,懂得生活。積極鍛鍊身體,少熬夜,關注髮際線

最後:歡迎各位學習java和大資料的朋友們加入Java交流學習群: 721506929(我在群裡等你喲~)

點選連結加入群聊【java交流學習群】:https://jq.qq.com/?_wv=1027&k=5cjelsQ本群是一個新群,群內提供免費的架構資料還有:Java工程化、高效能及分散式、高效能、深入淺出。高架構。效能調優、Spring,MyBatis,Netty原始碼分析和大資料等多個知識點高階進階乾貨的免費直播講解 可以進來一起學習交流哦~

程式設計師的核心競爭力是什麼?


相關文章