畢業后曾經回了一次高中學校,被高中老師拉著給高一的學弟學妹做了一次演講,今年過年的時候,一個小學弟順著當時留下的聯系方式加了我好友,問了我一些問題,
我覺得這些問題很有價值,或許對正處于大學或者即將走進/走出大學的朋友有所啟發,這里就把我的一些建議分享出來,
前言
在當今社會,大學似乎已經成為了一個必經之路,不管好歹,基本上都會讀個大學再進社會,
很多人認為,高中才是學習真本事,學干貨的時候,高考完就輕松了,想怎么玩就怎么玩,很多大人在鼓勵孩子讀書的時候也是這樣說的, 但是,這樣的觀點是錯誤的,大學也是一個非常關鍵的時期,你在學校的表現會直接關聯以后的就業,
那么在大學里,我們應該做哪些準備才能在以后的作業中脫穎而出呢?
作為一個過來人,今天我以自身經歷為前車之鑒,給大家講解一下作為一個Android開發的本科學生在大學里需要注意的一些事情,和一些需要避開的坑,

前車之軌——從渣碩到大廠
筆者是渣碩出身進入社會的,沒錯,大四的時候我選擇了考研,但是并沒有進入自己的目標院校,當時父親在工地受了傷,弟弟在上學,家里又在修房子家里的條件并不允許我二戰,我只能接受調劑去了一所雙非院校,
今年是我進入社會的第二年,也是我在阿里公司的第二年,是的,我畢業后進入了大廠,現在就分享一下我是如何在完全的劣勢下憑借自己的努力進入大廠的經驗,
對癥下藥
計算機專業學習核心就三門課:演算法與資料結構,看《演算法導論》,作業系統,看 Tanenbaum 的書,這是最最核心的課程,計算機體系結構,看 David Patterson 和 John Hennessy 合寫的書,
這里要提醒大家,我們尤其要重視 System 知識,只有基礎扎實才能在日新月異的IT行業立足,
另外,在這里也送學弟學妹們一本幫助我拿到BAT 等一線大廠 offer 的演算法筆記,是一位阿里大神寫的,對于演算法薄榷訓者需要提高的同學都十分受用,演算法一定是計算機學習的重中之重,
(需要的可以復制下方號,加入我們的交流群,共享檔案里面有,密碼可以找管理員)
// 668350995 (可復制)
再細一點,我認為需要重點掌握學習的就是 :2-3門編程語言(1-2靜態編譯型 + 1-2 動態/腳本語言)演算法與資料結構System(OS、計算機組成、memory、cache等等)工程開發能力(git、linux、shell、環境搭建、部署等)計算機專業的核心課幾乎都是圍繞著構建上述這些能力來的,比如:計算機學科導論和 C 語言匯編、作業系統、C++、資料結構、離散數學、數值分析和計算機組成原理計算機編譯原理和資料庫計算機網路與安全和軟體工程還有高數、線性代數、離散數學、網路原理、網頁設計、多媒體技術、匯編語言、面向物件的設計語言、Java 編程、ASP、SQL等總的來說是 先學習 C 語言和 C++,
教材有:C programming language-K&R、C traps and pitfalls、Algorithms in C 和 Expert C Programming學習資料結構,清華大學嚴蔚敏《資料結構》,目前還未找到經典的國外教材學習演算法,演算法導論和具體數學及其應用計算機組成原理,Computer Organization and Design The Hardware-3rd-David Patterson計算機系統,CSAPP作業系統,鳥叔的私房菜和計算機網路當然了,
以上都是基礎,不管是以后想搞Java還是Android等移動開發都需要掌握這些,
下面針對我自己的專業,也就是Android開發領域來進行詳細的解說吧,

Android 開發進階學習
我感覺自己是一個比較幸運的人,在我的學習和作業中,我遇到了很多幫助我的貴人,受恩于人,我也樂于分享和幫助他人,下面我來說一下我這一路走來幫助過很多的資源,
大佬的學習路線
我這里有一個曾經帶過我的阿里大佬前輩整理的對標阿里 P7 的Android高級架構師的一套大神學習筆記,
大家可以去看一下,如果有需求,可以直接點擊此處獲取:
耗時298天,8大模塊、3382頁66萬字,Android開發核心知識筆記!
這份學習筆記絕不是在網上那種打包下載的廉價資料,而是大佬他自己需要學到某個方向知識的時候,需要看了,去網上挨個找的,最后匯總而成,
這個筆記分為幾個模塊,內容并不算多,但貴在精,
大家可以在這里獲取,對于學習計算機的同學幫助非常大,且十分系統:這是大佬公眾號的原文地址
部分資料展示:




后面的內容大家有需要的可以自己去大佬的原博客去看,我這里就不多說了,
我自己的學習積累
我在大學期間,買了很多書,泡了很長時間的圖書館,也看了很多技術書,但是,我后來發現,其實看書并不在于多,而在于經典和質量,
你把全部專業相關的書看完了也沒有啃透一兩本經典書籍來的高效,
讀經典的書是站在巨人的肩膀上,看得遠、悟得深,所以我在這里列出的書,盡量保持少,精簡,
這是我大學曾經看過的一些書:

在這里,我也只推薦我覺得比較好的書,寧缺毋濫,
-
計算機思維:
-
CS50,哈佛公開課《計算機科學導論》, B站就有資源,自取~
C語言:
(不要問我為什么要列舉C語言,因為移動開發搞音視頻開發要用到,而且,這還是一個非常吃香的方向,不信的話,可看一下大佬的這兩個文:
-
Android開發突圍:視頻制作平臺崛起,音視頻開發賽道尋求新突破
-
互聯網寒冬之下,Android開發的港灣:音視頻進階學習)
-
《C和指標》
-
《高質量C編程指南》
-
《C專家編程》和《C陷阱與缺陷》有時間可以看
-
《C程式設計語言》
提升:
-
演算法:
-
《大話資料結構》
-
《演算法(第四版)》
-
《演算法導論》,一般人可能都會被勸退,,,不過可以看下學習C++
-
學習C++:
-
《C++ primer》
-
《STL原始碼決議》
-
《Effective C++》
-
《深度探索C++物件模型》
-
看完上面👆四本,C++算入門了,接下來靠你自己去進階~
-
好好學下網路:
-
《計算機網路-自頂向下》
-
《TCP/IP詳解-卷一》
作業系統:
-
《現代作業系統》
-
學堂在線網站–清華作業系統課程
-
如果你想自己試著寫寫mini 作業系統,我強烈推薦 《作業系統真象還原》,就算不寫,這里也可以學到好多其它作業系統書少有的知識
-
計算機系統
-
《深入理解計算機系統》
-
《程式員自我修養》–別被名字迷惑了,這本書真正該叫 《編譯鏈接與運行》,真是好書
-
《設計資料密集型應用》
Java系:
- 《Java 核心技術 》
- 《effective java》
- 《深入理解Java虛擬機》
- 《Java并發編程實戰》
下面是關于我自己準備面試的經驗
(一)簡歷篇
簡歷的優化是非常重要的,特別是像我這樣的雙非院校,在校期間也沒什么拿得出手的大專案,老實說,簡歷上面非常尷尬,很可能連面試通知電話都收不到,
下面和大家分析一下,能一眼讓HR注意到的簡歷到底長什么樣,
我有一個多年大廠招人經驗的朋友跟我說:大廠招人,一般不會不要求應聘者全能,但是必須在某一項有專精技術,
所以,這里建議大家簡歷的第一頁上半頁,或者前三行,務必表明自己的技術堆疊,這里稍加注意:描述時,可以針對自己的技術能力進行一些吹的操作,但是切記不可瞎吹,也不可吹過頭,不然,你的面試問題難度也會提升,同時,你的人品也會遭受質疑,
下面的這是一個比較好的簡歷模板:

不好意思,放錯了圖,下面的才是↓↓↓↓↓

1.在寫簡歷的時候要有側重點,面試官的時間是很緊張的,沒空看廢話,對你的流水賬日記不感興趣(再強調一遍,第一頁上半頁,或者前三行,務必表明自己的技術堆疊),
2.個人經歷的描述盡量往作業和崗位相關的方向靠攏,少提不相關的內容干擾他們提煉重點資訊,
3.專案短板的,告訴大家一個技巧,盡量挑選專案中自己熟悉的領域以及專案的亮點,要突出自己的貢獻,是添加了哪些功能,還是優化了那些性能指數,最后再說說受益怎么樣,例如這個功能被多少人使用,例如性能提升了多少倍,(最好按照崗位的要求,向上靠一靠)
4.切記不要“優化”過度,謹慎使用“精通”兩字,拿不準的絕對不要寫在簡歷上,不然你就是在給自己挖坑,(面試會根據你簡歷上寫得技術從淺再到深入原理的提問,)
這里給大家推薦一篇文章,大家可以作為參考,
專案經驗不會說?位元組跳動小姐姐手把手教你"套路"面試官!
(二)修煉篇
搞Android這行的,大家都是靠技術吃飯的,一般都是,你是什么水平就開什么價,所以自身的技術修煉也是最重要的一部分,哪怕你的簡歷粉飾的再好,一到面試,是騾子是馬,一遛就知,
20年校招季,我參加的大大小小的面試不低于40家,雖然我的主要目標是位元組跳動,但是我一向認為,把雞蛋放在一個籃子里的人都是傻瓜(咳,主要是不自信,怕失手后一無所獲),所以其他的面試也沒放過(大公司沒拿到幾個,小公司很多都拒掉了),
下面的分析適用于所有公司,

1.公司的人才需求簡析
根據我豐富的面試經驗,市場上的公司一般可以分成兩種:大公司和小公司,小公司注重實踐能力,大公司看中綜合能力,
小公司面試會比較集中安卓開發這一塊,關注的點主要是
- 有沒有類似的專案經驗
- 有沒有遇到過他們差不多的問題
所以,面試準備中,除了基本的一些知識點還需要關注一些安卓開發實際中經常遇到的一些問題,諸如圖片快取,常見的開源框架等等,
大公司面試比較在意你的綜合能力還有基礎知識,下面我會列舉一下比較重要的知識點
2.進入大廠需要掌握哪些知識?
進小廠的難度不大,這里就不再詳說了,這里主要說一下進大廠需要掌握的知識點(大廠都能進了,小廠不在話下),
- 資料結構與演算法
- java
- 安卓
- 計算機網路
- 作業系統
- ……
(以上按重要程度排序)
上面的幾大模塊的內容都非常重要,我看網上有大佬針對這些模塊進行了歸納整理,這里就不在贅言了,
指路:https://blog.csdn.net/m0_46962786/article/details/112361198
這里主要是根據我自己的面試經歷還有在牛客網等刷的位元組跳動、美團等廠高頻面試題整理出來的大廠高頻面試題合集(含參考答案和決議),
大家可以看看自己能不能全部完美的回答出來吧,如果可以,那你的基礎知識掌握的應該就很棒了,可以加入我們的技術交流群找我內推,
937659705 (這是群號)
3.重要知識點整理(高頻面試真題)
圖片相關
圖片庫對比
LRUCache 原理
圖片加載原理
實作圖片庫
Glide 原始碼決議
Glide 快取
……

-
網路和安全機制
網路框架對比和原始碼分析
自己去設計網路請求框架
網路請求快取處理,pokhttp 如何處理網路快取
從網路加載一個 M 10M 的圖片,需要注意的事項
TCP 的 3 次握手和四次揮手
TCP 與 PUDP 的區別、應用
……

-
資料庫
Sqlite 升級,增加欄位的陳述句
資料庫框架對比和原始碼分析
資料庫的優化
資料庫資料遷移問題
Sqlite 常見例外
……

-
插件化、模塊化、組 件化、熱修復、增量更新、Gradle
對熱修復和插件化的理解
插件化原理分析
……

-
架構和設計模式
MVC、MVP、MVVM 原理和區別
你所知道的設計模式有哪些
專案中常用的設計模式
手寫生產者/ / 消費者模式
觀察者模式
配接器模式,裝飾者模式,外觀模式的異同
用到的一些開源框架 , 介紹一個看過原始碼的 , 內部
實作程序
RxJava相關
Binder 機制及底層實作



……內容過多,鑒于文章的長度,這里就不一一展示了,需要的可以點擊下方藍色字體獲取完整版

以上的問題都是精心整理過的,每個問題都是一篇長文,大家一定要好好理清楚,因為面試官都喜歡深挖和追問,大家在某一塊知識點必須有深入研究,能夠回答面試官4到5個追加問題(加油),
點擊此處【我們交流圈】,獲取文中資料完整版
4.資料結構和演算法(重中之重)
一般來說,最后出場的都是壓軸角色,

資料結構和演算法非常重要!尤其是在位元組跳動公司(美團,百度,愛奇藝也是一樣的),這個知識點是考驗一個程式員技術水平最快的方法,尤其是對我們這些畢業不久的學生,
眾所周知,國內互聯網面試的流程逐漸在向國外靠攏,像位元組跳動、BAT 等大廠,手撕演算法題已經成為了必選動作,
資料結構與演算法這個知識點的準備需要的時間比較長,要盡早準備,多刷一些leetcode或是其他類似的題,我個人的演算法能力一開始也很差,但是經過我自己安排的演算法專項訓練,效果還是十分顯著的,下面我把自己的復習方法分享給大家,
下面是資料結構和演算法的面試核心知識點,大家可以參考學習,逐個擊破,
- 堆疊與佇列:先進先出、后進先出
- 線性鏈表
- 查找:順序查找、二分查找
- 排序:交換類、插入類、選擇類
- 樹、二叉樹、圖:深度優先(DFS)、廣度優先(BFS)
- 遞回
- 分治
- 滑窗
- 三大牛逼演算法:回溯、貪心、動態規劃(DP)
在刷題之前我建議你看一些書:
點擊此處【我們交流圈】,獲取文中資料完整版
《漫畫演算法之旅》
如果你之前沒有任何演算法基礎,這邊書很適合你,可以補充資料結構和演算法的基礎知識,像什么是時間復雜度空間復雜度、查找、排序等,
如果你有了一定基礎了,建議你直接跳到最后面的演算法實戰部分,
《劍指 offer》
非常經典的一本書,學演算法的人必刷,但是要注意了,這邊書里面的題目是用 C++寫的,如果你是 Java 開發人員可能會有點影響,但是要記住學習演算法最關鍵的還是解題思路和方法,用什么語言實作是其次的,如果你時間比較多我是建議你用 Java 語言再實作一遍,
《labuladong的演算法小抄》
非常推薦!這是一本很新的書,寫書前作者在 Github 開源了一個專案,主要講解 LeetCode 解題套路,Start 總數排名前40,在書的開頭講解了學習演算法的基本思維和套路,建議看這邊書的同時再配合 leetcode 刷題,療效非常棒!
《演算法導論》
要是不推薦這本書是不是顯得我有點 low 了,這是一本科班出身的同學必看必學的經典大部頭,國外大佬寫的,國內翻譯的經典之作,雖然是經典但是不建議剛入門演算法的同學看,因為看了這本書你可能要放棄演算法了,比較難看懂,建議有了一定基礎再入手這邊書,
如果你覺得看書比較枯燥,可以推薦你看一些極客時間的專欄,不過是收費,但是質量非常高,
《資料結構與演算法之美》
這個專欄是文字+語音,作者是王爭,前 Google 工程師,他采用最適合工程師的學習方式,不拘泥于某一特定編程語言,從實際開發場景出發,由淺入深教你學習資料結構與演算法的方法,幫你搞懂基本概念和核心理論,深入理解演算法精髓,幫你提升使用資料結構和演算法思維解決問題的能力,
《演算法面試通關40講》
這個專欄是視頻,作者是覃超,前Facebook工程師,作者會用白板帶你一步一步解題,層層深入一環扣一環,每一題還會用多種解題方法,我基本看完了,識訓頗多,
leetcode、書和極客專欄可以并行,學練結合,不要光看不練,
最后
我把自己這段時間整理的Android最重要最熱門的學習方向資料放在了圈子共享檔案夾里,里面還有不同方向的自學編程路線、面試題集合/面經、及系列技術文章等,
資源持續更新中,歡迎大家一起學習和探討,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/262923.html
標籤:其他
上一篇:沖刺金三銀四:Android即將迎來面試高峰期,掌握這四步離你理想的崗位不遠了!
下一篇:線性規劃和對偶問題_學習筆記
