作為程式員,在開發崗位上做了幾年,特别是到了30歲,這個而立之年,我們會來到一個重要的人生岔路口。就是管理和技術兩個選擇,一邊專業路線,一邊是管理路線。
在網際網路的頭部企業,對管理和技術是平等對待的,是以晉升會存在管理和技兩個通道的
既然有了選擇,就會有人糾結,不知道是選擇專業路線,還是選擇技術團隊的管理路線。
這個選擇是程式員人生中第一個大的選擇,也是第一個障礙,倒不是說這個障礙是到底要不要選擇管理,而更多的是對做管理的遲疑,懷疑到底能不能做好管理,做了管理之後,技術是不是就荒廢了。
這種狀态猶豫不決、搖擺不定的狀态保持時間長了,最終會導緻技術和管理都沒做好,這是得不償失的。
為了解決這個問題,有必要分析程式員職業發展的路線到底有幾條,分别需要具備怎樣的能力,進而做到”手中有糧,心中不慌“
01技術
技術類上,是有兩個方向:架構師和技術專家
架構師他的側重點是在“廣”上,他主要負責技術的整體和架構,在業務上,需要有很深的了解,有豐富的經驗,甚至能做到“走的橋比你吃的鹽還多”。在技術上,能夠廣泛涉略,掌握的技術知識越多,内力就越加深厚。
我覺得架構師還需要三點必備能力,其一需要有極強的執行力,能夠快速的給出合理的方案,推動技術落地。其二需要有極強的判斷力,能夠準确的找到複雜系統的疑難問題所在,就像武林高手,一眼就看出對方的破綻。最後還需要有極強的創新力,能夠創造新的解決方案,解決現有技術難題。
是以從程式員到架構師的成長之路,總的指導原則是:積累經驗,拓寬視野,深度思考(可以參考我之前文章《程式員進階必備能力——深度思考》)
技術專家他的側重點是在“專”上,這個就很好了解,就是在某個領域能夠深入,能夠熟悉其背後運作原理。不同的領域都會存在專家,例如:Java專家、前端專家、圖像算法專家、Linux核心專家等等。專家相對架構師,更加專注,并不會考慮太多整體方案。
是以從進階開發成長為技術專家,主要是擴充領域内的技術寬度,提升領域内的技術深度。因為領域也不是特别窄的一個面,而是包含多個技術面。
舉一個例子:Linux核心專家,要想成為Linux核心專家,需要掌握,Linux CPU排程、記憶體管理、程序管理、存儲管理、檔案系統、裝置管理和驅動、網絡通信、系統調用、系統初始化等技術面。
在每個技術面中,同樣包含了很多技術點,這些技術都是知識盲區,是以需要提升技術深度。
02管理
管理也分為了兩個方向,技術管理和職業管理。顧名思義,技術管理更加傾向于技術,而職業管理完全抛開了技術,純粹的商業方向。
技術管理,這個方向是程式員最自然的選擇。大部分的技術管理者,在其從程式員轉為管理崗位的時候,都是在上司或公司的要求下,被動的推到技術經理崗位上的,并非是自己當初有強烈意願、主動去選擇管理崗的。然後走上曼曼打怪進階的路線,從技術經理崗到技術總監,帶領幾十号人的團隊沖關,然後到成為技術業務部和事業部的技術副總裁,相當于CTO了。
技術管理需要在業務上有較深的了解,在技術上能夠根據技術發展趨勢,進行技術規劃。在産品上能夠極強的洞察力,進行産品規劃。在團隊加上能夠規劃團隊建設、組織結構等等,是以這是綜合素質的要求。
職業管理
職業管理者往往更加關心于整體産品業務的團隊,不限于技術團隊。比如某個事業部的總裁,或者是某個業務部的總裁。大家往往都聽過某某事業部空降了上司,這個上司就是屬于職業管理者,他的移動性更加強,能力更加通用。這個方向是可遇不可求的,有些人一輩子都不可能觸及到。這個就是天花闆上的别人家的樓闆,你說難不難?
03創業
創業這個方向上,一般是作為技術合夥人來參與,如果想要自己的創業公司能夠成功,必須是全能型創業團隊,在技術、産品、營銷等方面不能有明顯的短闆。
我舉一個真實的例子:我的上一家公司的直接上司,辭去技術總監的職位,作為一個技術合夥人建立了一個團隊,主要提供物流解決方案。前幾個月和他聊,公司已經在去年實作盈利1000多萬,通過股權上操作,已經成為最大的股東,掌管着整個公司的前進方向。
說到這裡挺惋惜的,創立之初,當時極力的拉我入夥,被我拒絕了,理由是工資太低了,這個理由在現在看來簡直可笑啊
04其他
項目經理
這個方向也是程式員比較常見,也比較自然的方向。項目經理其實一種組織整合能力。不同于技術管理,這條路線走起來,幾乎不需要任何外界依賴因素。
最需要關注的是進度、品質、人力、成本、風險。
那如何提升項目管理能力呢?
首先需要對項目管理知識架構有個大緻的認識,避免在龐大的知識體系中迷失方向,比如:
- 範圍管理:項目為何總是做不完?範圍管理要界定
- 風險管理:項目風險引發的問題、成因以及防範方法
- 溝通管理:做好項目溝通計劃
- 品質管理:加強項目品質
- 時間管理:項目進度控制
- 成本管理:産品成品控制
- 等等
其次需要掌握項目計劃、項目變更、項目進展報告、複盤等過程方法。
最後需要掌握跨部門協作,多元度溝通上進行加強。
産品經理
程式員轉産品經理,需要做到技術思維到産品思維的轉換。
技術思維角度是從功能開始,而産品思維的角度是從業務開始。
作為程式員,當要做一個項目時候,我們最關心的是這個項目有哪些功能,然後考慮每個功能如何實作;
而作為産品經理,當要做一個項目時候,我們看重這個項目的業務場景是什麼,解決使用者什麼問題
技術思維角度是怎麼去實作功能,而産品思維角度是為什麼要這個業務。
從技術思維的角度關注一個需求時候,總是先關注一個需求如何去實作,即HOW;
而從産品思維上來關注一個需求時候,應該多問一下WHY,為什麼需要這個需求,多思考為什麼,進而找到需求或問題的本質。
技術思維角度是向專家一樣行動,而産品思維角度是向小白一樣思考。
作為程式員,我們日常接觸到最多的還是技術人員,這些人一般來說邏輯思維都較強,擅長使用和處理各種軟體,是以總是将這種形象代入到客戶身上。
但作為産品人員思考時候,将使用者想得越“小白”越好,假設他們是不懂電腦,不太會玩手機,甚至不會打字的人。
05總結
上面4個方向是程式員主要的職業發展路線,作為個人來看,如果能一直做自己熱愛的工作和喜歡的角色,應該是最好的狀态。
不管走那一條路,一些能力是共通的,比如:技術規劃、團隊建設、溝通、時間管理等。處于自己的選擇,可能不會選擇管理方向,但是難免在以後的工作中會和管理者打交道。管理作為一種通用的素質,希望大家能夠技多不壓身。
總之,作為程式員,技術和管理,就像人的兩條腿,所有的職業發展路線都離不開,畢竟一條腿是走不遠的。
推薦閱讀(幹貨)
程式員進階必備能力——晉升之道
送給剛畢業的程式員——7點建議
程式員進階技術專家必備能力——深度思考
程式員如何選擇一家好公司
覺得不錯,記得關注、轉發和在看!多年經驗分享,實屬不易,感謝支援!
部落客是一位物聯網大廠技術總監,從業7年。從軟體開發、進階軟體開發、技術經理再到技術總監,分享職業發展、技術管理、職場晉升、技術成長等個人多年經驗和心得。一起成長!其他文章可以加我公衆号如下: