我真的要做一輩子的程式設計師嗎?

GitChat技術雜談發表於2018-03-19

640?wx_fmt=gif&wxfrom=5&wx_lazy=1

本文來自作者 王鵬  GitChat 上分享 「程式設計師跳槽時,如何正確做好職業規劃?」閱讀原文檢視交流實錄。

編輯 | 貝吉塔

經常聽一些同學說:不知道下一份工作該去哪類公司做些什麼,我的職場人際一團糟老闆不重視我,我現在成長的非常慢所以又想跳槽了,我看不到公司的發展前景好迷茫,其實這一切的困惑都來源於沒有做好職業規劃或者你根本就沒有職業規劃過。

那今天我就從以下幾個話題和大家分享下我所理解的職業規劃 Tips ,也歡迎大家踴躍提問。

為什麼要做職業規劃?

我們先聊聊第一個話題,為什麼要做職業規劃?

首先,我們要知道職業規劃是什麼,也就是如何持續選擇適合自己發展的工作的過程。

職業規劃其實就是對職業生涯乃至人生進行持續的、系統的、計劃的過程。職業規劃也叫“職業生涯規劃”。職業生涯規劃的好壞有時會影響我們的一生。

其次,我們要知道職業規劃原則是什麼。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

1. 是偏愛的:只有這個事情是自己喜歡的,才有可能在碰到強大對手的時候仍然堅持;在遇到極其困難情況時不會放棄;在有巨大誘惑的時候也不會動搖。

2. 是擅長的:做你擅長的事,才有能力做好;有能力做好,才能解決具體的問題。只有做自己最擅長的事情,才能做得比別人好,才能在競爭中脫穎而出。

3. 實現價值:你得認為這件事夠重要,完成它之後帶來的價值足夠吸引你,值得你做,否則你再有能耐也不會善始善終。

4. 長遠發展:首先你得有機會去做,有機會做了還得有足夠大的市場與成長空間,這樣的職業才有奔頭。

所以經常我們會聽到一個人說自己非常幸運,大學畢業去了一家公司,然後跳到了另一家公司,公司發展的非常好,不到 35 歲就實現了財務自由,這背後的職業規劃本質一定是基於偏愛,擅長,實現價值與長遠發展的原則,而不僅僅是表面的幸運。

所以建議同學們不要僅僅為了薪資或者地點或者公司知名度就選擇一份新的工作,要根據以上四個原則,滿足的越多,越匹配,到了中期以後才不會迷茫未來要何去何從。

最後我想說,其實在每一個時間節點看過去的自己,都會發現對整個行業認知甚至對自己的認知都是有限的,所以做規劃不是真的千篇一律的照本宣科,而是朝著心中自己本該有的樣子去自驅,去變得更優秀。

程式設計師職業發展路徑有哪些選擇?

我們再說說第二個話題,程式設計師職業發展路徑有哪些選擇?

程式設計師一般的發展方向主要是幾類:技術專家、架構師、技術管理、管理、產品。

接下來通過例子和大家分享以下四種不同的發展路徑及適合走這四類路徑的人群的三個關鍵詞。

第一類,程式設計師-高階開發-技術專家路線

我們通過例子來說明。有一位 Z 先生,他2012年從湖北工業大學畢業,而後去了搜狗擔任工程師,做了兩年後,跳到了另一家公司叫小麥公社,是當時一家風頭正勁的創業公司,擔任 B 端高階開發;

後來去到了因果樹擔任 B 端的技術資深開發,在今年2月份入職了杭州阿里巴巴,同樣是負責 B 端商家後臺部門,擔任技術專家,他職業規劃最大的亮點是找到自己想要專注的領域並且一直堅持至今。

第二類,程式設計師-高階開發-架構師

再看個例子,H 先生,他2011年北航畢業,而後選擇創業做 SAAS 平臺當時擔任前端負責人,兩年後選擇加入搜狗成為一名高階前端工程師,後來去到了音悅臺擔任架構師,目前在一家創業公司擔任前端架構師,他職業規劃的最大亮點是在前端領域各個方向都深入見解,而後負責多條產品線的架構設計。

那以上兩種技術路線有什麼不同呢,應該如何選擇呢?

技術專家,是偏理論研究的,對某個或某些相關的專業領域深入瞭解,能直接或通過提供思路間接解決這些領域的各種問題。

架構師,是偏工程實踐的,與技術專家的區別在於它需要一專多能,提供方案解決問題已經不是它最重要的價值,它的價值體現在選擇價效比最高的方案;

舉個例子,其實你可以把技術專家和架構師的區別類比成科學院院士和工程院院士,你要搞一個語言識別,那是理論,你要做一個 Siri,那是工程。而你,更擅長和嚮往做語言識別技術還是 Siri 呢?

有些同學可能會說,我的最終目標僅僅是成為一個優秀的程式設計師,那我想知道你能做到以下 3 點嗎?

  1. 寫的程式不需要格式化,也是非常標準的,我見過很多程式設計師寫的程式碼,連空格的使用都沒有標準,從上到下給人的感覺就是一片混亂的字元的組合,好的程式應該像詩詞,在格式的約束下追求飄逸。

  2. 寫的程式沒有無用的程式碼,其他人來評審時找不到無用的程式碼,也無法在保持同樣閱讀性的情況下進一步精練。

  3. 在可讀性與效率中保持平衡,通常情況下我們優先考慮可讀性,但是對於頻繁執行的部分,可以犧牲可讀性保證效率,但需要書寫足夠多的註釋,註釋不要說程式碼的用途,而要說自己寫程式碼時思考的內容,我就曾經見過有人把一段程式碼使用自己的思想來改寫提高可讀性,結果這個程式碼的目的是越精簡越好,這其實就有點好心辦壞事了。

如果還不能做到以上幾點,那就好好做好明天的事兒就好了,暫時什麼都先別想,因為成為一名優秀的程式設計師是技術路線的基礎。

接下來說說第三類,也就是管理路線:程式設計師—資深工程師—技術經理(技術管理)—技術總監(管理)—CTO(管理)

我們再來看個例子。Q 先生,他在 30 歲就成為了某知名共享單車公司的 CTO,說一下他的職業規劃,2009 年首都經理貿易大學畢業加入一家創業公司擔任開發移動端工程師,兩年後加入 360 擔任資深研發工程師,而後加入新浪微博擔任移動端部門的技術負責人,而後加入了宜信擔任技術總監,在去年 7 月加入共享單車公司擔任 CTO。

他職業規劃的最大亮點是一直在核心業務上往技術管理進階,最終成為一名優秀的管理者。

談到這類管理路徑,必須要說明下技術管理和管理的區別,技術管理是事情為中心,管理是以人為中心,技術管理主要工作是保證事情能按時按質完成,管理需要考慮團隊的士氣和穩定性、階梯性。

最後說一說第四類,也就是技術轉產品:程式設計師—高階開發-產品技術—產品經理—產品管理

在這裡,X 先生帶來一個海龜碼農成功轉行產品經理的故事,2009 年畢業於美國工程類名校普渡大學,而後回國在一家外企擔任開發工程師,一做就是 5 年,2014 年一個幸運的機會加入了騰訊,當時騰訊面試了 7 輪,拿到了 T1-2,月薪 1W2 的工程師 offer ,基本是剛畢業一年左右應屆生的水平。

在騰訊主要做手機 QQ 紅點系統,做了兩年,他從未抱怨。他也給我們展示了所謂“紅點”,其實就是手機 QQ 上不同介面旁的紅點引流。

手機 QQ 流量日活上億,但是會點選那些遊戲、商城、音樂等介面的使用者大概只有1%,紅點主要就是吸引那些有強迫症的使用者點進去引流。

從最開始的紅點數量的改進,到後面根據不同屬性使用者設定不同紅點,再到後來和其他產品合作比如京東商場,搞紅點的競價排名……

就這麼一個小功能騰訊專門養了一個團隊去做,對於  BAT 這種大公司來說,一個小的模組和功能的改進能帶來很大的利潤,很多人常年都在做很小一個模組的重複工作,很難獨立完整去做專案,裡面閒人很多。

所以工作兩年後,X 也想做點商業化的東西了,給部門老大反饋了想法沒得到支援,在內部其他部門也爭取了問了一圈沒能成功轉崗,於是就想出來,不想繼續在騰訊裡面慢慢熬晉升了,從騰訊出來是那年是 2016 年3月,T2-3。

而後入職了一家投資公司,以產品經理的身份加入,兩年過去了,目前已經成為了一名高階產品經理。

他職業規劃的最大亮點是深思熟慮後立刻決定和行動,沒有猶豫,而機會往往更容易留給有準備和有勇氣的人。

談到技術轉產品這類職業規劃路線,和大家說說開發轉產品經理需要鍛鍊哪些能力:

1. 商業思維

開發人員以前是和機器打交道,產品經理給出一個需求就按照那個需求做了,從來不想著為什麼這樣做,做這個需求想達到什麼目的,從來沒想過你開發的 App ,你做過的程式老闆是怎麼用它來賺錢的,這就是你轉行產品經理要鍛鍊自己的第一個能力,培養自己的商業思維,培養自己發掘使用者需求的能力。

產品經理是站在使用者的角度考慮產品,以使用者為中心。所以技術人員轉產品經理要擺脫技術思維,多想想使用者的使用習慣,多想想產品的商業目標。

2. 溝通表達能力

程式設計師給別人的印象一般都是木訥,沉默寡言的,也難怪,程式設計師都是在和機器打交道,不是銷售那種和人打交道的工作,不需要說太多話,不需要撕太多逼。

而產品經理的工作要和很多部門打交道,要和運營、技術、設計、市場推廣等各個部門打交道,在產品宣講的時候要清楚的向他們傳達你的需求,當產品上線你需要給客服培訓,這些都需要你有較強的語言組織和表達能力。

3. 文件能力

程式設計師的工作就是碼程式碼,程式碼是用英文編寫的,只有在給程式碼註釋和寫產品說明書的時候才寫中文,而且寫的也是一些瑣碎的內容。

如果讓一個程式設計師就某一個主題寫一篇文章出來,我想大多數程式設計師可能無從下手。

而產品經理工作中要寫很多文件,商業需求文件,市場需求文件,產品需求文件,產品說明書,文件表達能力在工作中很重要。

4. 專案管理能力

好的產品經理需要一定的專案管理能力。需要推動產品按照正常的步驟,規定的時間,按質按量的釋出上線。這裡就涉及到,整體管理、時間管理、團隊管理、需求管理。

整體管理:包含產品從分析規劃到產品開發到產品上線運營到迭代優化的全過程進行管理。時間管理是指主要是計劃監控跟蹤專案進度,把握關鍵時間節點,確保產品按照規定的時間上線。

團隊管理:產品經理需要協調很多部門,有技術,設計,市場推廣,運營,產品經理是一個無授權的領導者,你多數需要通過自己的影響力,自己的溝通技巧來協調專案的各個成員,所以需要一個相應的團隊管理能力。

需求管理:包含各個部門反饋的需求,以及自己收集的需求,需求的變更,需求的跟進等。

所以,你覺得你在以上四個能力上有天賦麼,有天賦並且你也有意願放棄技術成為一個產品經理的話,那就一個原則,就是趁早。

好了,以上就是我們的第二部分,程式設計師職業發展路徑有哪些選擇,希望大家可以及時對號入座。

如何結合自身優勢做好職業規劃?

接下來我們聊聊第三個話題,也是比較關鍵的核心話題,如何結合自身優勢做好職業規劃?

這個問題實質上其實是要求我們把兩件事做好,一是如何增強自己在眾多程式設計師中的競爭力,一是如果保持方向感

先來談談如何增強自己的競爭力

1. 拓寬業務場景

我們會在很多場合聽到對“精鑽”這個詞語的推崇,包括在職場上,我們常常聽到前輩教導我們對待工作要精益求精,但事實上,在某一方面做到萬里挑一的大牛是一條可取的道路,卻不是職業發展的唯一道路。

尤其是對於那些未來的職業發展規劃是進入明星創業團隊擔任技術負責人的程式設計師來說,在之前的積累過程中尋找機會盡量多地接觸各類業務場景並尋找解決方案,可能是一條更可行的路徑。

這裡的業務場景分為大業務場景,也分為小業務場景。大業務場景即不同的細分行業,如電商、內容、視訊、共享平臺等等。

我建議程式設計師們在進行工作選擇的時候不要被自己原先所屬的細分領域太過限制,認為自己原來在電商公司以後也必須在電商公司。

事實上,多去嘗試不同領域的公司,去了解不同領域的公司在技術實現上有什麼異同,對於程式設計師更深入地理解技術是很有幫助的。

尤其是當今行業發展日新月異,某一細分領域很難在一個人 15-20 年的職業生涯中一直處於蓬勃發展的狀態,如果之後又出現了新的細分市場,複合背景積累的經驗會幫助程式設計師快速切入到新的細分市場。

而小業務場景則是指同一個技術在同一家公司的不同業務範疇。例如演算法方向,可以分為排序、推薦、NLP、影象識別和使用者行為研究等,攻堅某一領域是一條發展路徑,但橫跨不是一個領域也是一條發展路徑。這就需要程式設計師自己把握機會,不斷跳出舒適區去承擔新的業務和需求。

比如曾經有位陳先生,他之前在 BAT 某公司任職 6 年,擔任演算法方向的程式設計師。由於之前 6 年公司業務增長很快,陳先生在不同的研發 Team 都參與過專案,因此在廣告、排序、推薦、NLP 和使用者行為研究領域都有一定經驗,但卻沒有深入的研究。

對此他自己也在跳槽的時候表示過擔憂:“業務在哪兒需要就打到哪兒,什麼都會一點,什麼都不精。”

然而沒想到的是,這樣的背景非常受中小型網際網路公司的歡迎。在經過了幾家面試之後,最終陳先生拿到了一家已經 D 輪融資的公司演算法負責人的 Offer,薪水也比之前有了大幅度提高。

如果沒有這樣的機會,也可以做到在某一方面非常精通,然後對其他方面有所瞭解,將自身培養成“T 字型”人才。

2.把握職場節奏

在職場上有一個時間標準:3 年。 3 年時間,一定要在工作內容和職級上有一個質的變化,這個變化可以通過升職得到,也可以通過跳槽達成目標。

初入職場的 3 年,主要的工作內容就是夯實基礎,此時基本處於“完成上級交付的任務”這樣的階段。

但在這個過程中,員工不能僅僅完成任務了事,而是要不斷思考為什麼上級要佈置這個任務,這個需求是怎麼來的,用於解決什麼問題,有沒有更好的解決方案等等。

之後的 3 年,也就是職業生涯的 3-5 年,作為程式設計師,需要達到一個小 Leader 的層級,即帶領一個小團隊(可以僅僅有幾個人)負責某一個模組或是功能的研發,此時在上個階段積累的經驗和關於解決方案的各種想法的作用便凸顯出來。

而此時作為小團隊負責人的角色,程式設計師更多地需要關注上下游的邏輯,能夠形成完整的邏輯鏈條。

工作經驗的 5-8 年,此時程式設計師已經成為了技術負責人,可以獨立負責某一個產品的研發,可以成功地推動產品從 0-1 的階段,此時更多需要關注的便是跨部門之間的合作與溝通,確保研發行程的按時交付。

與此同時,更多地關注一些產品設計方面的內容,會對進一步的晉升很有幫助。

最後一個階段,即工作 10 年以上,此時達到研發總監或是更高的職位會是一個比較理想的狀態,而對於這個層次的要求,是對於整個行業能有比較清晰深入的判斷,能夠感知未來技術發展的方向併為公司提前佈局。

3.訓練複合技能

除了程式設計之外,程式設計師要儘量培養一些其他方面的技能,例如演講、寫作等等。這樣做一方面可以為程式設計師提供一些兼職機會,如主講技術相關的直播課程、參考文章或書籍的撰寫等。

類似的機會在提供報酬的同時也會增加員工的知名度和行業影響力,更有甚者,在社交媒體上發表了相關文章之後,吸引了一批志同道合的同行,開始合夥創業,有了更大的機遇。

就算沒有這些額外的收益,複合技能的人才在公司內部也會受到青睞。

比如某知名網際網路企業的程式設計師張先生,由於他在面試時給 HR 看了自己在知乎等技術論壇上的文章,因此入職之後 HR 邀請他參與公司每週五下午的技術分享會並作為主講人之一。

剛開始張先生還很猶豫,畢竟本身的工作內容已經很繁多,很怕接了這個任務之後力有未逮,反而影響了自己的開發進度。

但後來因為同事的鼓勵和 HR 的反覆邀請,張先生還是答應成為主講人,並且利用每週末的時間準備講座材料。

因為在技術分享會上的良好表現,入職後不久,張先生被上級重用並在一年後得到了升職。

4. 保持緊密溝通

有些程式設計師認為自己做的是技術性工作,只要寫好程式碼就可以了。這是錯誤的認知。根據過來人的經驗,那些有意識在工作之餘關注行業動態,積攢人脈資源,並且樂於與同行溝通的程式設計師,往往在職業發展的路上走得更遠。

一方面,程式設計師可以通過這些方式隨時評估自己在市場上的價值和優勢,當行業和技術的風向發生轉變時,及時對自身查漏補缺,避免被時代拋棄。另一方面,人脈資源的積累,有時也能對自己下一次換工作起到雪中送炭的作用。

可見,行業資訊、公司動態的互通有無對於職業發展有著至關重要的影響,準確地把握行業動態有助於員工抓住一些轉瞬即逝的機會。

而對於資訊的獲取,自己的朋友、前同事、公司 HR 還有靠譜的獵頭等,這些都是可以利用的資源,同時也可以參加一些展覽、峰會等線下活動。

尤其對於那些自己感興趣的技術方向,儘量積累一些人脈資源,一次有效的內推往往比海投簡歷更有效果。

接下來我們再來談談如何保持職場方向感,也就是如何在職場這片海洋裡航行到最適合我們的一個又一個目的地。

首先我們要知道目前的職場海洋是什麼樣子的,更重要的是知道它正在發生著哪些變化。

不得不要正視的三個變化。

一是整個行業的人才儲備越來越充裕,相關專業的畢業生數量逐年提升,並且質量還越來越高。

就拿 2016 年的資料來說,根據教育部的統計,2016 年有高校畢業生 765 萬人,為歷年最高;而與程式設計相關的專業畢業人數達到了總人數的 8% 以上。

電腦科學與技術、電子資訊等專業也成為了近年來多所高校的熱門專業,不僅每年申請人數眾多,錄取分數線在眾多專業中名列前茅,同時轉專業和旁聽的人數也是逐年增加。 

清華大學 2016 年電腦科學與技術系的轉專業錄取人數與申請人數比例竟然達到了驚人的 1/40 。

二是網際網路行業的野蠻生長時期已經接近尾聲。

大型網際網路公司的基礎招聘需求逐漸萎縮,BAT 等巨頭企業 2016 年的校招需求數量均不足前兩年巔峰時期的一半,與此相對的是對高階招聘的需求越來越旺盛。

創業公司更是面臨大批死亡和被收購的困境。以前幾年火爆的垂直電商領域為例,隨著淘寶、天貓等傳統電商的成功,垂直領域的電商在 2014 年順勢而起,然而三年之後活下來的企業少之又少。

而共享單車從異軍突起到開始收割僅僅是 1 年半的時間。越來越短的行業週期很難繼續為基礎研發的工程師提供穩定大量的崗位需求。而創業公司的大規模倒閉也戳破了行業中的薪酬泡沫。

三是科技的發展並沒有帶來崗位的增加,相反,有時意味著崗位的減少。

以測試為例,曾經測試都是以手動測試為主,而如今一二線網際網路公司已鮮少見到手動測試,大多都是開發自動化測試工具的測試開發,因而對員工素質的要求大幅度提高,而數量需求則大幅度減少。

在人工智慧飛速發展的如今,可以預見的是未來很多支援類的研發崗位都有可能被效率更高的程式所代替,而專注人工智慧的公司將會把相關技術在行業內大規模普及。

從以上三點來看,我們可以很清楚地得出結論:在需求側趨於平穩,而供給側逐漸增加的情況下,程式設計師之間的競爭將會越來越激烈。

知道大海的樣子後,你要知道在航行過程中該做哪些事情讓自己順利抵達目的地。

首先,你得有一個清晰的人生規劃,才能有一個清晰的職業規劃。

個人覺得這就是人生的價值觀,只有價值觀定下來,才能夠形成適應價值觀的方法論,你是什麼樣的人,決定了你往哪個方向發展,學習哪些技術,達到哪種水平,同時為了獲取這些水平,要付出多麼大的努力。

首先自己要有一個清晰的人生規劃,可以不是很具體很長遠,但是要有明確的目標:成為一個什麼樣的人。

再將這個目標分解,其中有一塊就是“職業規劃”,規劃的時間不要很長,畢竟社會發展太快,我們預見能力有限,但要規劃出未來兩年自己要做的事情、學習的東西,將這些事情和目標再繼續分解,分解到每月、每星期,然後用行動去完成,用毅力去堅持,然後靜待歲月檢驗,因為時間看得見。

其次,網際網路技術要有以萬變勝不變的心態,時刻調整自己對自己的定位。

站在風口不一定能飛起來,但站在冰山上必然會沉下去。過去十年,網際網路的飛速增長創造了大量的崗位需求,同時由於在對未來的預期中,科學技術的突破和創新依然會在構建社會中扮演重要的角色,所以大多數人對程式設計師這個行業整體的發展趨勢是非常看好的,甚至可以說有些過於樂觀了。

然而事實上,程式設計乃至整個網際網路行業的人才動態都顯示出競爭越來越激烈的趨勢。

社會發展很快,尤其是我們所處的網際網路行業,簡直就是瞬息萬變的節奏。

各種新技術一個接一個的出現、消失,各個行業和公司也在不停的洗牌,強者倒下去,新的強者站出來。

市場的急劇變化使得個人必須相應地調整自己的定位,給出了三個建議:

(1)更新技術,踩上技術趨勢

當然網際網路技術工程師,切記不要故步自封,一家獨大,我建議同學們有遊牧民族的心態,哪兒裡水草豐美,就轉戰到哪兒。

踩上技術趨勢,馬雲馬化騰成了中國首富;踩上技術趨勢,2014 年一個優秀的 iOS 工程師換一份工作可以從月薪 15k 漲到 30k ,踩上技術趨勢,在校期間猛攻演算法的應屆畢業生可以在畢業時拿到年薪 50 萬的 offer 。

總之,千萬別認為你現在是搶手貨,未來依舊是,只有不斷更新技術,踩上技術趨勢,順勢而為,才能不被淘汰,才能穩定發展。

針對這一點上,我們看看小鄭這個例子吧,研究生期間從事的是 Android 開發,但他自學了 Python,所以對這兩類技術都比較關注。

為此,訂閱了“開發者前線”、“Android週報”、“乾貨集中營”等內容,還關注“@開發者頭條”、“碼農週刊”、“開發者頭條”、“CSDN極客頭條”等,瞭解 Android、Python 的最新資訊,也關注一些其他領域如“前端”的內容。

在微博上關注了很多 IT 大牛的賬號,就是為了瞭解一下技術的趨勢。後來研究生畢業就加入了今日頭條,成為了一名 Python 工程師,目前發展非常不錯。

(2)樹立個人品牌

運營自己的 GitHub 賬號並關注優秀賬號,建立自己的技術部落格,關注極客微博,參與線下活動,養成樂於分享不斷學習的習慣,並認識更多的圈兒內人,這些行為都會讓你不斷重新整理對技術趨勢的認知並且擁有屬於自己的人脈圈。

朋友多了路好走,樹立個人品牌,不要成為一個默默無聞的碼農,要去主動探索這個世界和這個圈子,這樣才能更有方向感。

另外也要提的一點,HR 和技術面試官也會在招聘會看你的 GitHub 賬號等,通過這樣的方式間接瞭解到你的學習態度和能力。

(3)在團隊的力量下,找到自己最大的價值

任何一個團隊,都需要有精英人員,也需要有普通人員,需要有勤奮的,也需要有滑頭的,需要做研究的,也需要做工程的,每個人最關鍵的是找到自己在團隊裡的定位。

所以,職業規劃需要根據所處的團隊作出適當的調整,除非你根本不想在這個團隊待下去。

知道了大海的樣子,懂得如何掌舵,接下來最重要的事便是知道自己想要抵達什麼樣的地方。

這一部分重點和大家講講,當你確定了要成為某技術領域的資深技術的時候,應該如何選擇 offer ,因為選對了 offer ,職業規劃就成功了一半,而另一半是充分在這家公司發揮自己的價值並不斷全面學習。

我常說,一份好工作往往包含以下四點,選那個最貼近的就好了。

第一,公司所在領域是否有競爭空間,產品資料是否有增量空間。

第二,你的團隊是否足夠有能力,你的直屬領導是否足夠信任你。

第三,你的工作內容是否能給你帶來持續的成就感。

第四,如果一年半不漲薪,現在他們給到的薪資是否能讓你願意加班的熱情不減。

如果認同的話,希望大家能夠謹記以上四點。

接下來我從三個大維度為大家分析如何選擇適合自己職業規劃的 offer 。分別是年齡,性格,公司規模。

1. 不同年齡段的人所適合的 offer 不同。

(1)22 歲至 26 歲的人如何選擇好 offer。

多數人都是需要經過一段時間的工作沉澱,才會知道自己適合做什麼。職場的新人,要多去嘗試,慢慢找到自己善長並且喜歡的方向。

所以,根據工作性質的不同,在工作的前 1-3 年,不要讓自己過於沉迷在一個具體的領域,條件允許時,多嘗試不同的選擇。

如果公司不具備換崗的環境,可以自己利用業餘時間多與從事其他領域工作的同學或朋友交流,選擇一個可以專注打磨技術,又有空間和機會學習和交流更多技術的環境,這樣你會知道自己最容易拿到結果和帶來價值的工作是什麼。

(2)27 歲至 30 歲的人如何選擇好 offer。

該年齡層的候選人,如果在大公司,建議去發展速度快的新興業務群組去“碰碰壁”。

前段時間,100offer 有篇《遠離舒適區:站在傳統行業與網際網路行業的交叉口》文章中提到一名 29 歲想從傳統行業跳槽到網際網路的 Paul ,他在傳統行業的一家大公司就職程式設計師,在想要跨行到網際網路行業時,才發現自身技術不過關,已經跟不上時代的發展了,多家網際網路企業都只願讓他降薪加入。

之所以建議挑戰新領域,正是因為 27 歲至 30 歲這個年齡段的候選人,多半已經對自身業務無比熟練,對新技術的瞭解不夠,在選擇跳槽時,如果仍停留在舒適區,沒有危機意識,在未來的招聘市場的競爭力會降低不少。

加入快速擴張期的初創企業也是不錯的選擇,選擇一家高速發展、團隊能力強、工作氛圍積極、盈利思路清晰以及牛人多的初創公司,對個人發展也會有很大的幫助,並且空間大,晉升機會更多,大家應該知道在阿里或者騰訊這樣的公司,技術晉升是多麼的困難。

(3)30 歲以後的人如何選擇好 offer

30 歲後的職場人,尤其是技術人,在戰略思維上,他們能更為清晰知道一個專案系統設計的具體規劃,細分之後的具體程式設計對於他們而言自然是輕而易舉,但他們應將精力更放在系統設計上,創造最大價值。

所以,30 歲往後的職場人,若一直有著較為清晰的職場規劃並穩步實現中,這個階段的人,不會輕易跳槽,選取 offer 時薪資不會是最重要指標。

他們會比較渴望帶團隊或者做一款有自己印記的產品,總之,是希望在工作中扮演不可或缺的角色。

2. 不同個性的人所適合的 offer 不同

優秀的候選人,比如很多 BAT 的候選人,基本在跳槽時都能拿到很多 offer ,他們選擇前提普遍是薪水相對滿意,業務前景他們看好,但因為每個人的性格不同,所以考慮的出發點不一樣,所以選擇也會有差異。

(1)有冒險精神能夠承擔風險的人。

在一家成熟穩定的公司工作了比較長時間的候選人,建議選擇一些初創型企業,這些企業可以給到很有競爭力薪水的同時,也會給具有誘惑力的股票期權以及職務。當然了,前提是你有足夠的技術積累和勇擔風險的態度。

(2)偏向於穩定型的候選人。

穩定型候選人,尤其是曾被初創小公司畫餅坑過的候選人,建議選擇一些專案穩定發展穩定的公司,類似金山或者網易。

(3)不是特別愛冒險,但也不是特別想穩定的候選人。

這類“中間型”候選人,建議優先選擇目前規模中等但還是快速發展的類似快手和頭條這樣的公司。

3. 不同規模公司的 offer 怎麼選更適合自己

(1)大公司和小公司的 offer 該如何選擇?

如果你在積累期和發展期,也就是前面兩個五年,我會建議你選擇大公司,如果處在第三個階段,成熟期,你去大公司只是為了給簡歷背書,那就是得不償失,因為畢竟大公司人才多,競爭激烈,這個時期加入,無疑人脈資源都是從零開始,並且也較難走到決策層。

因為這個時期你的方向是自我實現,對於前面的提到的關於訴求的8個維度中,被重視程度和個人增值的權重會更大,相應的初創公司對技術人才的依賴性和重視程度更強,會被賦予更多的許可權和機會,你的話語權會更大,反而大公司裡你的替換度會較高。

創業公司對個人的能力挑戰更大,你不僅要考慮技術,更要兼顧業務,模式,產品,以及帶團隊,團隊招聘和個人領導力等,對你的綜合能力是個很大的挑戰,但同時也會發掘你潛在的可能性,這個過程中可以更全面的認識自我。

如果處在職業發展的第二階段——發展期,而你又在大公司工作過,再繼續選擇大公司的 offer 時要更慎重,不妨問問自己是否要追求穩定,自己的抗風險能力是否足夠強,對於不確定性的接受度如何。

如果你發現自己不是風險偏好,對於不確定性的接受度不強,更喜歡制度完善,穩定性高的工作,那麼說明你依然適應大公司的環境,那就繼續選擇大公司。

如果你對於大公司的工作狀態不滿意,認為自己有更多的可能性,在這裡限制了自己的發展,那麼可以不用糾結,去嘗試新的環境。

畢竟你所在的是發展階段,處於飛速奔跑階段,你的所有訴求中,技術高速成長,職業發展空間更廣闊的優先順序更高。

大公司的團隊已經成熟,因崗設人,技術的廣度容易被侷限,並不是每個部門都有技術創新,大多數部門的框架已經定型,核心功能基本完成,日常工作在原有的框架上修修補補,技術挑戰不大,同時跨部門協作溝通成本又高,沒有更多的時間鑽研新技術。

並且重複的大公司經驗並不會使得簡歷更加出彩,反而會降低了自己的適應性和限制了可能性。

大公司更容易養成舒適區,一旦享受這種狀態,就會容易虛度了這至關重要的發展階段,從而錯過更大的機會。

同時,從經濟回報這個維度來看,在大公司裡,收入增長的天花板是明確看得見的,個人收入不會有顛覆性的改變。

完全的 KPI 導向,晉升只會在那 20% 中選擇,並且還有更多你不可控的因素,比如業務的受重視程度,老闆的傾向性等,漲薪難度相對也更高。

現金部分而言,小公司往往會開出更優厚的條件,區別在於期權部分,大公司的期權,風險低,增值空間不大,基本可見,小公司的期權風險較高,一旦產生收益,對你的生活影響也是巨大的。

如果你處在職業發展的第一階段——積累期,你的求職訴求中,團隊,技術成長和個人增值三個維度尤為重要。

那麼大公司更容易滿足你的訴求,因為職場的前五年,也是積累人脈的五年,這裡集中了很多優秀的人才,這個人脈也將是你今後的財富。

大公司,大流量使得你可以看到技術更深層次的問題,獲得站在巨人的肩膀上看待問題的視角,技術領域不止有通過 coding 來實現功能這麼簡單,規範化,團隊協作,科學的流程都是小公司中不容易學到的。

這裡有完善的培養體系,給你規劃出合理的成長路線,並且大公司的技術牛人多,和更優秀的人一起會加速你的成長,可以獲得更優化的程式碼方案,學習到解決複雜問題的經驗,同時他們也可以幫你擋掉產品的不合理需求,總之你有時間和資源去快速積累和成長。

這個階段去大公司積累經驗,等到後面兩個發展階段再看機會的時候,你會有更多的選擇。

(2)大公司之間的 offer 如何選擇?

大公司之間的 offer PK ,首先一定是核心業務優先和核心職能優先,其次是選擇新興業務事業部,跟其他成熟的業務模組相比,有更廣闊的發展空間,畢竟成熟的業務部門,後期整體上升會比較慢,壓力相對也會較大。

核心業務是指大公司的專屬領域,往往形成了堅固的商業壁壘,通常我們說的阿里的電商,騰訊的社交,百度的搜尋,是 BAT 最最核心的業務,是市值的主要來源。

這些部門最直接的收益就是年終獎多,畢竟投入多,資源多,有足夠的話語權,晉升也會更加順利。

以 BAT 為例,掌握了足夠多的資源和資本,會在自己的生態圈裡嘗試諸多新的業務,這類嘗試性的業務,比如阿里的來往,騰訊的微博等,在戰略走向不那麼明朗時,會同時孵化幾個,幾十個新專案,這類內部孵化專案類似於外部天使輪的公司,做出成績和資料才會爭取到下一步的資源,否則隨時可能夭折。

接著你會被分到新的專案,重複前面的過程,總之專案週期短,技術得不到積累,團隊穩定性差,因此儘量避免加入大公司的嘗試性業務,邊緣化的業務會阻礙你的發展,而且內部調整多,部門流動率大,資源競爭激烈的情況下,淘汰率也高。

接著我們來探討下核心職能,BAT 的職能傾向性跟他的核心業務相關,阿里的電商對應的運營,騰訊的社交對應的產品體驗,百度的搜尋對應的技術,這種基因一旦形成,就會對企業的決策產生了影響,資源分配的過程中就會有相應的傾斜,進而形成運營導向型,產品導向型,技術導向型。因此,我們在選擇 offer 時,對應自己的職能做出判斷。

(3)小公司之間的 offer 如何選擇?

創業公司的風險不言而喻,大部分都死於融資,死於現金流,生命週期短,然而頻繁嘗試失敗的創業公司不僅是對於職業生涯的一種傷害,更會帶來更為嚴重的後果,那就是因選擇工作的不慎重而造成對事物的判斷能力的懷疑。

那麼為什麼還有這麼多網際網路人投入情感和精力加入到創業團隊呢?

因為這裡可以實現從 0 到 1,到 100,到一萬,十萬以及更多,和有共同夢想的人一起成就一件事情的快樂和成就感是在別處無法獲得的。

能夠全程參與或負責一款產品,能夠獲得從整體的角度思考問題的經驗值和能力。

在小公司工作,更需要綜合能力強,更全面的知識涉獵。同時人才市場也更認可有完善的產品或專案經驗的候選人,因為這與只是參與了某個細節,某個模板的候選人相比,他們更具有產生更大價值的潛力和能力。

那麼小公司是充滿機遇和風險的,因此我們需要帶著接近投資人的眼光去選擇公司。

首先從商業模式來分析,基本有以下三個關鍵因素:

1. 一定要解決痛點
2. 有龐大的使用者量
3. 可持續性

同時並存這三個因素,這類公司可以作為重點關注。

然而現存的商業模式和變數都太多,沒有辦法嚴格按照以上三個因素來分析,那麼我們如何避免踩“坑”呢?

我們可以從其他角度來分析,比如不要妄想跟 BAT 分蛋糕;很多人都嘗試過的模式不要固執的堅持;沒有網際網路基因的傳統公司創辦的網際網路業務;以及假大空的模式等,這類公司都建議繞行。

其次就是團隊,是否能夠得到資本青睞,拿到融資,團隊是關鍵因素。

在團隊當中創始人就是靈魂人物,與其說選擇一個團隊,不如說是在選擇創始人,同樣的,我們沒有辦法做到投資人的經驗老道,惟願不踩“坑”。

第一類是投機者,看網際網路市場好,一哄而上,拿出的專案是沒有創新能力,只是簡單的抄襲,沒有做深入的思考者,堅決選擇轉身。

第二類是傳統行業背景的創始人,這類風險也較高,他對實體專案運營有豐富的經驗,不代表能夠完全吸收並消化網際網路思維和玩法。

那麼什麼型別的創始人應該受到青睞呢?

第一類是有情懷的創始人,創業過程基本都是九死一生,需要投入大量的情感和精力,在困難和阻力面前,支撐著向前的就是情懷,能夠堅持著改變世界的信念和決心。

判斷情懷的方法就是看創始人對公司的投入,包括物質和精神是否全情投入。

第二類是連續創業的創始人,無論前面的創業是否成功,都是加分項,即使前面的創業經歷是失敗,那麼他一定會總結經驗,他的試錯成本會降低。

第三類是有大公司背景背書的創始人,他的人脈,資源和技術都是很好的創業資源,這項可以加分。

馬雲在選擇被投企業上堅信,最關鍵的是看人。看人的根本是看格局,尤其是長遠的理想和品行。在變化很快的狀況下,最終企業之間拼的還是團隊的信念和自我進化能力。

馬雲的說法更形象:“人對了,機會自然來。有錢了,人奔著錢而來沒有用,有了正確的人,正確的錢就會來。人靠譜,模式不靠譜,他可能會將模式調靠譜;人不靠譜,模式靠譜,或者兩樣都不靠譜,死掉只是時間問題。”總之如果去創業公司,人是最重要的。

以上就是我對於如何在職場上選擇 offer 的一些見解。

總而言之,剛才的分享是為了告訴大家職業規劃最重要的兩個方法,一是增強自己的競爭力,二是保持屬於自己能力,潛力和風格的方向感。希望大家牢記。

職業轉型需要做哪些準備?

接下來我們聊聊第四個話題,職業轉型需要做哪些準備?

今天主要與大家交流以下三種轉型。

技術轉管理

工程師轉型管理,需要很強的溝通能力和細緻的觀察能力,同時,管理也分一線與二線,一線是直接管理,需要經常直接參與員工的工作,二線是間接管理,通過管理低階別的管理者來完成任務目標。

不過無論是哪種管理者,都需要做到兼聽則明,不能偏聽偏信,如果是一個不喜歡溝通的人,轉管理就是團隊的災難。

同時,需要有細緻的觀察能力,在很多影響團隊狀態的事情在萌芽狀態就能夠發現,通常員工開始找你抱怨了,團隊就已經有非常嚴重的問題了。

做管理,需要你有自己的理念,並且堅持它,對自己的理念都經常懷疑動搖的人,不可能成功。

這裡我們需要區分一個堅持理念與堅持理論(知識)的區別,我見過很多在工作中很不好相處的人,別人對他們的評價是他們認死理,那是因為他們把具體的理論(知識)當成了抽象的理念去堅持。

舉個簡單的例子,我有一位資深技術總監的朋友,他帶團隊的理念是公平與公正,但如何實現公平與公正,這是實踐中形成的知識體系,知識體系只是相對正確的,所以需要不停的吸收新的知識來完善它。

傳統轉網際網路

很多人說最大的問題在於“網際網路思維”,其實我認識很多從傳統公司轉向網際網路公司的人,轉 C 端的,成功的很少,轉 B 端的,成功的很多,其實總結起來就是,B 端如何向 C 端轉型。

我之前面試過一個公司的 B 端管理職位,對方面試有一個問題是:他們需要一個能每秒併發超過 1 萬的訊息佇列,要我給出一個解決方案。

我的回答是:B 端一天能有上百萬次訪問就是高併發了,這個每秒一萬是什麼需求,打算每天用 100 秒完成全天的工作?這個問題和回答其實從深層次說明了 B 端和 C 端一個直觀的區別,當然這只是區別之一。

對於很多網際網路公司,為什麼 B 端很難有合用的產品,就是因為拿 C 端的開發思路在指導 B 端的產品研發。

所以,傳統公司轉網際網路公司,本質是 B 端轉 C 端,這個話題延伸起來就太大了,而且現在 C 端產品也在引入很多 B 端的場景,我覺得這都是機會。

另外,不一定一開始去網際網路公司,可以去傳統公司的網際網路 + 專案緩衝,例如海爾的日日順,平安的陸金所,這樣更容易穩定發展。

技術轉產品,因為在第二個話題上說的也很多了,在這裡就不多說了,對號入座就好。

大齡程式設計師的出路?

接下來我們聊聊第五個話題,大齡程式設計師的出路?

隨著網際網路的高速發展變革,大齡恐懼症越來越多地在技術圈被人討論。

很多程式設計師在工作 5-10 年以後,都會開始思考 5 年、10 年甚至更久以後的自己,會是怎樣一種生活工作狀態,以及是否會被時代拋棄。

特別是全民創業的這幾年,大到 BAT ,小到創業公司,喜歡年輕員工成了許多企業招人時的隱形規定之一。

比如華為就明確規定員工 45 歲以後必須退休。阿里這幾年也在追求團隊年輕化,35 歲以上的程式設計師申請 P8 以下的職位成功率很低。

曾有一家網際網路金融公司表示平時在招聘技術人才時,普通開發人員的年齡不得超過 30 歲,架構師年齡不得超過 35 歲。

而許多高速發展的創業公司,更是年輕人的天下,從 CEO 到 CTO ,平均年齡不超過 30 歲的情況比比皆是。現在的網際網路世界,似乎成了年輕人的天下。

關於此類現象,我諮詢了一些企業 HR 的觀點,其中有一條建議比較中肯:

大齡程式設計師在選擇工作時,首選要認清自己,再去選擇環境和公司。比如先確定自己是屬於比較有激情、活力、願意終身學習新技術的那一類人;還是心有餘而力不足,想脫離一線技術,想把更多精力放在管理上的那一類人。

如果是第一種,可以選擇一家快速成長的創業公司,將自己的技術價值最大化地發揮出來;

如果是第二種,就選擇那些組織架構相對臃腫的大公司,這些公司盤子夠大且沒有太多坑需要踩,因此對年齡稍大且有豐富經驗、能安於現狀、踏實做事的人存在一定需求。

其實不光是程式設計師,“大齡恐懼症”幾乎是網際網路行業裡每個崗位的人都會遇到的問題,世界的變化太快,誰也不知道下一場取代網際網路的變革何時會來。

排除這種不可控的外在因素,一個人最大的恐懼,還是由對自我認知的缺失引起的。

其實目前,我們能看到大齡碼農存在的兩種狀態:焦慮和自信

很多時候,大齡程式設計師之所以會焦慮,主要還是兩方面原因:一種是家庭生活難兩全帶來的抉擇,另一種是對自身技術水平的不自信。而後者才是大多數大齡碼農焦慮的源頭。

而那些對自己技術不自信的人可能多年都在從事著普通開發的崗位,既得不到職位的晉升也提不起學習新技術的興致。

如某網際網路金融公司的 HR 所說,這一現象在面試的過程中就能體現出來。

比如他們曾面試過的很多大齡碼農,使用的框架和技術比較老舊,雖然他們對新技術也有所瞭解,卻因為精力有限的原因沒有落地執行,這種型別的程式設計師自然與高速發展的企業並不匹配。

這個時代很殘酷也相對公平,殘酷的地方在於世界的變化之快容不得人有片刻懈怠,公平的地方在於:不論你是年輕還是年老,都要靠實力說話。

那些被時代拋棄的永遠都是跑得比較慢甚至在原地徘徊的人,即所謂的工作十年卻只有一年工作經驗。年輕程式設計師的優勢在於年輕和激情,大齡程式設計師的優勢在於閱歷和經驗。

所以,年輕程式設計師不要有跨越年齡階段的焦慮,大齡程式設計師也不要覺得年輕人搶了自己的飯碗。

每個年齡段都有自己要解決和麵臨的問題,認清自己內心真正的需求和渴望,再去尋找適合自己的棲身之地打怪升級,才是當務之急。

時代永遠不排斥大齡程式設計師,時代排斥的是沒有能力的大齡程式設計師,真正能解決難題的程式設計師,無論年齡多大,都會一直搶手。

希望即將奔三或者馬上奔四的程式設計師夥伴們,永遠保持一顆學習心,不以物喜不以己悲。

最後和大家分享一個技術圈兒的大牛朋友和我說過的話。

他說,可以把我們程式設計師的職業生涯用古龍小說裡的4個階段來比喻:

  1. 手中無劍,心中無劍,這個階段的程式設計師,主要還是模仿,比較唯技術論,很容易受到權威或輿論的影響。

  2. 手中有劍,心中無劍,這個階段的程式設計師,覺得自己是無所不能的,開始熟悉某一個領域,看不起其他領域,開始給權威挑刺。

  3. 手中有劍,心中有劍,這個階段的程式設計師,開始變得謙虛,開始頻繁的總結,對於權威和技術體系,有選擇性的吸收到自己的知識體系中。

  4. 手中無劍,心中有劍,這個階段的程式設計師,自己已經不再受經驗的束縛,可以根據環境和需求找到最佳的解決方案,自己已經成為了權威。

你,到哪個階段了?

好啦,我今天的分享就到這裡啦,希望大家提出更多問題一起交流討論。

近期熱文

從一個悲催的IT人說起 | 科普一下 DevOps

OpenVPN 的穿牆遠端連線旅程

前端跨域問題各種解決方案

程式設計師跳槽時,如何高效地準備面試?

工作之餘如何高效學習

GitChat 被惡意攻擊引發的技術性思考:拒絕服務攻擊

「閱讀原文」看交流實錄,你想知道的都在這裡

相關文章