1. 程式人生 > >軟體開發技術職位分析及職業規劃

軟體開發技術職位分析及職業規劃

分析

雖然說每個行業都必須要時刻學習,但軟體行業技術的可持續性與積累性較差。例如:中醫越做越吃香,而多年前的諾基亞開發已被拋棄。

  • 嚴重青春飯
  • 社交圈很難往上走
  • 連續不離散的無意義學習
  • 上升通道受限於運氣
  • 上升通道受限於不具備的能力
  • 工作時間過度佔據生活時間
  • 智力付出和收入嚴重不成正比
  • 可替代性強

選擇方向

關於方向的選擇其實越早確定越好,生活中我們要面臨無數個選擇,引用黑客主題的美劇中一句話:

lifeisbinary,生活就是二進位制,一個個0101組成的。每一次抉擇,選了就是1,不選就是0。另外也有一句話說:“人一生要面臨很多選擇,但是真正能決定你命運的只有幾個”。沒錯其實就是這樣。

如何發現自己對什麼感興趣呢?我也不知道很好的辦法,我只知道一個樸素的方法——嘗試。
演算法,開發兩個方向如何選擇,看自己抉擇。但記住:演算法功底好的人,運氣都不會差。

同樣是一門語言,它的投入產出比是非常不同的。選擇技術方向時一定要謹慎。

對於學習新技術、新知識,我一直有一個原則:用以致學。在學習一門新技術之前,先定一個目標——用它做一個日常生活和工作用得上的專案,然後根據專案的需求反向的去學習需要的知識。方便的話,
把它開源出來,讓大家都能用,慢慢的,你的實力和影響力都會成長起來。

在主要的技術棧上的積累已經足夠多的時候,再去不停擴充知識面。

職業規劃

打造自己的技術棧
技術棧就像一棵大樹,樹根可能是作業系統、網路、演算法、資料庫。再靠上一點是程式語言。接著樹幹就是你的職業方向,可以是安卓、IOS、前端、後臺等等。別忘了還有樹枝和樹葉。技術沒有孤島。把自己封閉在閉塞的圈子內十分危險。你應該是具備了深度的同時再擁有廣度,請注意擁有深度是前提。

崗位

你的工資不是和你的工作時間成正比,而是和你的不可替代性成正比。

求職
一定要早做規劃

自己的短板一定要早點發現,然後及時找到彌補方案。

基礎不好的話,刷題是很有必要的。

論老程式
老程式設計師無法像25歲時那樣,腦子裡存那麼多程式碼,但這些人的經驗非常豐富。系統規模不斷擴充套件的今天,早已超出了人的腦容量,能不能記住程式碼並不是像你想的那麼重要。經驗讓他們已經看穿一切,還可以快速瞭解任何一門新的語言。

老程式設計師有更好的判斷力。他們知道需要重點測試系統的哪個地方,哪些地方是不需要的。他們可以從架構圖中看出可能出現的問題。他們可以告訴你針對特定專案可以運用哪些技術,以及如何優化可靠性、效能或開發速度(選擇任意兩種)。他們還知道如何做出好的權衡。他們懂得如何提高質量。從長遠來看,質量意味著更低的成本。

“真正的知識來源於對某個主題及其內部工作的深刻理解”—阿爾伯特·愛因斯坦

學識淵博。多年的經驗,

都是優秀員工的小團隊可以輕鬆擊敗都是良好或者一般員工的大團隊。—史蒂夫·喬布斯

知識面廣。足夠讓老程式設計師和其他領域的人進行有效的溝通。正是這種溝通技巧使我成為一個富有成效的團隊成員,而不是原始的編碼能力。

老程式設計師們可以正確估計並按時執行程式碼。我們開發出的軟體,bug很少,效能表現也不錯。雖然我們寫的程式碼少了,但是我們會產生更多的業務價值。

針對性解決

針對技術的可持續性與積累性較差問題
多領域,多維度發展人才是技術人的未來,也是發展方向。全棧工程師只是狹義上的多維度,從廣義多維度去發展(雷軍,不經會編碼還會營銷;馬雲,靠英語優勢;商業模式,特色產品,懂產品,寫文案,懂得營銷,)在多維度方向選擇上,儘量選擇可持續性與積累性較強的方向。

要擴充套件自己社交圈。

要學會PPT吹牛逼拍馬屁搞關係。積極關注業務,提升自身人際公關能力。

關注自己的家庭,三產,人脈積累,運動健身,旅遊娛樂。

計算機行業可替代性與年齡經驗是對數曲線。而多數行業也是線性甚至有些行業是指數。

技能撐死只佔成功因素的30%。你的眼界、思考、產品能力、發現機會的能力,才是決定你能否發展的主要因素。

綜合解決方案

1,先深度優先,再廣度優先
首先,在你吃飯的技術領域,花足夠多的時間去深鑽,熟練掌握該領域,讓自己有貨,建立影響力;其次,多培養其他維度能力,廣度優先時,不可操之過急,選擇細水長流。每天花費較少時間,但一定要長期堅持!堅持!堅持!

職業規劃

萬物本是一體,程式設計區區小技,何足為道。

程式設計師有四個象限發展:

  • E象限:僱員象限。找一家上市公司,或者即將要上市的公司,在裡邊成為核心員工,再待上幾年,就能拿到一定數量的股票或期權。
  • S象限:自由職業者,小業主。為了避免E象限的整體薪資的天花板侷限。可以選擇S象限。在S象限要活得舒服還是有技巧的。大致有三個選擇:第一,如果做外包,一定要有一個不錯的客戶渠道;依賴於大平臺的專案最好能花點錢成為平臺的合作伙伴。第二,用免費+收費模式了。首先把你要做的業務中標準化的部分開發成產品(如CMS)在網路上免費傳播,而其中需要定製的部分就可以收費了。開源和免費的Web產品很多,但同質化嚴重,很少有細分市場的產品,用心定位的話,養活一個小公司綽綽有餘的。第三,逃離北上廣、迴歸大自然。去一個風景優美空氣清新的二三線城市,僱三五個人(當然就你自己也行)開一個小工作室,給美國人寫移動應用。既沒有房價的壓力,還能發著人民幣掙美金,貌似成都高新區還免稅。
  • B象限:企業主。找業餘時間開發一個商業應用,放到市場上去賣試試,讓客戶罵試試。等你經過了共享軟體的洗禮,你基本上就知道做生意是怎麼一回事了。A輪(不一定精確,大致如此)及以前的公司,主要在尋找商業模式,會頻繁的變更需求,對開發速度要求更高,這時候CTO只要能敏捷的開發產品就OK;B輪以後的公司,著力於規模化,會有大量的推廣,可能在某些時間點遭遇高併發,同時技術人員、裝置會迅速增加,這時候CTO需要考慮業務的高可用、還要能處理好團隊、資源的管理工作。如果原來的CTO沒有大型網際網路公司的背景,往往很難做好這些事情,所以一般會考慮從大公司去挖一個。
  • I象限:投資者。所謂的財務自由(就是一直不幹活,錢也夠你花),就是通過進入這個象限來實現的。

當你在上邊四個象限裡選好了想要的人生區間後,就要設計一個可行RoadMap來實現它。

技術線

選技術線的同學一定要選對技術方向,因為你會在自己選擇的這個細分市場裡投入三年、五年、甚至十年的時間。同樣是一門語言,它的投入產出比是非常不同的。選擇技術方向時一定要謹慎。那麼如何選擇呢?第一,學會觀察技術潮流。看看技術Guru們都在用什麼。但知其然不知其所以然並不是件好事。從根源上講,一個技術是否流行,和人們使用技術的方式密切相關。第二個建議。如果把選擇一門技術當做一個投資的話,新興市場和細分市場是特別值得留意的。新興市場對程式設計師來說,就是一種新的語言、一個新的平臺、一套新的框架。新興市場因為剛剛興起,所以幾乎所有人都在同一個起跑線,特別適合後進者。並非只有一個平臺的興起才有機會,很多框架技術也會帶來機會。如果你只能進入一個成熟市場,那麼記得給自己確立一個細分的定位。技術線屬於那些賴得住寂寞,還得了房貸,喜歡風險最低化的同學。在自身技術實力不錯,專攻的技術方向還未衰落的情況下,踏踏實實熬個五到十年,還是可以有車有房的。

管理線

技術管理雖然有技術兩個字,但更多的是和人相關的管理工作,所以在這條線上,職業邏輯也更不正常——title和資歷很重要。一個只在小公司上過班的PHP程式設計師,不管他能力有多好,是不可能直接成為一家500人規模還有半年就上市的企業的CTO的。雖然它只能證明你的過去,但我們其實都是從別人的過去去判讀一個人的將來的。不想當CTO的程式設計師不是好專案經理,所以庸俗的講,管理線其實就是一個不斷升級自己的title,直到CTO的遊戲。當然,隨著title越來越高,管理的人和資源就越多,對溝通能力、管理能力的要求也越高。和技術線不同,管理線每一次升級除了能力,還需要機遇的,因為越是高階的管理職位就越少。跳槽的時間間隔要把握好,一般兩到三年為宜;不要太頻繁,否則會讓人對你的穩定性產生懷疑。每一次跳槽要設定好自己想要得到的空間、資源、薪資和title。對去創業公司的同學多說一句,99%的創業公司都會失敗的,不過公司的失敗未必是你的失敗,你只要確保在每一家公司都能得到成長,就可以踩著河裡的竹竿逆流而上。寫到這裡連我自己都覺得有些勢利了,但大部分公司和員工本身就是赤裸裸的利用關係,你不替自己打算是沒人幫你的,老實也未必能有好結果。公司的人才政策很多時候取決於高管,即使你的直接主管想幫你,也未必能幫上忙。

用多家公司作為自己職業生涯的調節槓桿,就像用並行程序處理高併發一樣,是非常有意義的。你未必要真的跳來跳去,但多個選擇總不是壞事。

先要有過硬的技術。
努力展示自己,充滿自信,敢衝敢秀。
學會包裝自己和產品。
在職場上,多和高層搞好關係,給高層留下好印象,懂得人際交往的重要。當然,不是讓大家拍馬逢迎。
提高自己的情商。不要只會技術而忽略了情商的重要。情商比智商重要很多。
提高自己演講的能力,設計幻燈片的能力。最好也會用一些思維導圖之類的方法。
提高英語或其他外語的能力。

標題

職位選擇

Google CEO 施密特招人時說:“如果你得到了坐上火箭的機會,別問是什麼位置,上去就行。”

參考文獻

  • AndroidDeveloper微信公眾號,stormzhang。
  • -