程序员成为“备胎”的5年,我一直在等...(外包——字节跳动)
為什么離職?
這個問題,幾乎我參加的每一場面試都會問到。我是2015.7.1畢業(yè),最后離職日期是2020.12.18。這段工作經(jīng)歷不算長,被問到也很正常。最主要原因還是追求更大的發(fā)展空間和技術(shù)突破。
在我導師跳槽去美團后,團隊內(nèi)就出現(xiàn)了明顯的技術(shù)斷層。我遇到的某些問題,能夠與之商量的同事也越來越少。至于源碼,數(shù)據(jù)結(jié)構(gòu)和算法層面的交流就更少了。
而這些深層次的東西,才是真正意義上的技術(shù)棧,是真真正正能提高個人技術(shù)能力和核心競爭力的東西。
自我介紹
雙非二本,軟件工程
喜歡編程,古風,日語和英語。
求職期間寫了一個小博客,感興趣的可以看看
【GitHub】
跳槽前該考慮的事?
在我看來,決定是否跳槽成功的核心因素有兩個:個人技術(shù)能力和當前招聘市場的大環(huán)境。建議先將自身技術(shù)能力和招聘要求做一個比對,如果覺得可以勝任,再去投遞也不遲。至于市場環(huán)境,大概是金三銀四,金九銀十和年末擴招三大階段吧。
如果技術(shù)已經(jīng)準備ok,簡歷也完善過,那就可以開始投遞了。內(nèi)推也好,其他招聘軟件也好,自行選擇即可。
最最最重要的一件事,不建議裸辭。如果裸辭,做好心理準備。大多數(shù)情況下,換一份滿意的工作,整個面試流程加offer審核到offer call再到最終郵件offer,耗時一個月是很正常的。在職面試都會有焦慮感,更何況是裸辭。
如果工作年限很短,又是裸辭,那我只能說在簡歷篩選上會很吃虧。比如我,投字節(jié)15個崗位,都被干掉,到第16個才約上面試。投快手4次內(nèi)推,被干掉4次,最快的一次一小時左右就把我干掉了。不得不說,快手效率還是到位的。不死心的我又投了第五次,成功約上了面試。至于后來為什么能再約上猿輔導,百度,58同城,去哪兒網(wǎng),美團的面試,我猜應(yīng)該都是因為運氣…又或者,實在很缺人?
字節(jié)跳動面試經(jīng)歷
一面
- 編程題:找出數(shù)組中,升序子數(shù)組長度top2的數(shù)組
二面
- 編程題:找出島嶼個數(shù),leetcode第200題
這個編程題我沒寫出來,面試官引導了將近一個小時也沒寫出來,然后居然過了。。
三面
- 編程題:從非降序數(shù)組中找出第一次出現(xiàn)的target元素下標
int[] array = {1,2,2,2,3,3,5,6,8}, int target =2
需要答案可以查看我的【GitHub】
技術(shù)方面該如何準備?
結(jié)合我20多次的面試經(jīng)驗,總結(jié)出一個核心:基礎(chǔ)。即便是大廠,也不會忽略問基礎(chǔ),反而更重視這個。基礎(chǔ)不穩(wěn),地動山搖。基礎(chǔ)穩(wěn)如狗,大廠隨便走。以下我提到的資料都會在文末給出鏈接,大家可自行查看。
面試知識點
-
思維腦圖
-
Android面試過程所需要掌握的技術(shù)
一場面試都有一個流程,拿Android面試來說,面試內(nèi)容不可能全是Android問題,里面應(yīng)該會有編程基礎(chǔ)相關(guān)的問題。我對Android面試中的問題做了下分類,如下所示:
一般來說,一個Android應(yīng)用開發(fā)崗位是不需要太強的數(shù)據(jù)結(jié)構(gòu)和算法的,但是這并不意味著候選者可以完全不懂數(shù)據(jù)結(jié)構(gòu)和算法,所以數(shù)據(jù)結(jié)構(gòu)和算法大家還是要稍微了解下,由于它不是必須的,所以就算面試過程中回答的不好也沒關(guān)系,只要后面的Java、Android相關(guān)的問題能夠完美回答就好。有同學和我反饋,說面試掛在了數(shù)據(jù)結(jié)構(gòu)和算法,這在社招中應(yīng)該是不多見的,這多半是因為Android的問題也沒有很好地回答出來,這就是社招和校招的不同之處,校招看基礎(chǔ),社招看技術(shù)深度和業(yè)務(wù)。
關(guān)于設(shè)計模式和架構(gòu),其實中高級面試對這個的要求并不是特別高,熟悉下常見的設(shè)計模式基本就ok,比如單例模式、工程模式、觀察者模式等。
接下來主要描述下面試過程中對Android技術(shù)的要求。在我對Android的理解這篇文章中,我對Android的技術(shù)類別做了一下劃分,如下所示
對于大部分面試者來說,大家的目標崗位應(yīng)該是中高級,中級崗位(百度T4)需要掌握的知識點是:基本知識點、深入知識點;高級崗位(百度T5)需要掌握的知識點是:基本知識點、深入知識點、基本知識點的細節(jié)和系統(tǒng)核心機制。
1. 基本知識點
比如四大組件如何使用、如何創(chuàng)建Service、如何進行布局等。這類知識是需要熟練掌握的,并且也沒什么難度。
2. 稍微深入的知識點
比如AIDL、Binder、多進程、View的繪制流程、事件分發(fā)、消息隊列等。這類知識對于高級開發(fā)者來說也是必須掌握的,然而相信很多候選者在面試之前并不能對這些問題了如指掌。這些問題基本都是面試過程中很常見的問題,也是高級崗位所必須掌握的問題,不搞定這些問題無法達到百度的高級工程師的標準,因此也不可能通過面試。
3. 基本知識點的細節(jié)
比如Activity的啟動模式和標記位、Service同時處于start和bind狀態(tài)時的停止問題、AsyncTask的同步異步問題以及使用時的限制等,這種問題還有很多。這類知識點,大家在開發(fā)過程中可以并不會去注意,這會導致一個問題,那就是開發(fā)應(yīng)用沒問題,但是在面試時面試官只要稍微問下細節(jié)或者特殊情況,就hold不住了。 這類問題也是高級開發(fā)者所需要掌握的,有些面試官喜歡問一些看似刁鉆的問題,但是候選者如果回答不了也是不好的。
4. 系統(tǒng)核心機制
比如主線程的消息循環(huán)、主線程如何和AMS如何跨進程交互、SystemServer進程中的各種Service的工作方式、AsyncTask的工作原理等。這類知識對于高級開發(fā)者也是建議掌握的,因為它們可以讓開發(fā)者理解Android的運行體系。 這類問題并不是所有的Android面試都會涉及到,但是技術(shù)含量高的大公司有可能涉及此類問題。
5. 瑣碎的知識點
此類知識點我把它們定義為一些重要但是沒有什么技術(shù)難度的問題,比如如何打開一個網(wǎng)頁、如何打電話、如何發(fā)短信、如何定位、多點觸控等,這類問題往往不好記憶,但是需要的時候去查一下就能立馬搞定。這類問題基本上不會出現(xiàn)在面試過程中。
尾聲
最近小編在大神哪里買下了幾十套阿里、頭條、騰訊和美團等公司2020-2021年金三銀四的面試題,把技術(shù)點整理成了視頻+文檔(總計20G,實際上比預(yù)期多花了不少精力),包含知識脈絡(luò) + 諸多細節(jié),由于篇幅有限,這里以圖片的形式給大家展示一部分。
這份資料尤其適合:
1.沒有工作經(jīng)驗,但基礎(chǔ)非常扎實,對Android工作機制,常用設(shè)計思想,常用Android開發(fā)框架掌握熟練的。
2.具有一定工作經(jīng)驗的,但面對目前流行的技術(shù)不知從何下手,需要快速提升核心競爭力的人群。
3.在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內(nèi)進修、跳槽拿高薪的可以報名。
4.想了解“一線互聯(lián)網(wǎng)公司”最新招聘需求/技術(shù)要求,對比找出自身的長處和弱點所在,評估自己在現(xiàn)有市場上的競爭力如何;
5.做了幾年Android開發(fā),但還沒形成系統(tǒng)的Android知識體系,缺乏清晰的提升方向和學習路徑的程序員。
相信它會給大家?guī)砗芏嗍斋@。(更全的內(nèi)容和資料,在文末獲取)
Android面試題(部分展示)
-
精華Android 初級-高級學習進階思維腦圖(有幾百個細分支,系統(tǒng)學習)
-
學習筆記(只展示部分)
-
大廠面試筆記(包含面試題+解析+面試HR必備知識+學習Android基礎(chǔ)—高級知識點)
我的學習筆記和每個階段該學的知識都放在以下的學習思維腦圖里了,因為是跨專業(yè)所以知識點很細,也算比較全,需要的可以自己保存下載,如果需要xmind版本的,自己添加學習知識點的,可以查看我的【GitHub】免費分享給你!(筆記是對應(yīng)思維腦圖的,每個知識點細節(jié)都有詳細講解,需要的同樣查看我的GitHub我分享給你)
需要的可以 思維腦圖和對應(yīng)學習筆記的朋友,點擊獲取
【https://jq.qq.com/?_wv=1027&k=ELs9hPI2】
總結(jié)
如果你對自己的智商,解決問題的能力,鉆研的態(tài)度,有信心,it行業(yè)非常適合你;能力鍛煉出來了,工資就高,不停的拋出問題給你解決,讓你有成就感;技術(shù)水平隨著時間積累,越到后期越強;那你趕緊去報班/自學,從實習生做起,3年之后自然NB;如果你想混(鉆研精神不足),真的會很慘;半輩子沒掙得什么像樣的資產(chǎn)(初級程序員工資真心不高),長期加班熬夜落下一身病,然后40歲除了編程啥也不會,編程還賊菜,在小公司廝混業(yè)務(wù)代碼,老板說不定什么時候就說散伙,然后和小伙子們競爭初級程序員崗位。。。。。;
堅持8年的老前輩的經(jīng)歷告訴我,在錯誤的方向上,越堅持越受傷;
總結(jié)
以上是生活随笔為你收集整理的程序员成为“备胎”的5年,我一直在等...(外包——字节跳动)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网页设计与制作项目教程HTML+CSS+
- 下一篇: C Primer Plus(第六版)第三