前言
年底總是一個充滿回顧與展望的日子,在2020這場哀鴻遍野的“寒冬”里尤為明顯,
其實不管是公司、集體還是個人,都需要在這個時候找個機會停下來,思考一下這一年來的識訓與成長、失去與遺憾,
每個人都有自己的希冀與計劃,每個人又同你我一樣,是犯有輕微拖延癥的普通人,
面向即將到來的一年大家總會立各種 flag,臨近年終時又總是自嘲式的將計劃延期至新的一年,
2020的識訓
2020是一個神奇的一年,發生了許多大事,但回到個人身上也只是一件一件小事,
一件一件小事本沒有什么意義,但只要注意積累,重復練習,積少成多,應該也會有一定的價值~
下面總結一些2020年的一些小識訓
-
完成了一次跳槽,順利進入一線互聯網大廠
-
堅持寫文章
-
堅持了ARTS打卡
-
堅持了每周的總結與下周規劃
2021的展望
-
做一個100以上star的Github開源專案
-
讀幾本計算機原理,計算機網路,資料結構等基礎領域的書
-
掌握flutter的使用與相關原理
-
繼續堅持ARTS打卡
-
繼續堅持每周的總結與下周規劃
-
最后,希望以上都能實作
下面是大家更關心的問題:
怎么擠進一線大廠
騰訊、阿里巴巴、位元組跳動、華為、美團、滴滴、百度 …
一線大廠一般有很多部門負責不同的專案,里面不乏知名大學畢業,技術大牛,往往在某一領域已經做到極致,有專門的團隊負責某一功能點(性能優化、性能監控、中間件工具組件等),能投入人力物力去做好專案,并且薪酬福利可觀,只是作業強度會很大,
我在一位同事身上看到很多優秀的學習習慣和方法,在這里不得不承認比你優秀的人還比你努力,是什么能讓他變得如此優秀?
-
多寫多練,沒有捷徑 : 知識面廣的人一定是不斷積累形成的廣度,一道難題他能解答,更多的可能在于 1. 這道題他做過 2. 做過相似的題型, 例如 鏈表中環的檢測 ,沒有做過或者了解相似題型的人,是很難能夠寫出答案的,但實際上它并不難,
-
善于思考,系統性學習 : 例如網路編程 TCP / UDP 作業中接觸的概率不大,大多數人都是沖著面試去學的,百度谷歌一下 TCP / HTTP 面試相關,知道有三次握手、四次揮手滑動視窗等,但很難把這些知識內容關聯成網狀結構,看了沒多久又會忘得差不多,這里我建議系統性學習,從檔案、書籍中更全面更系統地了解這些內容,加入到大腦的一個記憶分支中,
-
不要試水,一步到位 : 人都會有僥幸心理,抱著試試看的態度,編碼、學習、或者是面試,沒有一次性做到位的決心,事實上重構、重新開始、重新面試都會花費更多的時間,像大廠的面試周期都要半個月或者一個月,沒有通過的話不僅浪費時間,而且這段時間心情復雜、焦慮、期盼,因此如果想面試跳槽,盡量一步到位、下定決心,把目標放高一些,進不了一線大廠也能找到一個好的公司,
這次換作業差不多花了四個月時間,刷題、復習、學習,面試了數十家小中型公司,但是只面了兩家大廠:騰訊和位元組跳動,最終去了位元組跳動, 兩家都是內推的方式,如果身邊有大廠的朋友,建議內推試試,避免在 HR 這關被篩了簡歷,
一些面試資源
今年完成了第一次跳槽,積累了一些面試相關的資源,在這里總結一下,希望對讀者有用,
簡歷
首先是簡歷,一般找一個模板,填寫掌握的技能和專案經歷即可,
github上有一個不錯的模板,詳情可見:https://github.com/CyC2018/Markdown-Resume
專案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.演算法(位元組必問)
演算法沒有什么竅門,多學多練多總結,
訓練階段可以按照
-
《演算法 第4版》 學習資料結構和演算法思想,
-
預備了理論知識后開始編碼上手, 先按照 《劍指offer》 這本書的演算法題目在牛客網上刷題,
-
可以說當你把《劍指offer》演算法題都刷完了,演算法這一關的通過率可以達到 60%,如果想要有更高的造詣,那就按照Leetcode 題解 - 目錄上整理的題目大綱以及解題思路,更全面系統的提升演算法能力,到達這一步,演算法面試的通過率可以達到 90% ,
我自己也整理了一套演算法資料,有興趣的可以瞄一瞄,主要包含一下幾個知識點:
①陣列-快速排序-第k大個數
②陣列-對撞指標-最大蓄水

③陣列-滑動視窗-最小連續子陣列
④陣列-歸并排序-合并有序陣列
⑤鏈表-鏈表反轉-鏈表相加
⑥鏈表-雙指標-洗掉倒數第n個
⑦二叉樹-遞回-二叉樹反轉
⑧動態規劃-連續子陣列最大和
⑨資料結構-LRU淘汰演算法

所有知識點詳細內容都整理在了開源專案【GitHub】,有需要的可以自取,
寫在最后
這篇博客主要在于總結和復盤,同時也給了大家一個學習的方向,
大廠會系統性的篩選面試者,一二輪面試通過 java、Android 的技術問題了解面試者的基礎能力,能到達第三輪面試說明基礎能力合格,再通過專案問題考察面試者的專案/合作能力,當然如果是在線面試會有可能讓面試者寫編程題或者演算法題,
對于面試者來說,能做的就是提升面試通過率,系統性學習和總結,
人在年輕的時候,最核心的能力是什么?
我認為是:篤定一件事并有耐心長久堅持的能力,
所謂的幸運,就是當你準備好了的時候,機會來了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/232040.html
標籤:其他
上一篇:網路基礎(一)
