我的情況
這里簡單說一下自己的情況,大專學歷,之前學的機電,然后參加一個 Java 培訓,培訓之后,自己發現要做好 javaee 開發需要用到的知識太多了,然后,自己剛好那個時候接觸到 android,于是,就想做 android 開發,
第一份安卓作業,自己進去差不多就是實習生的身份,因為公司給學習機會,可以一邊學習,一邊跟著做專案,所以,到現在還是很感謝當初第一份作業,可以說沒有第一份作業機會,也就沒有我的“今天”,
當然,說到剛開始找作業,因為沒有 android 開發經驗,去網上搜了很多職位,投了簡歷都沒反應,搜了很久才找到那家公司,要求很低,實習生都可以,我才去面試,還有上機測驗,但是,因為測驗的都是基礎知識,然后,那家公司是在一個縣級市的軟體園區,估計,去面試的人也比較少,加上當初自己表現的比較愿意學習,老板才給了這次機會,不管怎么說,我從心底感謝第一份作業,
這里的體會是:當你作業經驗很少時,你找一個作業要付出很多努力, 有很多人抱怨說,投了簡歷石沉大海,面試機會少,剛開始確實是這樣,但是,你自己要去找方法,比如:多在幾個網站上投,不要怕他們要求高,你條件達不到,萬一有面試機會呢?
另外,有時間多刷刷簡歷,一般上午 10 點左右,下午 2 - 3 點左右刷一下簡歷,這兩個點是hr看簡歷相對集中的時候,另外,你經驗少,你要表現出兩點, 一、基礎知識要扎實,二、愿意去學習,至少你要表現出一副以后愿意在這個方向好好學習的樣子,要不然,別人干嘛要你?誰愿意去培養你,
說到基礎知識扎實,有人說我不扎實,這就是你的問題了,另外,急著找作業,怎么辦?
怎么在短時間打牢基礎?
你就搜搜大多數的面試題經常問那些問題,多去看看牛客網這種面經分享,最好是筆記下來多看幾遍,加深印象,并嘗試自己去做模擬解答,不至于真問到一樣問題的時候,根本不知道說什么,至少你能說出個大概也比什么都說不出來好,當然,這不是教你“詐”,當你找到作業后,要趕緊把自己薄弱的地方補上來,
我的“登天”之路
記得剛開始學 Java 時,經常會被問到一些問題,比如,Java 的三大特性,抽象類與介面的區別,多載與重寫,單例模式,遞回演算法,多執行緒,這些經常碰到的問題,放到安卓上,可能剛開始經常會問道一些基本的知識:比如,四大組件,五大布局,listview,Intent 的使用,面試時這些最常用的知識你要知道,要說的上來吧,
剛開始作業的一兩年,面試的時候,有的是自己出的有深度的題,有的是從百度上搜的一份列印的,我見過幾家直接能搜到原題的面試,先不說出面試的公司怎樣,說說我碰到的各種面試的,有全英的,有全部是邏輯題的,就是給你三個圖形,讓你推測第四個圖形的,有面試安卓開發,出了一對 c++ 和 sqlserver 的題的(公司是做游戲的),
有些面試題做起來真的就是浪費時間,如果你感覺這家公司很不滿意,就禮貌的說出來,不做了走人吧,如果是正兒八經的面試題,你做不出來時,最好能寫寫大致的思路,有時候也能算做對的,
說到面試題,有的公司的面試題,真的是多年不變的, 我碰到過兩家公司,隔一年去面試,還是那幾道題,當然有家公司第一次面試過了,因為面臨其他的一個機會沒有去,第二次面試還是那些題,依然也過了,但是,同樣的題,不同的經驗,你要答出不同的答案,至少要比之前你回答的更有深度,
其實,你作業大概兩三年之后,面試問的問題更多的會傾向于去問你專案情況,一些實際的開發方面碰到的問題,
比如,現在經常會問到一些,listview 的優化技巧,自定義控制元件的步驟,異步加載方面,jni,ndk,然后一些開源框架,開源控制元件的使用,并且經常被問到,這些開源控制元件的原始碼你看過沒有,因為相信大家都明白,很多開源控制元件都用過,但是,真正去看他們原始碼,去改他們原始碼的,恐怕不多吧,還有一些框架設計,安卓原始碼方面的問題,當然,如果你帶過團隊,也會問一些團隊分工,管理方面的問題,
蜘蛛俠的叔叔曾說過:“能力越大,責任越大”,我想到的是,人是要不斷成長的,當你不斷的成長的時候,你的責任是不自覺的加給你的,比如,用人公司招聘時對于一個有三年經驗和一年經驗期待肯定是有差別的,同時也意味著你需要有的能力和將承擔的責任也是不一樣的,當然你們待遇也會有不少差別,
面試技巧與總結
面試,真的是個體力活加腦力活,你一次次面試,要學會總結,其實,從面試中,我們能學到很多東西,比如,你去一個公司面試,要記得看公司環境,地理位置,公司環境,辦公室設備,都能看出一個公司資金背景情況,
因為,上海這個城市,真的有很多坑爹的創業公司,說白了就是幾個人想到一個 app 創意,就組建一個團隊開始做,做不長,資金或者融資跟不上就死掉了,我面試過一家在唐鎮的“公司”,我拿著地圖找到那里之后,“公司”對面還有人在炒菜,聞起來應該是洋蔥炒雞蛋,
公司是直接在小區里租的那種三室一廳,然后,把了七八臺電腦,還不交稅,直接發現金,我隨便聊聊就趕緊走了,其實,這樣的公司上海真的很多,見過好多小區房里面上面掛著“禁止在住宿房辦公”牌子,但是里面是一個個小公司在關著門上班,第一道大門還在里面反鎖著,還有一些所謂的高新園區,集電港什么的,里面一兩個小房間,密密麻麻的擺了十幾張電腦桌,我不知道,里面上班的人做何感想,
我只能說,我們程式員真命苦,要在這樣壓抑的環境中上班,
所以,對于面試,我個人的推薦是,如果剛畢業,外包、外派的這樣的公司,可以迅速的通過大量的專案開發提升自己的技術水平,但是,不要待的太長,除非你有機會進到管理崗位,一般不要超過兩年,
說一些面試準備方面的問題:
在約定好線下面試后,提前查好路線,乘車方式,(我一般是寫在紙上,包括聯系方式,然后用百度地圖,不過,有定位不準的情況)
提前了解一下面試公司的一些職位資訊,大概需要的一些技術點,可能問到的一些問題,無論是多大的公司,自己多心儀的公司,或者自己不喜歡的公司,都要盡量淡然對待,保持自信,哪怕裝你也要裝的有自信的樣子,
跟一些 CTO,技術經理面試時,他們有的提的問題,包括給的一些建議都很中肯,有一個技術經理也跟我分享了他剛畢業幾年的作業經歷,還有之前去國內一個巨頭公司下的一個游戲公司面試,有位美麗的 hr 小姐姐,也給了很多建議,讓我弄清楚了自己到底想找什么樣的作業,因為剛開始幾年,通過跳槽,確實薪資提升比較快,但是,5 年以后呢,如果技術沒有深入的一個方面,恐怕就不能持續發展了,
說到11月份,其實找到了一家,但是只上了一天班,第二天,我做公交做到地鐵站,徘徊了很久,沒有進去,就沒去那家公司了,雖然那家公司給的薪資不低,離自己住的地方也近,但是,公司一些其他資源不足,能很清楚地看到那一個專案做不長,自己不想做幾個月之后,再換作業,然后,才有了上個月比較“瘋狂”的想法去大廠試試,
口水話說了這么多,只是想分享一些自己的切身經歷和感受,希望能給一些最近正著找作業的朋友一些幫助,每個人都有自己的獨特性,存在的都是合理的,技術人千萬不要唯技術論,覺得自己技術很牛,就可以目無別人,別人比你薪水高,比你受歡迎,一定有他獨特的地方,每個人的經歷不同,你要找到適合你的方法,你才能更好的在自己的路上走下去,
總結 + 分析
簡歷首選內推方式,速度快,效率高!然后可以在拉鉤,boss,脈脈上看看,簡歷上寫到熟悉什么技術就一定要去熟悉它,不然被問到不會很尷尬!做過什么專案,即使專案體量不大,但也一定要熟悉實作原理!不是你負責的部分,也可以看看同事是怎么實作的,換你來做你會怎么做?做過什么,會什么是廣度問題,取決于專案內容,但做過什么,達到怎樣一個境界,這是深度問題,和個人學習能力和解決問題的態度有關了,大公司看深度,小公司看廣度,大公司面試你會的,小公司面試他們用到的你會不會,也就是崗位匹配度,
選定你想去的幾家公司后,先去一些小的公司練練,學習下面試技巧,總結下,也算是熟悉下面試氛圍,平時和同事或者產品 PK 時可以講得頭頭是道,思路清晰至極,到了現場真的不一樣,怎么描述你所做的一切,這絕對是個學術性問題!
面試程序一定要有禮貌!即使你覺得面試官不尊重你,經常打斷你的講解,或者你覺得他不如你,問的問題缺乏專業水平,你也一定要尊重他,誰叫現在是他選擇你,等你拿到 offer 后就是你選擇他了,
接下來分享我在阿里的三面技術面面試題(有些題忘記了):
一面
1:插件化,啟動 activity 的 hook 方式,taskAffity,
2:okhttp 支持 HTTP2?http2 的功能有哪些?tcp 方面擁塞控制?tsl 的握手和具體的非對稱加密演算法,非對稱名稱
3:handler 的 st(Runnable) 如何實作的,callback,runnable,msg的執行優先級,阻塞是怎么實作的?為什么不會阻塞主執行緒?
5:求二叉樹中兩個節點之間的最大距離,
6:206 含義,未修改資源是哪個,302 含義,301 含義
7:多行程通信問題,binder 優勢,aidl 生成的 java 類細節,多行程遇到哪些問題?
8:動態代理傳入的引數都有哪些?非介面的類能實作動態代理嗎?ASM 的原理
9:Application 和 Activity 在 Context 的繼承樹上有何區別?二者使用上有何不同?
10:任意一顆二叉樹,求最大節點距離
二面
1:設計一個日志系統,
2:記憶體泄露的分類,怎么查看記憶體泄露的問題
3:touch 事件原始碼問題,
4:組件化的問題,module 和 app 之間的區別,moduler 通信是如何實作的,
5:native 奔潰的日志采集,怎么處理?
6:注解實作一個提示功能:如果 int 的值大于了 3 需要提示,
三面
1:介紹下 flutter 的啟動流程
2:介紹下 flutter 與 weex 的區別
3:組件化介紹一下
4:webview 中與 js 通信的手段有哪些?
5:介紹下 flutter_boost 的原理
最后
在很多人看來我這樣的一個條件,想進大廠確實是比登天還難,一個月前我自己也這么認為,但好在阿里對于學歷這一塊,不像華為一些大廠卡的很死,再就是通過內推得到這樣一次機會,完成了自己的“登天夢”,當然,也印證了那句話:“當機會來臨的時候,你準備好了沒有?”,不斷的自我總結和學習充電,讓我把握住了這次機會,為了幫助更多想要進大廠的朋友,我現在把我長期以來的學習筆記以及歸納整理的一些面試真題分享給大家,如果有需要的朋友可以在點贊+評論“666”后,后臺私信我來找我獲取!
一、架構師筑基必備技能
目前Android APP開發主流語言就是Java語言,Java語言最大的特性就是提高了軟體的互動可能性,可以說安卓手機幾乎所有應用程式都是利用Java語言來進行撰寫的,
知識要點:
1、深入理解Java泛型
2、注解深入淺出
3、并發編程
4、資料傳輸與序列化
5、Java虛擬機原理
6、高效IO
二、設計思想解讀開源框架
隨著互聯網企業的不斷發展,產品專案中的模塊越來越多,用戶體驗要求也越來越高,想實作小步快跑、快速迭代的目的越來越難,插件化技術應用而生,如果沒有插件化技術,美團、淘寶這些集成了大量“app”的應用,可能會有幾個g那么大,
所以,當今的Android移動開發,不會熱修復、插件化、組件化,80%以上的面試都過不了,
知識要點:
1、熱修復設計
2、插件化框架設計
3、組件化框架設計
4、圖片加載框架
5、網路訪問框架設計
6、RXJava回應式編程框架設計
三、360°全方位性能調優
在不同層次的開發工程師手里,因為技術水平的參差不齊,即使很多手機在跑分軟體性能非常高,打開應用依然存在卡頓現象,
另外,隨著產品內容迭代,功能越來越復雜,UI頁面也越來越豐富,也成為流暢運行的一種阻礙,綜上所述,對APP進行性能優化已成為開發者該有的一種綜合素質,也是開發者能夠完成高質量應用程式作品的保證,
1、設計思想與代碼質量優化
2、程式性能優化
- 啟動速度與執行效率優化
- 布局檢測與優化
- 記憶體優化
- 耗電優化
- 網路傳輸與資料儲存優化
- APK大小優化
3、開發效率優化
- 分布式版本控制系統Git
- 自動化構建系統Gradle
4、專案實戰
- 啟動速度
- 流暢度
- 抖音在APK包大小資源優化的實踐
- 優酷回應式布局技術全決議
- 網路優化
- 手機淘寶雙十一性能優化專案揭秘
- 高德APP全鏈路原始碼依賴分析
- 徹底干掉OOM的實戰經驗分享
- 微信Android終端記憶體優化實踐
四、Android框架體系架構
Android框架體系架構(高級UI+FrameWork原始碼) 這塊知識是現今使用者最多的,我們稱之Android2013~2016年的技術,
Android開發者也往往因為網上Copy代碼習慣了而導致對這塊經常“使用”的代碼熟悉而又陌生:熟悉的是幾乎天天在和它們打交道, 天天在復制這些代碼 ;陌生的是雖然天天和這些代碼打交道,但是并沒有深入研究過這些代碼的原理,代碼深處的內涵,
本篇知識要點:
1、高級UI晉升
2、Android內核組件
3、大型專案必備IPC
4、資料持久與序列化
5、Framework內核決議
五、NDK模塊開發(音視頻系列)
NDK(Native Development Kit縮寫)一種基于原生程式介面的軟體開發工具包,可以讓您在 Android 應用中利用 C 和 C++ 代碼的工具,通過此工具開發的程式直接在本地運行,而不是虛擬機,
在Android中,NDK是一系列工具的集合,主要用于擴展Android SDK,NDK提供了一系列的工具可以幫助開發者快速的開發C或C++的動態庫,并能自動將so和Java應用一起打包成apk,
本篇知識要點:
1、NDK開發之C/C++入門
2、JNI模塊開發
3、Linux編程
4、底層圖片處理
5、音視頻開發
6、機器學習
六、Flutter學習進階
2019 年無疑是 Flutter 技術如火如荼發展的一年,
每一個移動開發者都在為 Flutter 帶來的“快速開發、富有表現力和靈活的 UI、原生性能”的特色和理念而癡狂,從超級 App 到獨立應用,從純 Flutter 到混合堆疊,開發者們在不同的場景下樂此不疲的探索和應用著 Flutter 技術,也在面臨著各種各樣不同的挑戰,
本篇知識要點:
1、Flutter跨平臺開發概述
2、Windows中Flutter開發環境搭建
3、撰寫你的第一個Flutter APP
4、Flutter Dart語言系統入門
…
七、微信小程式開發
微信小程式作為現在比較火的編程開發應用場景之一,深受市場的青睞,這讓不少開發者眼饞不已,但是對于初學者來說,就完全摸不著頭腦了,不知道微信小程式開發制作需要學習那些知識,有需要的朋友可以參考本篇,
本篇知識要點:
1、小程式概述及入門
2、小程式UI開發
3、API操作
4、購物商場專案實戰
八、歷年大廠面試真題整理
在各平臺收集整理的各大廠面試真題合集,附帶決議答案,
有需要的朋友,點贊+評論“666”后,后臺私信我獲取!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/246207.html
標籤:其他








