移動開發:高齡碼農如何在被“勸退”的邊緣下立足腳跟,曾被忽略的這些點成了自救的稻草

前言

前幾天看到一個新聞,40歲程序員面試京東被拒以後落淚,聽到這事兒以後特別心酸。

不管是不是做技術的程序員,40歲正是一個上有老下有小的年紀,京東HR表示對他的情況也是很同情,但是無奈年紀太大了,公司有着明確規定是不會要的。

所以程序員年齡危機不是我們隨便說說的,在很多大公司確實有這方便的規定。如果到40歲還沒做到公司的管理層或者高層,還是比較危險的(技術專家除外)。

大齡程序員失業以後怎麼辦呢,轉型做其他行業?

其實大齡程序員想要轉型還是挺難的,畢竟年紀擺在這裏了,再重新去到新的行業很難再適應和讓別人接受。

那麼,作爲Android程序員,我們應該如何自救?建立起什麼樣的競爭力才能讓使自己擺脫焦慮並在漫長的職場道路上不掉隊呢?

今天就來聊一聊我在十多年的程序員生涯中總結出的一點感悟。

打破高齡危機

從基礎到高級再到架構,我將從兩個方面進行概括:專業能力和進階能力

1、專業能力

專業能力是作爲一個職場人員都需要具備的基礎能力,專業能力包括學習能力、溝通能力、執行力

學習能力

在互聯網行業,技術日新月異,並且不斷升級;3G和4G在10年內逐漸普及,5G也即將踏浪而至,隨之帶來對IT相關技術要求也越來越高。從我們每天在使用的編程語言、技術框架等,到更復雜的通信協議、音視頻編解碼、網絡數據傳輸等等,各項技術都在持續的更新與進步。作爲一個Android程序員,我們還會在不同的子行業、公司之間輾轉,接觸不同的業務和產品,快速學習和理解不同業務及產品背後的邏輯和本質,是一項必備的素質。

這些都要求至少自律的學習能力,不斷的學習、研磨技術,豐富自身技能,以適應時代的快速變化帶來的技術更新和挑戰。

溝通能力

作爲程序員,大部分時間是和機器在打交道,但並不意味着程序員就可以和外界完全隔離,良好的溝通技巧,能夠讓工作事半功倍。許多程序員會排斥與人溝通,總是希望通過代碼、做出來的產品來展示和表達自己,在某些時候也許行的通;但在大部分工作中,我們還是要與其他人溝通與交流,比如需求評審需要和產品同學溝通,bug需要和測試人員溝通,即使是代碼也需要做出良好的技術架構設計,通過文字、圖形或語言表達出來。溝通首先需要具備溝通意願。

其次要掌握好溝通技巧,學會換位思考,避免無謂的衝突。隨着90後、千禧一代邁入職場,社會也越來越包容倡導多元、自由的文化,這帶來的一個問題是越來越多的人會走向自我、封閉甚至極端,直接的體現是他們在社交、職場上與人溝通經常出現衝突,團隊合作愈發困難。因此掌握良好的溝通技巧,學會共情也是溝通能力的一種體現。

執行力

任何一個團隊和組織,都會在目標明確後要求每個人能夠全力以赴,不折不扣的執行既定的計劃,高質量高效率的完成任務,因此良好的執行力也是程序員在一個團隊中必備的基礎能力。

以上是作爲程序員在職場中所需要具備的幾項基礎能力。除此之外,我認爲程序員還需要構建以下幾項進階能力。

2、進階能力

進階能力是我們Android程序員能夠進入IT行業從事軟件開發長久的關鍵。進階能力的不同也意味着可以達到不同的職業高度。

進階能力包括基本的技術能力、架構設計能力和項目管理能力。

基本的技術能力

基本的技術能力是一個程序員在工作中賴以生存的基礎。對於一個Android程序員,除了需要深入的理解java的語法知識、jvm的原理和調優、java的高級特性等等;還需要了解常見的數據結構和算法;需要熟悉主流的應用框架,如okhttp、MVC、MVP、MVVM、Glide圖片加載框架、RxJava響應式編程框架等;需要對常見的調優技術有實踐經驗,如啓動調優、崩潰調優、弱網優化、UI優化等等;另外還需要對音視頻、Android Framework層等領域技術有一定的研究。如果能夠對基本的技術能力有了較深入的掌握,基本就可以拿到一份工作的offer。

架構設計能力

架構設計能力是一個Android程序員突破自我所需要邁過的第一個坎。

技術、框架不斷更新進步帶來的一個新的問題是,許多Android程序員在日常工作中通過簡單的複製粘貼,已經可以完成大部分工作,也有一個名詞叫“Crud Boy”,泛指那些每天最多做的事情就是簡單的增刪改查的程序員。重複的複製粘貼或Crud讓程序員的思維逐步退化,不願意思考,隨着時間的推移面臨被淘汰的困局。如果在工作中,能夠多思考總結,逐步積累起架構設計能力,那結果可能是另外一種境遇。

架構設計能力首先包括最簡單的設計模式。在寫代碼的時候,是否考慮過對代碼進行有效的組織,按照GoF所倡導的23種設計模型進行重構,讓代碼更易讀、易維護。這些都是我們Android開發者們進階架構設計能力的體現。

以上這些架構設計能力在每一個維度都有可以深入研究挖掘的技術點,如果你有時間並且希望在技術中不斷突破自我,那麼應該深入到Android的每一個領域中去,通過不斷研究和實踐積累經驗,直到有一天你能夠根據不同的業務、應用場景、用戶等,自己設計出一套合理的架構

項目管理能力

專業能力中的另外一項是項目管理能力。項目管理能力是一項綜合能力。

項目管理是任何一個組織能夠完成產品、項目成功上線,都必須要做好的一件事。對於一個Android程序員來說,能否主導或負責完成一箇中大型項目的項目管理工作或者在項目的某一個細分領域完成項目相關的管理工作,更是綜合能力的體現。

如果你已經具備和掌握了上述所有這些技術和專業技能,則可以從一個Android程序員菜鳥成長爲技術專家,大部分工作中遇到的技術問題也能夠自行研究解決。

我通過多年的時間經驗證明,Android程序員的這些核心能力在工作中相互交織而又層層遞進,每天我們都在使用、學習和積累這些能力。通過在工作中不斷的總結和回顧,接受項目和產品的歷練,相信每一個人都可以突破自我,邁上新的臺階,擺脫35歲所帶來的中年危機。

金三銀四跳槽板

每年的“金三銀四”都是職場人跳槽求職的好時機,但是今年形勢有些不一樣:

去年受到疫情影響,大部分職場人都是在與“不確定性”鬥智鬥勇,好不容易熬到了國內疫情和形勢都有了明顯好轉,這顆渴望不同發展的心又開始蠢蠢欲動。

網絡上有人預測:今年可能會出現“報復性跳槽”

報復的不是不敢跳槽,報復的是“老子終於可以走了”!

尤其是近期互聯網行業造富的新聞太多了,什麼年薪百萬天才少年,什麼快手上市員工持股,這讓大部分職場人都分外眼紅,

尤其是帶着“加班累成狗、工資提不上去、升職問題困難、工作不順心……”的消極情緒的人們更加躍躍欲試了。

畢竟,互聯網大廠的高工資、好福利都是標配

金三銀四來了,而各大廠都在儲備人才,絕對是程序員跳槽的黃金時間,不少同學反饋了很多在面試中遇到的問題,所以今天想跟大家分享一些我的學習感悟。

1、技術不是純粹拼智商的,而是一種技能,是可以通過科學合理的方式訓練出來的能力;

2、學技術,死記硬背是不行的,需要邊學邊練,循序漸進着來,過於急功近利,可能會帶來反作用。

剛學技術的時候,我找了好多教程都看了一遍。雖說有所收穫,但是比較碎,看的時候各種明白,隨後忘得精光。

所以還是需要系統的去學習,你可以排一個優先級,一個一個去學習這些技術,但是,並不是說每一個都要去達到源碼這種級別,你只要去掌握他們用到哪些底層技術,適用於哪些場景,有什麼優缺點,有什麼坑,簡單的使用案例,我認爲掌握到這種程度就夠了,真正遇到需要用到這個技術的場景的時候,你能信手拈來即可,然後再去深入學習。

如果你現在的學習沒有方向不繫統,學了又總是忘記沒有效果,那麼你可以參考一下我下面的學習路線,還有配套的學習資料,有需要的可文末自取:

分享的系統學習資源主要以詳解各大互聯網公司的 Android 常見面試題爲主線,從面試的角度帶你介紹必備知識點,以及該知識點在項目中的實際應用

幫你在現在的基礎上,重新梳理和建立 Android 開發的知識體系。無論是你短期內想提升 Android 內功實力,突破自己工作中的能力瓶頸,還是準備參加 Android 面試,都會在這份資料中有所一些收穫。

總共分爲6個部分:

  • Java 基礎(★★)
  • Java 高級(★★)
  • Android 基礎(★★★)
  • Android 高級(★★★)
  • Android 項目(★★★)
  • 項目面試常見問題(★★★)

一、Java 基礎(★★)

  • 面向對象思想
  • 多態
  • 異常處理
  • 數據類型
  • Java 的 IO
  • 集合
  • Java 多線程

相關的學習資源:(文末可自主領取)

Java 高級(★★)

  • Java 中的反射
  • Java 中的動態代理
  • Java 中的設計模式&回收機制
  • Java 的類加載器

相關的學習資源:(文末可自主領取)

Android 基礎(★★★)

  • Android 基本常識
  • Activity
  • Service
  • BroadCastReceiver
  • ContentProvider&數據庫

相關的學習資源:(文末可自主領取)

  • Android 中的佈局
  • ListView
  • JNI & NDK
  • Android 中的網絡訪問
  • Intent
  • Fragment

Android 高級(★★★)

  • Android 性能優化
  • Android 屏幕適配
  • AIDL
  • 自定義控件
  • Android 中的事件處理
  • Android 簽名
  • Android 中的動畫
  • 網絡協議
  • 其他

相關的學習資源:(文末可自主領取)

不管是什麼行業只要技術過硬就不愁沒飯喫,那些焦慮的人都是學習不夠技術不夠的人,我們除了通過不斷的學習去增強自身的技術沒有其他的方法捷徑可走。

讀源碼,看實戰筆記,學習大神思路

“編程語言是程序員的表達的方式,而架構是程序員對世界的認知”。所以,程序員要想快速認知並學習架構,讀源碼是必不可少的。閱讀源碼,是解決問題 + 理解事物,更重要的:看到源碼背後的想法;程序員說:讀萬行源碼,行萬種實踐。

主要內含微信 MMKV 源碼、AsyncTask 源碼、Volley 源碼、Retrofit源碼、OkHttp 源碼等等。

Android架構師面試題相關詳解整理

以下截圖爲這本PDF的目錄索引,大家可以快速翻閱,是否有感興趣或者薄弱點,查漏補缺或者深入學習都很不錯,;

面試前夕,刷題衝刺

面試的前一週時間內,就可以開始刷題衝刺了。請記住,刷題的時候,技術的優先,算法的看些基本的,比如排序等即可,而智力題,除非是校招,否則一般不怎麼會問。

關於面試刷題,我個人也準備了一套系統的面試題,幫助你舉一反三:

可以說,如果你熟知這份PDF裏面的大部分知識點(熟知,而不是深入理解原理和架構),隨便去哪個互聯網公司面試個20k以上的移動開發崗位很簡單。

Android簡歷+社招解答+經典HR面試解析

以上是整理總結的Android中高級面試遇到的真題解析,希望對大家有幫助;同時很多人經常也會遇到很多關於簡歷製作,職業困惑、HR經典面試問題回答等有關面試的問題。同樣我也蒐集整理了全套簡歷製作、金三銀四社招困惑、HR面試等問題解析,有疑問,可以提供專業的解答。

點這裏可以看到全部內容

小小的總結一下:

技術實力的本質是解決問題的能力。

  • 在業務方面,我們應該學習如何快速理解業務,可以通過DDD等手段實現。

  • 在技術方面,我們應該學習你所在領域的通識,並做好技術儲備以應對未來需求的變化。

  • 在社交方面,我們應該持續學習溝通能力,表達能力,思維能力,總結能力,並落實到工作生活中。

最後,持續學習溝通能力,表達能力,思維能力,總結能力,並落實到工作生活中。

所以趕緊去提升技能吧!!!

以上內容均免費分享給大家,需要完整版的朋友,點這裏可以看到全部內容。或者關注主頁掃描加 【微信】 獲取。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章