37歲老碼農現身說法:那些年,我走過的彎路

背景

疫情之下,剛剛結束了在家辦公的日子,準備開展新年的工作的時候,突然接到同行好友的電話,要和我聊聊天。

他說他們部門調整,雖然最後他留了下來,但還是非常焦慮。人無遠慮必有近憂,他這次被刺激到了,想提高一下自己,以免下次再有類似的心驚肉跳。但怎麼提高呢?

程序員第一考慮的當然是技術,但現在真不知道學什麼了:幹了三四年的開發,手頭的工作馬馬虎虎都沒什麼問題了。就算有問題,也是業務邏輯上的問題,系統太複雜,吃不透;或者系統裏一些過時的/生僻的技術,真心覺得沒必要花時間花精力去研究,能對付就行了,是不是?反正下家單位99.99%的機率是不會用到這些東西的的。

那麼就是一些新技術了。新技術雜得很,不知道學什麼,框架類庫啥的其實沒什麼技術含量,一兩個星期就可以上手,上手了之後呢?往深裏學?其實和老舊技術一樣的問題,誰知道下一份工作用不用得上呢!而且沒趣,大概是因爲沒有挑戰性吧,反正就那個樣,還能咋的?

學習瓶頸

一直聊到這裏,我都非常理解。我這個十年以上的老碼農,體會比他還深。其實稍微幹上一些年頭,就是這個樣子,看起來像是“學習熱情下降”“懶得學習”,但本質上呢,兩個原因:

1、本身的技能增強,能夠應付日常工作,沒有剛入行時那麼大的壓力了。

2、學習的邊際效益遞減,所以開始考慮投資/收益比了。

剛入行的時候,技術一丁點的進步,都能帶來非常大的成就感,至少能少挨點罵,是不是?積累到一定時候,就可以跳個槽漲點工資啥的。但三五年過後,

我已經會了:

  • 熟悉Android OS系統體系結構、framework層;
  • 良好的Java技術功底,精通多線程、socket通信、文件操作等java底層技術;
  • 精通Android的基本組件使用,熟練使用Android各種佈局與控件,熟練運用各種動畫特效;
  • 熟悉View的繪製原理,精通自定義動畫以及自定View的開發
  • 有豐富的Android性能優化經驗,善於解決系統崩潰,內存溢出和兼容性問題;
  • 熟悉JNI技術和代碼混淆
  • 有單元測試、自動化測驗及相關框架經驗;
  • 有良好的代碼習慣,要求結構清晰,命名規範,邏輯性強,代碼冗餘率低,代碼註釋清晰;

學會優雅轉身

接下來和大家分享一下我這麼多年的轉型之路。姑妄聽之:

1、轉型技術管理

2007 年下半年到 2009 年初,我慢慢轉向技術管理角色,開始管理一個研發部門。我走的路線是“技而優則管”。

簡單講,就是你技術牛 X ,輕鬆搞定各種問題,開始帶人,接下來帶團隊管項目,再接下來,順理成章就會被公司推着向技術管理者轉型。

這種路線,也是一大半技術管理者走過的路線。如果你想轉型技術管理,可以考慮這種。

“技而優則管”的要點,就是:行有餘力

什麼意思呢,就是聚焦當下,高效搞定你的任務。當你體現出綽綽有餘的樣子,領導就會給你更多更難的任務。當你還能高效搞定,還看起來有餘力,領導就會再給你更重要的任務……

如此循環,你就越來越重要,就會帶人、帶項目的機會。

假如你總是手上的活兒都做不完、做不好,就基本走不了這條路線。不過也還有其他路線。

2、加入創業者行列

2014 年 9 月份,我因某種契機,離開工作 7 年的公司,重新考慮自己的方向。到陽曆年底時,接受朋友邀請,和他一起創業。

我之所以願意去嘗試,是因爲:

  1. 創業和上班的未來可能性大不一樣,萬一創業成功,你的影響力、經濟回報,都會上一個臺階。
  2. 一起做事的人靠譜。
  3. 做的產品,盈利模式明確。

當然,不幸的事總會發生——我們失敗了。

我個人並沒因爲這樣的失敗經歷而後悔,因爲當你站在主人翁的角度和高度去爲公司負責時,你對工作的認知,會發生巨大變化!這種變化,會對後續的工作和人生產生重要的正向影響。

如果你技術過硬爲人靠譜,一定會有不少創業者邀請你加入他們的隊伍。不要頭腦發熱,要仔細考察一下:

  1. 評估要做的產品是否靠譜
  2. 看看即將一起共事的人是否靠譜
  3. 設想近 2 年沒有收入,自己和家人的生活水平能否維持
  4. 設想全力投入創業對自己和家人的生活有什麼影響,自己和家人能否接受

3、 重回開發崗位

我從 2009 年開始做技術管理,到 2015 年底創業失敗,歷時 7 年。可是我在多個更好的管理機會面前,毅然選擇回到技術崗位繼續做開發。

爲什麼?

這是因爲我們工作的目的,除了賺錢,還有自我實現。

自我實現包括幾方面:

  • 成長
  • 成就
  • 意願

成長是指你做一件事之前和之後,有你想要的、積極的變化。

假如你做了十年開發,技術水平、解決問題的能力,還是和剛入行時差不多,那就叫沒成長!

成就是指你做出了成績並獲得了相關干係人的認可。

你負責一個模塊,用了最新的技術最牛逼的設計,也能 run ,實現了用戶需求。你個人覺得很有成就,可是你用的技術框架過於複雜,維護成本很高,運維團隊、二次開發團隊都不認可,那就不是真正的成就。

意願很好理解,就是你願意在什麼事情上投入你的時間和精力、你做什麼事情時會感到開心

比如我,在創業失敗重新找工作時,就是因爲覺得親力親爲用技術去開發一個個軟件、解決一個個問題比較令我興奮和投入,所以才選擇回到開發崗位上。

很多開發者都會遇到要不要轉管理、要不要一直做技術這種問題,怎麼選擇答案,關鍵就在於你的個人意願和你做某件事的感受。

可能有人會問,如果你一直做開發,年齡大了,怎麼和年輕人拼?

我之前畫過一張圖,再貼出來給大家看看:

由這張圖可以看到,開發者做軟件分兩次創造,第一次創造在頭腦中完成,屬於思考層面;第二次創造,是編碼實現,是腦力勞動體力化。

如果你想要超越年齡,就要多在第一次創造所需要的能力上下功夫:

  • 構建起來自己圍繞着特定業務領域的知識體系
  • 淬鍊想象力、抽象、歸納、分析、整合、設計等

這樣你就能思考得多、做得少、做得關鍵、做得好,就可以超越年齡的限制。否則如果你整天和年輕人一樣只關注噼裏啪啦敲代碼,肯定沒價值,很快被清退。

所謂高級工程師就是在技術上逐步沉澱,逐步體系掌握核心技術得來的。

我們程序員提升的方向無非管理者與架構師兩種。要成爲管理者,就應具備一定的管理知識、較高的情商以及良好的組織協調能力。

而想要成爲移動架構師,就要肩負技術和組織兩個層面的重任,構建自己完整的技術體系就尤爲重要了。

當然從結果來論,能力突出架構師的薪資也同樣會水漲船高,一個Android架構師能夠拿到40萬的年薪都再正常不過了。

程序員職業路線圖

對於Android架構師職責的介紹,網上已經鋪天蓋地,就不再贅述。今天我主要給大家分享一下成爲一名Android架構師應該掌握的技術能力。

阿里公司注重的7大主流技術專題與移動架構師項目實戰

深度對接阿里P8高級工程師級別的主流技術體系,並且綜合了目前的各大互聯網公司如華爲、抖音、OPPO、阿里等主流技術(即使你不想選擇阿里,其它的大廠照樣適合)

主流技術專題

主流技術專題

移動架構師項目實戰

音視頻開發、網上商城、新興自媒體等都是時下熱點技術與專題,深入瞭解項目源碼、參與項目開發過程中問題解決、組織協調與人際關係溝通均是大廠對人才素質的基本要求。

移動架構師項目實戰

最後

題外話,我在一線互聯網企業工作十餘年裏,指導過不少同行後輩。幫助很多人得到了學習和成長。

我意識到有很多經驗和知識值得分享給大家,也可以通過我們的能力和經驗解答大家在IT學習中的很多困惑,所以在工作繁忙的情況下還是堅持各種整理和分享。但苦於知識傳播途徑有限,很多程序員朋友無法獲得正確的資料得到學習提升,故此將並將重要的Android進階資料包括自定義view、性能優化、MVC與MVP與MVVM三大框架的區別、NDK技術、阿里面試題精編彙總、常見源碼分析等錄播視頻免費分享出來。

Android進階視頻

Android進階視頻

需要的朋友,可以點擊關注+轉發+私信“學習”前往免費領取!

希望我能夠用我的力量幫助更多迷茫、困惑的朋友們,幫助大家在IT道路上學習和發展~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章