安卓金九銀十 戰役打響還沒看到跟大佬的差距就危險了!來看看如何在大廠面試一擊而中
前言
金九銀十已來臨,打響九月第一戰!開啟中長線佈局策略。
想必現在有許多朋友,都在為即將到來的金三銀四做準備,不知道各位朋友是否十足的把握能拿到自己心儀的Offer呢?
下面無償分享一些我多年面試和工作經驗給你們,希望對你們的面試有一點幫助。
如何在大廠面試一擊而中?
如何準備Android的面試,結合我之前面試和麵試官的經驗,目前我梳理了一些基本的知識和準備。
首先,自己 要對整個面試要考察的內容要有比較清晰的結構。
我們主要分為2大塊:
1.基礎知識
基礎知識主要包括
1.Java,Kotlin的基本語言
- 物件導向的基本思想
- 內部類:內部類的分類、應用場景、內部類編譯成
class
後是怎麼樣的。 - 抽象類 & 介面:區別、應用場景。
- 註解:註解的基本概念、分類、編譯時註解 & 執行時註解。
- 記憶體模型。
- 垃圾回收。
- 類載入的過程。
- 泛型:分類、萬用字元 & 上下邊界、泛型擦除。
- 反射:使用。
- 多執行緒,執行緒池。
- Kotlin的優點,協程。
2.Android基礎知識
-
Dalvik
、Art
虛擬機器 -
Activity
:生命週期、launchMode
。 -
Fragment
:生命週期、懶載入、兩種Adapter
之間的區別。 -
BroadcastReceiver
:基本概念、廣播分類、許可權。 -
Service
:生命週期、onStartCommand
的返回值、startService
和bindService
的區別、相同程式 & 不同程式的互動、IntentService
實現原理。 - 重要的工具類 & 原始碼實現:
AsyncTask
、HandlerThread
、Handler
、IntentService
、LruCache
、LinkedHashMap
、SparseArray
。 -
RecyclerView
:快取原理、和ListView
的對比、Adapter
如何適配多種layout
。 - 儲存:資料庫升級 & 最佳化、
ContentProvider
,SharePreference
。 -
SDK
版本升級的相容問題。 -
Android
的許可權管理機制。
3.資料結構
- 陣列,連結串列
- 棧 Stack
- 佇列 Queue
- 連結串列 Linked List
- 陣列 Array
- 雜湊表 Hash Table
- 二叉樹 Binary Tree
- 堆 Heap
- 並查集 Union Find
- 字典樹 Trie
4.演算法
- 二分搜尋 Binary Search
- 分治 Divide Conquer
- 寬度優先搜尋 Breadth First Search
- 深度優先搜尋 Depth First Search
- 回溯法 Backtracking
- 雙指標 Two Pointers
- 動態規劃 Dynamic Programming
- 掃描線 Scan-line algorithm
- 快排 Quick Sort
leetCode,劍指Offer裡刷題
5.網路
網路分層模型,TCP/UDP,HTTP/HTTPS
6.設計模式
按照
23
種網路模型、三個分類進行總結,每種設計模式包含以下三個方面,至少要準備常用的幾個:
- 基本概念:
UML
圖、簡單例子、應用場景、優勢 & 劣勢。 -
Android
原始碼中的實現 - 專案中的應用
7.其他
- 跨平臺:RN,Weex,Flutter
- 開源庫:OKHttp,Retrofit,Glide
- 元件化,外掛化,Gradle
2.專案經驗
1.自我介紹
- 通常面試一開始,面試官就會讓我們先自我介紹。
- 自我介紹這部分,邏輯清晰,有條理最重要。
- 之前工作的公司、崗位及工作方向。
- 團隊構成,在團隊中的位置及承擔的責任。
- 為團隊做出的主要貢獻,對於這部分涉及到的 專案經歷以及延伸出的知識點 一定要重點準備。
2.專案經驗
把覺得做的有亮點的東西挑出來,從四個方面來準備:
- 功能模組的實現
- 達到了什麼效果
- 遇到了什麼問題,是如何解決的
- 涉及到的相關知識點
專案經驗和知識點 其實是一個雙向的過程,要 試圖去找到它們之間的聯絡:
- 談到專案經驗的時候,可以說:做完 xx 之後,我還去了解了一下 yy 背後的原理,xxx,這裡體現的是 你是否有求知慾 。
- 談到知識點的時候,可以說:yy 的原理是這樣的,在 xx 專案中我是如何應用它來解決問題的,這裡體現的是 你是否具備把知識付諸實踐的能力。
3.解決問題
通常面試官會問你在平時開發過程中有遇到什麼比較棘手的問題麼,以及如何去解決的
- 遇到問題
- 分析過程
- 解決方案
- 結果
上面內容和答案解析已經整理成了一個文件, 《2256頁一線大廠面試筆記資料包》點選 可以看到全部內容。
那麼你和大廠裡的大佬存在哪些差距呢?又該怎麼提升進大廠呢?下面來詳細講一講:
六種差異造成你和大佬之間的差距
很多人都好奇自己和那些大神的區別到底在哪裡,厲害在哪裡,是知識儲量和實際操作水平嗎?
今天從多個角度帶大家分析一下普通程式設計師和大神級程式設計師的區別差距(順便給一些普通程式設計師一些學習建議):
一、知識差異
Android小白可能不知道在手機上顯示一個圖片用什麼元件、什麼標籤,而熟練的Android開發者一定知道,並且能噼啪幾下敲出來。
這是知識儲備的差距。
知識和資訊是你分析問題時的大變數,當你的知識儲備量很小時,你往往是兩眼一抹黑,不知道從何說起。
所以, 知識差距,是不同層次的開發者之間最顯著的差距。
二、技能差異
一個普通的Android開發者,剛剛入門,會用 一些基礎的技術,而現在有一個新的專案啟動,你讓他負責這個專案前端模組的架構和設計,他大機率做不出來。
因為他還不具備勝任這類工作的架構能力、設計能力以及抽象能力,缺乏相應的技能。當你沒有相關技能時,就不具備搞定複雜問題的基礎條件。
不同層次的開發者之間,在技能層面存在顯著差異,層級高的人擁有一個“工具房”,而層級低的開發者,手裡往往只有一把螺絲刀。
三、動機差異
如果你留意觀察身邊的同事,就會發現:
有的人積極主動,什麼都願意做,做什麼都津津有味,都能快速學習、迅速行動並做出符合預期的結果。
有的人你每次安排任務給他,就算是他可以搞定的,他也推三阻四,不情不願這就是動機差距。
當你一個人知道如何去做,但是卻選擇不做一件事時,往往是缺乏做這件事的動機;當你不想做一件事時,總是能夠找到千萬個理由來拒絕。
不管哪種原因,你不做一件事,就少一次磨練和收穫的機會,久而久之,別人在行動中成長起來了,你還在原地踏步。
四、行動差異
兩個人都在不斷做事,結果仍然可能不同:有的人三年精通某個技術棧,成為團隊內的核心骨幹;而有人的,做開發五年還只能寫寫靜態頁面。
你是遵循一定的方法和流程來開發,比如先完成設計、編寫測試程式碼、再編碼、跑單元測試,還是拿到需求就立馬開始編碼、邊寫邊發現程式碼不符合需求不斷推倒重來……
你是每次都給自己設定目標,希望這次任務用到的知識和技術點不同於上次,希望這次的程式碼設計和上次不同,還是根本不管這些,先寫,能 Run ,完成任務交差……
這都些做事方法上的差異,會讓同一件事有不同的結果讓做同樣事情的人有不同的收穫。
五、習慣差異
有的開發者每天早上都琢磨下今天要做的事情,每天晚上都回顧下今天完成了什麼事情、什麼事情沒完成、什麼事情還沒開始做,早計劃晚回顧;有的開發者每天到了單位,開機,重新整理聞,來兩把遊戲,然後喝茶,找人聊天,下班了吃個飯,打兩局遊戲……
有的開發者,每週都回顧總結,寫週報,發給直屬上司;有的開發者,經理強調一百遍“每週五要發週報”也充耳不聞……
有的開發者,遇見測試提 Bug ,就高叫“不可能”;有的開發者,則會說“我看看”……
有的開發者,遇見困難的問題或者難搞的醒目,會說“讓我試試”;有的開發者遇見難題,兩手一攤,“這太難了,我搞不定”……
在做專案時,有的開發者會把自己手上的任務按重要性、優先順序排序,先做優先順序高的、難度大的;有的開發者會每次都挑難度低的事情先做……
積行成習,積習成性,積性成命。
好的習慣,大機率產生好的結果;不良習慣,大機率導致不如意的結果。
你的將來,由你的習慣決定。所以,請看看自己身上,有哪些習慣會讓自己積累越來越多的能力,鞏固它們;有哪些習慣會讓自己越來越 low ,弱化它們,揚棄它們。
六、環境差異
環境會在某種程度上塑造人,你會成為你身邊人的平均數。你在一個技術氛圍濃厚、優秀開發者眾多的團隊裡,就有大機率更快地成長。
環境是可以選擇的:你不幸進了處於衰退期的行業,可以轉身去朝陽行業;你進了無所事事的、靠關係拿訂單的傳統軟體企業,可以考慮去網際網路領域的快節奏單位;你所在的專案組沒什麼技術氛圍,你可以離開,找一個崇尚技術的團隊。
提升建議及路線分享
不管你是為了縮減和大神之間的差距還是為了在大廠中的面試一擊而中,技能提升都是現在你需要做的最重要的事情。
1、培養程式設計思想
高階程式設計師在看到一個需求的時候,總是能夠快速在大腦裡生成這個需求在現實生活中的對映。
聰明的人在專案經理說完以後,總會自己去對著需求文件去思考專案經理為什麼要這麼做,還有一部分人悶著頭就去開發了。很多工作四五年的程式設計師,工作經驗一大堆,讓他真的說出些什麼,他卻說不出來。 不懂得在工作中思考,工作十年也只是一個普通程式設計師。
所以說要去培養自己的程式設計思想。
但程式設計思想這個東西,不是說工作的久了就能有的,而是在學習和工作中要去思考。思想思想,肯定要先思而後想,這樣才能擁有思想。建議是大家可以針對專案中一些簡單的功能去思考,如果讓你來從頭開發這個功能,你需要對資料庫進行哪些操作,需要提供什麼介面,需要什麼型別的資料,資料需要進行哪些必要的驗證,資料庫的欄位型別以及長度。
用筆在紙上把內容都列舉出來,寫完以後再看幾遍,有沒有哪些可以做的更好的地方。然後去看專案裡原來的設計,是不是跟你的類似,如果不如你設計的可以在後面的最佳化中改進它,如果比你的好,那就去思考別人為什麼要這麼做。久而久之,遇到複雜的需求也能快速拆分成一個個的小需求,那個時候你離專案經理就不遠了。
2、制定學習路線
普通程式設計師在學完基本的知識以後,後續就不知道該學什麼了,沒有一條屬於自己的進階路線。高階程式設計師不同,他們在學完基本工作知識以後,會思考下一步自己該如何提升,他們會擁有自己的選擇。知識是永無止境的,學完語言基礎跟UI介面後,還有效能最佳化,還有framework層原始碼解析的瞭解,元件化、外掛化等開源框架的瞭解,以及各種架構設計,最後還有NDK音影片的涉獵都是需要一步步掌握。 制定一條屬於自己的學習路線,是非常有必要的。
因為大家的方向不同,有的人是前端,有的人是後端,學習的語言也不同。因為我本人Android開發有八年多了,在這裡就針對Android提一些建議。
掌握下面這個提升路徑,你的Android進階之路至少縮短5年。
最後我想說,沒有一蹴而就的事情,很多事情都是水滴石穿,建議大家 工作之餘還是要保持學習的狀態,比如關注一些知名的技術公眾號,瞭解業界最新動態,時刻準備著。
如果你覺得自己學習效率低,缺乏正確的指導,可以參考下下面分享我多年工作以來收集整理的學習路線,給大家做個參考:
確定好方向,梳理成長路線圖
不用多說,相信大家都有一個共識:無論什麼行業,最牛逼的人肯定是站在金字塔端的人。所以,想做一個牛逼的程式設計師,那麼就要讓自己站的更高,成為技術大牛並不是一朝一夕的事情,需要時間的沉澱和技術的積累。
關於這一點,在我當時確立好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 程式設計
- 底層圖片處理
- 音影片開發
- 機器學習
看影片進行系統學習
前幾年的Crud經歷,讓我明白自己真的算是菜雞中的戰鬥機,也正因為Crud,導致自己技術比較零散,也不夠深入不夠系統,所以重新進行學習是很有必要的。我差的是系統知識,差的結構框架和思路,所以透過影片來學習,效果更好,也更全面。關於影片學習,個人可以推薦去B站進行學習,B站上有很多學習影片,唯一的缺點就是免費的容易過時。
另外,我自己也珍藏了好幾套影片,有需要的我也可以分享給你。
簡歷準備充分
可以去知乎上面搜搜別人寫的有關簡歷的帖子,怎麼準備,吸引hr, 突出自己的優點和能力,或者讓朋友幫你看看簡歷有沒有問題,比如過於簡單或者浮誇,沒有重點等。
儘量把你的亮點總結成一句簡練的話,再加上數字來說明它的影響和意義。
其次在簡歷裡中加入了可互動、可展示的內容,更能顯出你的能力與眾不同。
定期面試:
光學習了大廠的技術還不夠,如何瞭解當下Android市場需要哪些技術呢?
定期的面試足以讓你瞭解當下市場需要哪些技術,也更加容易確定自身的短板在哪,同時,也可以督促自己學習提升(小夥子,你瞭解的技術有點落伍了呀…)
萬一拿到了高薪Offer,豈不是更賺?
多看大佬的學習筆記,學習大佬的設計思想:
只要是程式設計師,不管是Java還是Android,如果不去閱讀原始碼,只看API文件,那就只是停留於皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的。
真正最能鍛鍊能力的便是直接去閱讀原始碼,不僅限於閱讀各大系統原始碼,還包括各種優秀的開源庫。
以上這些資料都已打包整理完畢,點選 可以看到全部內容。或者點選 【 】 檢視獲取方式。
對於Android開發者,無論是對於鴻蒙開發的研究,還是jetpack compose新技術的探討,以及kotlin語言的更新迭代,更多的還有flutter與原生開發的碰撞學習等,都是程式設計師需要額外充實自己的發展方向。另外像演算法,設計模式和資料結構等也是需要時刻學習,這樣你離大廠開發需求就更近了一步, 作為技術開發者要注意自己的知識廣度的一個長線發展。
只有閱盡千帆的人,才能像大海一樣睿智。
願大家都能在程式設計這條路,越走越遠。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983917/viewspace-2789756/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 金九銀十中,看看這31道Android面試題Android面試題
- Android:金九銀十怎麼從中小企業擠進一線大廠?大廠面試題問的深度?Android面試題
- 金九銀十來了,你的簡歷寫好了麼?
- Java開發:錯過金三銀四 你還要錯過金九銀十嗎?面試大綱總結Java面試
- 【面試篇】金九銀十面試季,這些面試題你都會了嗎?面試題
- 金九銀十要來了?不要慌,這些Android BAT高階面試題刷一刷AndroidBAT面試題
- 2020年“金九銀十”的面試寶典:騰訊,位元組等大廠面試真題彙總面試
- Android&Java面試題大全—金九銀十面試必備AndroidJava面試題
- “金九銀十”,產品經理面試準備手冊面試
- 金三銀四的面試黃金季節,Android面試題來了!Android面試題
- 華為兇險的智慧穿戴戰役
- 金九銀十準備換場地?對標騰訊T3的Android高階工程師面試大綱及時雨來了Android工程師面試
- 阿里面試官純手打:金九銀十跳槽必會Java核心知識點筆記整理阿里面試Java筆記
- 深入SQLite,一網打盡“危險操作”SQLite
- 網際網路巨頭打響“適老化”戰役
- 金九銀十Android面試複習題集:關於四大元件中的Activity你瞭解多少?Android面試元件
- 金三銀四銅五鐵六,現在看看面試題還不晚(上篇)面試題
- Flutter | 金九銀十招聘季,這些面試題祝你一臂之力Flutter面試題
- 看完這篇HTTP,跟面試官扯皮就沒問題了HTTP面試
- 2024年程式設計師金九銀十面試寶典(持續更新中................)程式設計師面試
- 金九銀十鐵12,目前騰訊、美團等五家大廠都收到意向offer | 掘金技術徵文
- 安卓工程師大廠面試真實際遇,試題你來挑戰一下?安卓工程師面試
- 用了兩年時間整理的在BAT TMD大廠最強Java面試題全部合集,金九銀十祝大家都能拿到心儀的offerBATJava面試題
- 13 種危險的網路攻擊
- 遊戲的打擊感從何而來? 打擊感的意識形態原理分析遊戲
- 每日十題:五分鐘備戰金九銀十,你也能輕鬆過關SpringSpring
- 2018金三銀四,Android大廠面試題整理Android面試題
- 智慧電視使用者行為大揭祕—搶佔客廳戰役已打響
- iOS開發備戰金三銀四·突擊大廠的演算法與底層原理複習方向iOS演算法
- 面試官一道題就把你刷下?21道大廠高階面試題,助力金三銀四!面試題
- 影音合璧IP為王,平臺打響超級使用者戰役
- 中高階前端大廠面試祕籍,為你保駕護航金三銀四,直通大廠(上)前端面試
- 智慧眼鏡還沒戴 智慧隱形眼鏡就來了
- 一天超2000次,阿里如何打響音視訊超時空戰役?阿里
- Flink進入大廠面試準備,收藏這一篇就夠了面試
- 人生本來就是一場賭。博,中年危機的程式設計師就真的沒機會了嗎?程式設計師
- SANS研究所:7大最危險的攻擊技術介紹
- 單例模式--還沒從工廠中逃脫出來?看來是註定單身了..單例模式