程序員有哪些職業發展路線?看了這篇文章就懂了

做爲程序員,在開發崗位上作了幾年,特別是到了30歲,這個而立之年,咱們會來到一個重要的人生岔路口。就是管理和技術兩個選擇,一邊專業路線,一邊是管理路線。前端

在互聯網的頭部企業,對管理和技術是平等對待的,因此晉升會存在管理和技兩個通道的程序員

既然有了選擇,就會有人糾結,不知道是選擇專業路線,仍是選擇技術團隊的管理路線。算法

這個選擇是程序員人生中第一個大的選擇,也是第一個障礙,倒不是說這個障礙是到底要不要選擇管理,而更多的是對作管理的遲疑,懷疑到底能不能作好管理,作了管理以後,技術是否是就荒廢了。微信

這種狀態猶豫不決、搖擺不定的狀態保持時間長了,最終會致使技術和管理都沒作好,這是得不償失的。markdown

爲了解決這個問題,有必要分析程序員職業發展的路線到底有幾條,分別須要具有怎樣的能力,從而作到」手中有糧,心中不慌「網絡

01技術

技術類上,是有兩個方向:架構師和技術專家架構

架構師他的側重點是在「廣」上,他主要負責技術的總體和架構,在業務上,須要有很深的理解,有豐富的經驗,甚至能作到「走的橋比你吃的鹽還多」。在技術上,可以普遍涉略,掌握的技術知識越多,內力就越加深厚。框架

我以爲架構師還須要三點必備能力,其一須要有極強的執行力,可以快速的給出合理的方案,推進技術落地。其二須要有極強的判斷力,可以準確的找到複雜系統的疑難問題所在,就像武林高手,一眼就看出對方的破綻。最後還須要有極強的創新力,可以創造新的解決方案,解決現有技術難題。oop

因此從程序員到架構師的成長之路,總的指導原則是:積累經驗,拓寬視野,深度思考(能夠參考我以前文章《程序員進階必備能力——深度思考》)spa

技術專家他的側重點是在「專」上,這個就很好理解,就是在某個領域可以深刻,可以熟悉其背後運行原理。不一樣的領域都會存在專家,例如:Java專家、前端專家、圖像算法專家、Linux內核專家等等。專家相對架構師,更加專一,並不會考慮太多總體方案。

因此從高級開發成長爲技術專家,主要是擴展領域內的技術寬度,提高領域內的技術深度。由於領域也不是特別窄的一個面,而是包含多個技術面。

舉一個例子:Linux內核專家,要想成爲Linux內核專家,須要掌握,Linux CPU調度、內存管理、進程管理、存儲管理、文件系統、設備管理和驅動、網絡通訊、系統調用、系統初始化等技術面。

在每一個技術面中,一樣包含了不少技術點,這些技術都是知識盲區,因此須要提高技術深度。

02管理

管理也分爲了兩個方向,技術管理和職業管理。顧名思義,技術管理更加傾向於技術,而職業管理徹底拋開了技術,純粹的商業方向。

**技術管理,**這個方向是程序員最天然的選擇。大部分的技術管理者,在其從程序員轉爲管理崗位的時候,都是在領導或公司的要求下,被動的推到技術經理崗位上的,並不是是本身當初有強烈意願、主動去選擇管理崗的。而後走上曼曼打怪進階的路線,從技術經理崗到技術總監,帶領幾十號人的團隊衝關,而後到成爲技術業務部和事業部的技術副總裁,至關於CTO了。

技術管理須要在業務上有較深的理解,在技術上可以根據技術發展趨勢,進行技術規劃。在產品上可以極強的洞察力,進行產品規劃。在團隊加上可以規劃團隊建設、組織結構等等,因此這是綜合素質的要求。

職業管理

職業管理者每每更加關心於總體產品業務的團隊,不限於技術團隊。好比某個事業部的總裁,或者是某個業務部的總裁。你們每每都聽過某某事業部空降了領導,這個領導就是屬於職業管理者,他的移動性更增強,能力更加通用。這個方向是可遇不可求的,有些人一生都不可能觸及到。這個就是天花板上的別人家的樓板,你說難不難?

03創業

創業這個方向上,通常是做爲技術合夥人來參與,若是想要本身的創業公司可以成功,必須是全能型創業團隊,在技術、產品、營銷等方面不能有明顯的短板。

我舉一個真實的例子:個人上一家公司的直接領導,辭去技術總監的職位,做爲一個技術合夥人建立了一個團隊,主要提供物流解決方案。前幾個月和他聊,公司已經在去年實現盈利1000多萬,經過股權上操做,已經成爲最大的股東,掌管着整個公司的前進方向。

說到這裏挺可惜的,創立之初,當時極力的拉我入夥,被我拒絕了,理由是工資過低了,這個理由在如今看來簡直好笑啊

04其餘

項目經理

這個方向也是程序員比較常見,也比較天然的方向。項目經理其實一種組織整合能力。不一樣於技術管理,這條路線走起來,幾乎不須要任何外界依賴因素。

最須要關注的是進度、質量、人力、成本、風險。

那如何提高項目管理能力呢?

首先須要對項目管理知識框架有個大體的認識,避免在龐大的知識體系中迷失方向,好比:

  • 範圍管理:項目爲什麼老是作不完?範圍管理要界定

  • 風險管理:項目風險引起的問題、成因以及防範方法

  • 溝通管理:作好項目溝通計劃

  • 質量管理:增強項目質量

  • 時間管理:項目進度控制

  • 成本管理:產品成品控制

  • 等等

其次須要掌握項目計劃、項目變動、項目進展報告、覆盤等過程方法。

最後須要掌握跨部門協做,多維度溝通上進行增強。

產品經理

程序員轉產品經理,須要作到技術思惟到產品思惟的轉換。

技術思惟角度是從功能開始,而產品思惟的角度是從業務開始。

做爲程序員,當要作一個項目時候,咱們最關心的是這個項目有哪些功能,而後考慮每一個功能如何實現;

而做爲產品經理,當要作一個項目時候,咱們看重這個項目的業務場景是什麼,解決用戶什麼問題

技術思惟角度是怎麼去實現功能,而產品思惟角度是爲何要這個業務。

從技術思惟的角度關注一個需求時候,老是先關注一個需求如何去實現,即HOW;

而從產品思惟上來關注一個需求時候,應該多問一下WHY,爲何須要這個需求,多思考爲何,從而找到需求或問題的本質。

技術思惟角度是向專家同樣行動,而產品思惟角度是向小白同樣思考。

做爲程序員,咱們平常接觸到最多的仍是技術人員,這些人通常來講邏輯思惟都較強,擅長使用和處理各類軟件,因此老是將這種形象代入到客戶身上。

但做爲產品人員思考時候,將用戶想得越「小白」越好,假設他們是不懂電腦,不太會玩手機,甚至不會打字的人。

05總結

上面4個方向是程序員主要的職業發展路線,做爲我的來看,若是能一直作本身熱愛的工做和喜歡的角色,應該是最好的狀態。

無論走那一條路,一些能力是共通的,好比:技術規劃、團隊建設、溝通、時間管理等。處於本身的選擇,可能不會選擇管理方向,可是不免在之後的工做中會和管理者打交道。管理做爲一種通用的素質,但願你們可以技多不壓身。

總之,做爲程序員,技術和管理,就像人的兩條腿,全部的職業發展路線都離不開,畢竟一條腿是走不遠的。

推薦閱讀(乾貨)

另外,我把公衆號的經典文章從不一樣的角度理解。歡迎你們查看,以下:

兄dei,若是以爲我寫的不錯,不妨幫個忙

一、關注個人原創微信公衆號「pointers」,回覆:【網盤】,還可得到pandownload復活版,下載速度60M/S

二、給俺點個讚唄,可讓更多的人看到這篇文章,順便激勵下我,嘻嘻。

做者簡潔

做者:我袁吳範,一位物聯網大廠技術總監,從業7年。從軟件開發、高級軟件開發、技術經理再到技術總監,件開發到高級軟件開發只用了3年,從技術經理再到技術總監只用了2年。

熱衷於分享職業發展、技術管理、職場晉升、技術成長等我的多年經驗和心得。

關注公衆號pointers

轉載說明:未得到受權,禁止轉載

相關文章
相關標籤/搜索