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