勵志22歲Android程序員小夥高中學歷,現上海拿到25K offer,不迭代升級還等着被取代嗎?

本文你會看到這些,認可就繼續讀正文:

  • 職業規劃開始走偏了,請馬上調整過來了
  • 程序員交很多技術朋友真的很重要
  • 外包沒有歸宿感,可替代強
  • 互聯網公司對自己技術成長非常有幫助,但工作強度非常高 996常態
  • 模擬面試,簡歷優化,投簡歷的技巧都很重要
  • 愛總結愛輸出的人不會差
  • 學習是人生最大的投資
  • 技術是一個不斷迭代的過程,所以要保持一個學習的狀態
  • 年輕多讀書考好大學,不然年齡大了特別迷茫焦慮

正文開始:

基本情況

本人是15年參加培訓,在當時本地的一所培訓機構培訓二年多的時間,當時才16歲, 高二剛讀完,成績也是那種特別不好的,因爲朋友的影響,選擇了輟學,屬於那種半路出家的,在培訓期間,主要以Android爲主,加上生活費一共花了差不多7萬左右。在整個年級裏面屬於那種算學的還不錯的(自己認爲)。我今年22,從事Android開發,這是我的基本情況。

工作經歷

一共到現在換了四家公司。下面介紹下每家公司的一個情況和總結。

運維開發—8K(2017/3-2017/10)

17年來上海找工作,因爲當時沒有工作經驗麼,所以簡歷包裝了一下,找了一份運維的工作,帶了一個四人的小團隊,當時的想法也很簡單,只要能找到工作就行,做運維做了不到一年的時間,也學到很多東西,不管是交流、思考問題、管理,都感覺提高了很多。最終也是因爲想到自己的一個職業規劃,還是想從事開發方面的工作。

Android開發—12K(2017/10-2018/5)

2018年入職了一家醫療行業的小公司,做Android開發,比較偏傳統。做了差不多半年左右的時間,因爲公司拖欠工資、資金鍊斷裂問題,選擇了離職,但在這半年的時間裏,技術提升了很多,同時也收穫了一些技術上的朋友,從最開始的領導,慢慢到現在變成了朋友,一直到現在都保持技術上的交流,包括工作方面的,我們都屬於特別熱愛的技術的那種,聊技術能聊一晚上,說的可能有點誇張,但在Android這個領域裏面算研究的比較深的了。

Android開發—17K(2018/6-2019/4)

然後接着之後做了一年左右的外包,法本外派到微軟,就類似於人力外包,然後幫微軟的客戶做房地產相關的項目,當時去微軟也是抱着一種學習的心態去的,因爲當時對外包這個也不知道是一個什麼樣的情況,沒有體驗過,做了一段時間明白了網上對外包的一些不好的看法,項目不穩定,代替性強,只要項目已結束,PM覺得你的作用不是很大,隨時都有可能把你裁掉。工作地點不穩定,像我當時做完一個項目,接着又去另外一個客戶現場做,這樣長期下來,跑來跑去,就感覺自己特別的累,但是也有好的地方,上班的時間比較自由,不太被控制,同時項目結束一批換一批,接觸到的人也比較多,這樣也能提高融入團隊的能力、交流能力。在這一年的左右的微軟外包時間裏,也學到了很多組件化相關的技術、另外對Android更深的技術也有了一定的認知與瞭解。也爲後面的工作,做了鋪墊。

Android高級開發—23K(2019/4-2020/7)

2019年4月,剛滿了二年工作經驗的我,也收穫了一些offer。最終選擇了一家互聯網公司,旅遊行業,待遇也比較的可觀,雖然沒有大廠的offer,但當時對於我來說已經算比較不錯的了,畢竟技術棧也是我比較感興趣的。這一年的時間裏,基本上每天都是晚上10點左右下班,但在這樣的高強度工作下,感覺自己對NDK的理解、設計能力、與一些中間組件的使用和研究都提升了很多, 也接觸了很多比較新的技術,Kotlin、Jetpack、Flutter、等。但由於當時的疫情,公司受到了很大的影響,正因爲這次疫情,技術相關的部門裁了很多人,我也在其中,但賠償還行,3個月,8月份開始找工作,到現在也收穫了一些比較不錯的offer。

關於面試

一個好的面試,往往需要做很多的準備,我6月份離職的這段時間,兩個月裏,基本上都是在家學習,但也會和朋友一起出來喫飯阿啥的。我面試之前會找人來模擬面試,然後根據模擬面試的一個情況,梳理下說話的節奏、項目介紹、技術點的回答的流暢性,然後簡歷修改完之後,最好找一個你認識的技術或者HR,幫你看下,這樣簡歷投遞後反饋率還是比較高的。

還有一點就是每次面試完,最好把面試中一些回答的不是很好的問題或者是沒回答上的,記下來,然後針對的去學習,下次面試遇到了會提高面試的一個通過率,投遞簡歷的話,如果是沒有工作經驗的,或者沒有一個目標的,可以選擇批量投,我剛出來找工作的時候,就是批量投,自己也沒有一個明確的目標,只要能找到工作就行,如果是有工作經驗了,哪就針對的去投,還有就是投的一些公司,最好做下調查,比如看下融資情況,做什麼業務的等等…, 4個月的時間裏,前面兩個月是在家學習,後二個月是在找工作,前前後後面試了大概15家公司左右。

這裏說下我面試被問到一些面試題吧,這也是我自己的一個總結。

1、Handler 相關知識,面試必問!

  • Handler Looper Message 關係是什麼?
  • Messagequeue 的數據結構是什麼?爲什麼要用這個數據結構?
  • 如何在子線程中創建 Handler?
  • Handler post 方法原理?
  • Android消息機制的原理及源碼解析
  • Android Handler 消息機制

2、Activity 相關

  • 啓動模式以及使用場景?
  • onNewIntent()與onConfigurationChanged()
  • onSaveInstanceState()與onRestoreInstanceState()
  • Activity 到底是如何啓動的
  • 啓動模式以及使用場景
  • onSaveInstanceState及onRestoreInstanceState使用
  • onConfigurationChanged使用以及問題解決
  • Activity 啓動流程解析

3、Fragment

  • Fragment 生命週期和 Activity 對比
  • Fragment 之間如何進行通信
  • Fragment的startActivityForResult
  • Fragment重疊問題
  • Fragment 初探
  • Fragment 重疊, 如何通信
  • Fragment生命週期

4、Service 相關

  • 進程保活
  • Service的運行線程(生命週期方法全部在主線程)
  • Service啓動方式以及如何停止
  • ServiceConnection裏面的回調方法運行在哪個線程?
  • startService 和 bingService區別
  • 進程保活一般套路

5、Android佈局優化

  • ViewStub、include、merge
  • 什麼情況下使用 ViewStub、include、merge?
  • 他們的原理是什麼?
  • ViewStub、include、merge概念解析
  • Android佈局優化之ViewStub、include、merge使用與源碼分析pi的。

6、BroadcastReceiver 相關

  • 註冊方式,優先級
  • 廣播類型,區別
  • 廣播的使用場景,原理
  • Android廣播動態靜態註冊
  • 常見使用以及流程解析
  • 廣播源碼解析

7、AsyncTask相關

  • AsyncTask是串行還是並行執行?
  • AsyncTask隨着安卓版本的變遷
  • AsyncTask完全解析
  • 串行還是並行

8、Android 事件分發機制

  • onTouch和onTouchEvent區別,調用順序
  • dispatchTouchEvent,onTouchEvent,onInterceptTouchEvent 方法順序以及使用場景
  • 滑動衝突,如何解決
  • 事件分發機制
  • 事件分發解析
  • dispatchTouchEvent,onTouchEvent,onInterceptTouchEvent方法的使用場景解析

9、Android View 繪製流程

  • 簡述 View 繪製流程
  • onMeasure,onlayout,ondraw方法中需要注意的點
  • 如何進行自定義 View
  • view 重繪機制
  • Android LayoutInflater原理分析
  • Android視圖狀態及重繪流程分析
  • Android視圖狀態及重繪流程分析
  • Android自定義View的實現方法

10、Android 的核心Binder多進程 AIDL

  • 常見的 IPC 機制以及使用場景
  • 爲什麼安卓要用 binder 進行跨進程傳輸
  • 多進程帶來的問題
  • AIDL 使用淺析
  • binder 原理解析
  • binder 最底層解析
  • 多進程通信方式以及帶來的問題
  • 多進程通信方式對比

11、Android ANR

  • 爲什麼會發生 ANR?
  • 如何定位 ANR?
  • 如何避免 ANR?
  • 什麼是 ANR
  • 如何避免以及分析方法
  • Android 性能優化之 ANR 詳解

12、Android 內存相關

  • 什麼情況下會內存泄漏?
  • 如何防止內存泄漏?
  • 內存泄漏和溢出的區別
  • OOM 概念以及安卓內存管理機制
  • 內存泄漏的可能性
  • 防止內存泄漏的方法

13、Android 性能優化

  • 如何進行內存cpu耗電的定位以及優化
  • 性能優化經常使用的方法
  • 如何避免 UI 卡頓
  • 性能優化全解析,工具使用

14、OKHTTP和Retrofit

  • OKHTTP完整解析
  • Retrofit使用流程,機制詳解
  • 從 HTTP 到 Retrofit
  • Retrofit是如何工作的

15、Android 組件化與插件化

  • 爲什麼要用組件化?
  • 組件之間如何通信?
  • 組件之間如何跳轉?
  • Android徹底組件化方案實踐
  • Android徹底組件化-代碼和資源隔離
  • Android徹底組件化—UI跳轉升級改造
  • Android徹底組件化—如何使用Arouter
  • 插件化框架歷史
  • 深入理解Android插件化技術
  • Android 插件化和熱修復知識梳理

關於學習

我的學習方法,看相關的視頻教程,比如騰訊課堂、極客時間、慕課網這種平臺都是比較不錯的,裏面有些視頻是收費的,我覺得學習就是一個投資的過程,自己也花了不少的錢在這上面,然後就是體系化的去學習和實踐,每學一個技術點,最好記錄到筆記上,或者是記錄在博客上,這樣有利於加升印象,特別學的東西多了之後,不通過筆記記錄,很難記住,主要還是找到適合自己的學習方法, 我自己特別適合看視頻來吸收。

還有就是看相關的技術博客、比如博客園裏面的博主,寫的技術文章給我的影響還是蠻大的,看書也是不錯的,然後就是給每週制定學習計劃,這個計劃時間,也不要控制的太死了,最好中間空一些時間出來,因爲可能中間會插入一些其他的事情來,這樣就會影響到後續的一個計劃。

我覺得學習這個話題,對於程序員來說是很重要的,其他的領域也很重要,因爲技術是一個不斷迭代的過程,所以要保持一個學習的狀態,以後對自己的一個職業發展是非常順暢的,如果自己不迭代升級,長期這樣的話,可能會被一些年輕努力的程序員取代,薪資也會跟着年齡下滑,所以趁着年輕而沒有什麼壓力的情況下,把自己的技術功底學好,多投入一些錢花到學習上來,到一定時候,這些努力都會得到相對應的報酬。

如果是年輕的時候不努力,年齡大了而且有家庭了,這個時候可能會感覺自己很迷茫,不知道以後的路怎麼去選擇,因爲我身邊有這樣的技術朋友,能感覺的到那種迷茫,一般到了一定年齡很難剋制自己去學習了,因爲來自家庭上、工作上的壓力會讓你分散這些精力和注意力,所以不要等到年齡大了再來學,那個時候已經晚了。

個人感悟

說下我的一個經歷與狀況吧,因爲我本身沒上過大學,也不知道大學的生活是一個什麼樣的狀況,培訓出來後是一個專科的學歷,19年考了一個專升本,所以有那麼一點點羨慕那些上過大學的同學吧,因爲工作的原因,也認識了一些同事,他們的學歷背景都比較的好,而且學習能力、與人相處都不錯,以前我自己覺得學歷沒什麼用,只是一塊敲門磚,但現在看上去,有那麼一點天真,特別是找工作的時候,找相當大一點公司,可能就會因爲學歷連面試機會都有沒有,所以學歷還是很重要的,像我目前的一個打算是2021年準備考一個碩士來彌補下學歷,隨便開闊下視野。

以前欠下的東西,只要選擇繼續走這一條路,遲早要還回來的,不然後面的路很難走,特別是到一定年齡和年薪的時候,再往上晉升領導或者是技術總監,這個時候學歷可能會受到一定影響。趁着還是學生的時候,多讀點書,考一個好一點的大學,儘量不要選擇我這種半路出家的,不然後面的路會走的很累。

Android技能提升

程序員如何走上快速提升技術走上財富自由之路?

下面我提供一下我多年工作以來收集整理的學習路線,給大家做個參考:

學習一線大廠的各項技術:

大廠是我們的技術先驅,不僅僅是各種技術,還有很多令你大開眼界的使用方法,學習這些有利於自己競爭力的提高,深入理解後也可以提升你的學習效率。

現在競爭這麼激烈,只有通過不斷學習,提高自己,才能保持競爭力。

1.2020大廠面試高頻知識點

  • 圖片
  • 網絡和安全機制
  • 數據庫
  • 插件化、模塊化、組件化、熱修復、增量更新、Gradle
  • 架構設計和設計模式
  • 性能優化
  • Android Framework
  • Android優秀三方庫源碼

2.Jetpack架構組件從入門到精通

  • Android Jetpack - Navigation
  • Android Jetpack - Data Binding
  • Android Jetpack - ViewModel & LiveData
  • Android Jetpack - Room
  • Android Jetpack - Paging
  • Android Jetpack - WorkManger
  • Android Jetpack架構組件之Lifecycle
  • Android Jetpack Compose 最全上手指南

3.Framework精編內核解析

主要內容包含:

  • 深入解析Binder
  • 深入解析Handler
  • Dalvik VM 進程系統
  • 深入解析 WMS
  • PackagerManagerService

4.Kotlin強化實戰(附Demo)

  • 第一章 Kotlin入門教程
  • 第二章 Kotlin 實戰避坑指南
  • 第三章 項目實戰《Kotlin Jetpack 實戰》
    • 從一個膜拜大神的 Demo 開始
    • Kotlin 寫 Gradle 腳本是一種什麼體驗?
    • Kotlin 編程的三重境界
    • Kotlin 高階函數
    • Kotlin 泛型
    • Kotlin 擴展
    • Kotlin 委託
    • 協程“不爲人知”的調試技巧
    • 圖解協程:suspend

5.Android設計思想解讀開源框架

  • 熱修復
  • 插件化
  • 組件化框架設計
  • 圖片加載框架
  • 網絡請求框架
  • RXJava 響應式編程框架設計
  • IOC 架構設計
  • Android架構組件Jetpack

6.NDK模塊開發

  • NDK 模塊開發
  • JNI 模塊
  • Native 開發工具
  • Linux 編程
  • 底層圖片處理
  • 音視頻開發
  • 機器學習

定期面試:

光學習了大廠的技術還不夠,如何瞭解當下Android市場需要哪些技術呢?

定期的面試足以讓你瞭解當下市場需要哪些技術,也更加容易確定自身的短板在哪,同時,也可以督促自己學習提升(小夥子,你瞭解的技術有點落伍了呀…)

萬一拿到了高薪Offer,豈不是更賺?

多看大佬的學習筆記,學習大佬的設計思想:

只要是程序員,不管是Java還是Android,如果不去閱讀源碼,只看API文檔,那就只是停留於皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的。

真正最能鍛鍊能力的便是直接去閱讀源碼,不僅限於閱讀各大系統源碼,還包括各種優秀的開源庫。

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