天天看點

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技術、阿裡面試題精編彙總、常見源碼分析等錄播視訊免費分享出來。

下載下傳位址:

https://shimo.im/docs/YHJtVkC3y6qgp9xC

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