2020年Android開發年終總結之如何擠進一線大廠?

前言

年末老是一個充滿回顧與展望的日子,在2020這場哀鴻遍野的「寒冬」裏尤其明顯。java

其實不論是公司、集體仍是我的,都須要在這個時候找個機會停下來,思考一下這一年來的收穫與成長、失去與遺憾。android

每一個人都有本身的希冀與計劃,每一個人又同你我同樣,是犯有輕微拖延症的普通人。git

面向即將到來的一年你們總會立各類 flag,臨近年終時又老是自嘲式的將計劃延期至新的一年。github

2020的收穫

2020是一個神奇的一年,發生了許多大事,但回到我的身上也只是一件一件小事。面試

一件一件小事本沒有什麼意義,但只要注意積累,重複練習,聚沙成塔,應該也會有必定的價值~
下面總結一些2020年的一些小收穫算法

  • 完成了一次跳槽,順利進入一線互聯網大廠
  • 堅持寫文章
  • 堅持了ARTS打卡
  • 堅持了每週的總結與下週規劃

2021的展望

  • 作一個100以上star的Github開源項目
  • 讀幾本計算機原理,計算機網絡,數據結構等基礎領域的書
  • 掌握flutter的使用與相關原理
  • 繼續堅持ARTS打卡
  • 繼續堅持每週的總結與下週規劃
  • 最後,但願以上都能實現

下面是你們更關心的問題:編程

怎麼擠進一線大廠

騰訊、阿里巴巴、字節跳動、華爲、美團、滴滴、百度 ...設計模式

一線大廠通常有不少部門負責不一樣的項目,裏面不乏知名大學畢業,技術大牛,每每在某一領域已經作到極致,有專門的團隊負責某一功能點(性能優化、性能監控、中間件工具組件等),能投入人力物力去作好項目,而且薪酬福利可觀,只是工做強度會很大。數組

我在一位同事身上看到不少優秀的學習習慣和方法,在這裏不得不認可比你優秀的人還比你努力,是什麼能讓他變得如此優秀?性能優化

  • 多寫多練,沒有捷徑 : 知識面廣的人必定是不斷積累造成的廣度,一道難題他能解答,更多的可能在於 1. 這道題他作過 2. 作過類似的題型。 例如 鏈表中環的檢測 ,沒有作過或者瞭解類似題型的人,是很難可以寫出答案的,但實際上它並不難。
  • 善於思考,系統性學習 : 例如網絡編程 TCP / UDP 工做中接觸的機率不大,大多數人都是衝着面試去學的,百度谷歌一下 TCP / HTTP 面試相關,知道有三次握手、四次揮手滑動窗口等,但很難把這些知識內容關聯成網狀結構,看了沒多久又會忘得差很少。這裏我建議系統性學習,從文檔、書籍中更全面更系統地瞭解這些內容,加入到大腦的一個記憶分支中。
  • 不要試水,一步到位 : 人都會有僥倖心理,抱着試試看的態度。編碼、學習、或者是面試,沒有一次性作到位的決心。事實上重構、從新開始、從新面試都會花費更多的時間。像大廠的面試週期都要半個月或者一個月,沒有經過的話不只浪費時間,並且這段時間心情複雜、焦慮、期盼。所以若是想面試跳槽,儘可能一步到位、下定決心,把目標放高一些,進不了一線大廠也能找到一個好的公司。
此次換工做差很少花了四個月時間,刷題、複習、學習,面試了數十家小中型公司,可是隻面了兩家大廠:騰訊和字節跳動,最終去了字節跳動。 兩家都是內推的方式,若是身邊有大廠的朋友,建議內推試試,避免在 HR 這關被篩了簡歷。

一些面試資源

今年完成了第一次跳槽,積累了一些面試相關的資源,在這裏總結一下,但願對讀者有用。

簡歷

首先是簡歷,通常找一個模板,填寫掌握的技能和項目經歷便可。
github上有一個不錯的模板,詳情可見:https://github.com/CyC2018/Ma...
項目clone後,個性Resuem.md便可,而後導出爲pdf文件。
簡歷建議長度爲2頁,太長過短都很差。
建議用掌握與熟練掌握取代瞭解與精通。

刷題

算法題能夠說是如今找工做必刷的了。不過根據我面試的經驗,算法題總得來講問的仍是比較少,還有一些公司是基本不問算法的。

固然若是碰到字節,快手這種每輪都問算法的公司,若是由於算法題拿不到offer就很惋惜了。

算法題就好像高考語文的古詩詞默寫同樣,分很少,但丟了就很惋惜了。

根據個人經驗,大概刷了,掌握100道題就足以應付面試了。

固然徹底掌握須要重複練習,不是刷了一遍就能夠的。

這裏推薦一下極客時間上覃超的五遍刷題法:

1.第一遍,直接看解法
多解法,比較解法優劣,默寫好的解法

2.第二遍,打開leetcode,直接開始寫
多種解法比較,調優

3.第三遍,過一天以後,再重複作題

4.第四遍,過了一週,再來反覆練

5.第五遍,面試前一週,恢復性訓練

經過以上方法重複練習,大概刷100題就足以應付面試,若是天天刷3道,大概準備一個月便可。

Android核心知識點

Android 涵蓋點比較廣,建議以官方文檔爲主 : Android 開發者指南 ,官方文檔很詳細而且幾乎覆蓋全部的 Api ,若是你想學習Jetpack, 也建議從官方文檔入手 Android Jetpack ,比大多數博客更權威,是一種不錯的知識和資源獲取途徑。

能夠把 Android 分爲如下幾個大綱:

1.Android相關源碼

學習Android源碼有助於咱們學習其中的設計模式、思想、架構。熟悉整個源碼的架構,有助於咱們更加正確地調用 Android 提供的 SDK,寫出高效正確的代碼。

我把源碼相關資料整理成了PDF,內容涵蓋MMKV、Retrofit、OkHttp、EventBus、View、Handler、Binder、Glide、JNI的源碼深度解析。但因爲篇幅緣由,只作核心內容截圖展現,筆記全文共有486頁。

2.Android性能優化

在 Android開發中,性能優化策略十分重要。由於其決定了應用程序的開發質量:可用性、流暢性、穩定性等,是提升用戶留存率的關鍵。

在此獻上一份 Android性能優化的詳細攻略, 含:優化方向、緣由 & 具體優化方案、APP性能優化實踐,但願大家會喜歡。

全部知識點詳細內容都整理在了開源項目【GitHub】,有須要的能夠自取。

3.Android開源框架

隨着互聯網企業的不斷髮展,產品項目中的模塊愈來愈多,用戶體驗要求也愈來愈高,想實現小步快跑、快速迭代的目的愈來愈難,還有65535,應用之間的互相調用等等問題,插件化技術應用而生。若是沒有插件化技術,美團、淘寶這些集成了大量「app」的應用,可能會有幾個g那麼大。

因此,當今的Android移動開發,不會熱修復、插件化、組件化,80%以上的面試都過不了。

我花了將近半個月時間將Android熱修復框架、插件化框架、組件化框架、圖片加載框架、網絡訪問框架、RxJava響應式編程框架、IOC依賴注入框架、最近架構組件Jetpack等等Android第三方開源框架整合成了一套系統知識筆記PDF,長達1042頁!相信看完這份文檔,你將會對這些Android第三方框架有着更深刻、更系統的理解。

4.Android Framework

Framework 普遍的應用在各個領域。像掉幀監控,函數插裝,慢函數檢測,ANR 監控,啓動監控,都須要對 Framework 有比較深刻的瞭解,才能知道怎麼去作監控,利用什麼機制去監控,函數插樁插到哪裏,反射調用該反射哪一個類哪一個方法哪一個屬性……

Framework的重要性不用多說,爲此我整理了一份framework高級開發筆記,部分知識章節發佈到了GitHub已經標星18k了 ,今天就拿出來分享給你們。

主要章節:

第一章:深刻解析Binder
第二章:深刻解析Handler
第三章:Dalvik VM 進程系統
第四章 深刻解析 WMS
第五章 PackagerManagerService

按照上面大綱展開拓撲結構學習,最終造成知識大網。固然每一個知識點都須要深刻探索

附加參考書籍: 《Android開發藝術探索》 《深刻理解ANDROID 卷3》 《Android進階解密》。

5.NDK模塊開發

NDK是原生開發工具包,這套工具容許Android使用C/C++代碼,並提供了衆多的平臺庫。

我整理了一套有關NDK的資料,主要內容包含:

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

6.算法(字節必問)

算法沒有什麼竅門,多學多練多總結。

訓練階段能夠按照

  1. 《算法 第4版》 學習數據結構和算法思想。
  2. 預備了理論知識後開始編碼上手, 先按照 《劍指offer》 這本書的算法題目在牛客網上刷題。
  3. 能夠說當你把《劍指offer》算法題都刷完了,算法這一關的經過率能夠達到 60%。若是想要有更高的造詣,那就按照Leetcode 題解 - 目錄上整理的題目大綱以及解題思路,更全面系統的提高算法能力。到達這一步,算法面試的經過率能夠達到 90%

我本身也整理了一套算法資料,有興趣的能夠瞄一瞄。主要包含一下幾個知識點:

①數組-快速排序-第k大個數
②數組-對撞指針-最大蓄水

③數組-滑動窗口-最小連續子數組
④數組-歸併排序-合併有序數組
⑤鏈表-鏈表反轉-鏈表相加
⑥鏈表-雙指針-刪除倒數第n個
⑦二叉樹-遞歸-二叉樹反轉
⑧動態規劃-連續子數組最大和
⑨數據結構-LRU淘汰算法

全部知識點詳細內容都整理在了開源項目【GitHub】,有須要的能夠自取。

寫在最後

這篇博客主要在於總結和覆盤,同時也給了你們一個學習的方向。

大廠會系統性的篩選面試者,一二輪面試經過 java、Android 的技術問題了解面試者的基礎能力,能到達第三輪面試說明基礎能力合格,再經過項目問題考察面試者的項目/合做能力,固然若是是在線面試會有可能讓面試者寫編程題或者算法題。

對於面試者來講,能作的就是提高面試經過率,系統性學習和總結。

人在年輕的時候,最核心的能力是什麼?

我認爲是:篤定一件事並有耐心長久堅持的能力。

所謂的幸運,就是當你準備好了的時候,機會來了。

相關文章
相關標籤/搜索