大家都在說去大廠,我說說怎麼去小廠面試吧?

點擊上方“終端研發部”,選擇星標

回覆“資源”,領取全網最火的Java核心知識總結~

 文來自:https://www.matools.com/blog/190299983

正文

01 前言 & 吐槽

爲什麼要起這個標題?
一般不都是說怎麼去大廠嗎?
小廠有啥好說的?
錢少、事多,技術落後,學不到東西,還加班。
誰他麼不能進?

一找工作,發現還真有點難。
因爲競爭的人,好像有點多。

我靠,原來這麼多人都只能去小廠???

而我們在網上看到的面試文章畫風都是這樣的:

《大廠程序員面試邏輯題面面觀》
《阿里P7一定難嗎?》
《我是怎樣拿到阿里、騰訊、滴滴、京東offer的?》
《字節跳動三面過後,HR說讓我回去等通知》
《一文告訴你,掌握XXX才能進大廠》

好吧,因爲大廠大家都想進,我也想進。所以這樣的文章標題還是很有吸引力的

阿里騰訊的高工資誰不想去呢?

但是一方面是大家也不全都是在北上深杭。
二三線城市又沒什麼知名互聯網公司。
而且對於工作三五年以內的同學來說,殘酷的真相是,這些文章沒有說一個大家心知肚明的前提:
不是985、211,你連面試的資格都沒有!

難道小廠同學就不是人嗎?

我想大部分程序員也都不是985、211畢業的吧?
我見過很多程序員,也帶過不少團隊,其中有985、211的本科生、研究生,也有大專畢業的,還有中途幹了幾年別的中間轉程序員的。
不可否認985、211的畢業生學習力確實比較強,但是比例差距並沒有那麼大。
至少在我帶過的團隊裏,大專、雙非本科畢業的同學跟他們的差距也就是4:6這樣。

在工作中,其實我們又回到了同一起跑線!
但是在境遇上,我們必須很現實地看到,在薪資獲取、職位提升、職業發展的路程中,差距確實很大,甚至越來越大。

爲什麼會這樣?

我想很多人心裏都有自己的想法,自己的見解。

是不是很不甘?

爲什麼我們付出一樣多的努力,得到的卻比別人少呢?
別人在大廠一年、兩年就能達到的成績、薪資、職位,可能你需要付出四、五年才能達到。

我不能安慰你。

我只能說是應該的。這是過去的你償的債。
讀書時的缺失只能用工作中的時間去彌補。

而在工作後,你有了重新再來一次的機會。

怎麼去把握呢?

我們可以以大廠爲目標,但是得承認先天性上確實有差距。

所以可以先去小公司去歷練下。

小公司因爲人少,流程也比較少。招人就是來幹活的。
對學歷的並非很看重。
我自己發出的標準就是大專就行了。
但是小廠招人也特別塊,基本沒有所謂二面。
所以第一印象很重要。

怎麼在一次面試中就get到面試官的點?
怎麼將自己的優勢發揮出來?
在面試前應該準備什麼?
在面試時遇到不會的怎麼辦?

好吧,看看接下來我怎麼裝逼,錯了,是從面試官的角度,說一些掏心窩子的話,寫寫這個《程序員的小廠面試寶典》吧。

02 作爲面試官,我會問一些什麼問題呢?

過年後到了一家小公司,開始創業之路。
這兩天開始招人組建技術團隊。
陸陸續續面試了近二十個人。

小公司來面試的大部分都是雙非畢業生。

看到他們就想起了曾經的自己。十年前的那個我。
我中學是上的職高,大專上的業餘,畢業後還做了一年電腦維修。
可以說起點是差得不能再差了,低過90%程序員的學歷和起步。

然後自學C,邊工作邊學了兩個月,自學學不下去,進入一家培訓班學了java。
學完後,進入一家小公司實習,第一個月工資是1200。
好了,苦情背景話都說完了。說說正題吧。

面試的這些人大部分都是雙非背景,工作兩三年內的。

拿上簡歷一看,熟悉XXX技術,一問XXX:
不知道,
沒學過,
只瞭解一點。

**三連暴擊,暴得我肝疼。
【你逗我呢?不會你也寫?臥槽,你自找麻煩嗎?】

但是我後來想了想,這好像也正常,因爲你不寫這些東西,HR都不會給你面試的機會。

所以面試一看簡歷,基本的套路一看就能看出來:
寫了精通,就是工作中常常用到;
寫了熟練,就是用過一點;
寫了解,就是偶爾吹牛的時候聽過。

我在面試的時候,生怕漏了明珠,所以總會問來面試的同學:
你擅長什麼?
Java、數據庫、前端你哪方面掌握的比較好?
你常用的技術棧是什麼?
說一件讓你印象深刻的事,可以展現你解決問題的能力,或者學習的能力。

好了,以上就是我的面試套路。你掌握了這個套路,是不是就能套路我了?

所以,你到底有沒有某一方面可以打動面試官的點呢?

在面試時,我會在上面那些套路的問題時,追着去問你所掌握的技術棧能力。

譬如你說你擅長後端,我就會問些Java、中間件;
你說擅長數據庫,我會臨時出個題,讓你寫個SQL;
你說擅長前端,我會問下JavaScript、vue。

對於不通工作經驗年限的人,我問的問題層次也不太一樣。

一年工作經驗

後端:
Java有哪些集合類?ArrayList跟LinkedList有啥區別?
springboot用過嗎?是怎麼使用的?
redis用過嗎?它是用來做什麼的?爲什麼比較塊呢?

數據庫:
一個學生成績表,有學生、班級、成績、課程,怎麼一條語句分組展示班級的學生總分數?

前端:
怎麼獲取一個id是ss的div,去改變它的內容?
jQuery的Ajax怎麼用的?它封裝了原生js的一個什麼組件?

兩年工作經驗

後端:
ArrayList跟LinkedList有啥區別?有什麼優缺點呢?它們是線程安全的嗎?
springboot用過嗎?是怎麼做到簡化配置的?爲什麼能自動裝配呢?聽過factories文件嗎?
redis用過嗎?聽過緩存穿透、緩存雪崩的問題呢?怎麼解決呢?
mybatis是一個什麼框架?它跟JDBC有什麼區別?它是怎麼連接數據庫執行SQL的?

數據庫:
一個學生成績表,有學生、班級、成績、課程,怎麼一條語句分組展示A、B、C班級的學生總分數?
基於上題,怎麼篩選總分數1萬分以上的班級呢?
基於上題,怎麼再篩選60分以上的同學,60分以上的成績參與統計,以下不統計呢?
做過查詢優化嗎?知道執行計劃嗎?

前端:
怎麼獲取一個id是ss的div,去改變它的內容?
JavaScript中的function a(){this.s =1};this是屬於哪個對象?
jQuery的ajax是封裝了原生js的一個什麼組件?
知道盒模型嗎?
知道閉包嗎?
小程序跟vue用過嗎?跟html有什麼區別?

三年及以上工作經驗

後端:
spring boot用過嗎?是怎麼做到簡化配置的?爲什麼能自動裝配呢?聽過factories文件嗎?
redis用過嗎?聽過緩存穿透、緩存雪崩的問題呢?怎麼解決呢?
怎麼做一個分佈式鎖呢?
應用怎麼做集羣?集羣、負載、分佈式有什麼區別?
用過多線程嗎?怎麼創建一個連接池?

如果前端有個出具報表的請求,需要請求三十張表的數據,我現在在後端用多線程來解決,每個線程查詢一張表,怎麼將這三十個線程的數據彙總返回給前端呢?用同步還是異步?同步怎麼做?異步怎麼做呢?

數據庫:
做過查詢優化嗎?知道執行計劃嗎?
知道怎麼挑選索引字段嗎?有索引一定快嗎?索引失效怎麼辦?
用過mysql?mysql怎麼做到主從複製的?怎麼解決腦裂問題?
知道分區嗎?用過分庫分表中間件嗎?
用過Oracle?Oracle是怎麼做集羣的?

前端:
jQuery的ajax是封裝了原生js的一個什麼組件?
知道盒模型嗎?
知道閉包嗎?
vue用過嗎?是怎麼做到雙向數據綁定的?
知道prototype原型鏈嗎?怎麼用prototype開發一個jQuery庫?

03 結語 & 祝福

作爲一個面試官,我想招一個什麼樣的人呢?

首先,肯定是有“錢”這個前提的。
就是招聘這個崗位,這個崗位能給多少錢,可能會有一定的浮動,但是都會限制在一定範圍內。
所以在這個範圍內,我們肯定是想招到合自己心意的人選。

那麼,我作爲一個面試官,我會想招一個什麼樣的人選呢?我會考察他哪方面的能力呢?
我是一個面試者,我又怎麼表現出自己的能力?表現哪方面的能力呢?

作爲一個面試官,在拿到面試者的簡歷後,問上一兩個問題,有沒有實際工作的經驗,有什麼技術能力,很容易便能分辨出來。

但是有兩種能力,卻很難分辨出來。一個是解決問題的能力,一個是工作中學習的能力。
而這兩種能力,卻是我在挑選同層級候選者們時最看重的能力。

所以我喜歡問的問題是:

你擅長什麼?
Java、數據庫、前端你哪方面掌握的比較好?
你常用的技術棧是什麼?
說一件讓你印象深刻的事,可以展現你解決問題的能力,或者學習的能力。
你喜歡分享嗎?有記筆記、寫博客的習慣嗎?有參與過開源社區的項目嗎?
如果讓你對自己的學習能力打個分,你會打多少分?

在多數候選者的心中,自己的學習能力都是毋庸置疑的,特別是我問”如果讓你對自己的學習能力打個分,你會打多少分?”

一般人的回答都是80分。

我想如果不是中國人的謙虛本能抑制住了他們的驕傲,一百二十分也是沒問題的。

但是我們往往都會高估了自己的學習能力。

我低頭看看我自己就明白了,買書如山倒,看書如抽絲。

而我最看重的是這個問題:

說一件讓你印象深刻的事,可以展現你解決問題的能力,或者學習的能力。

我希望在面試官對你說這句話的時候,你可以盡情地把你自己的學習方法、遇到過的項目難題、解決問題的步驟很清晰地展現出來。

能展示你的【自我評價】上所描述的【熱愛編程,有鑽研精神,能獨立解決難題】等等這些比較”虛“的內容。

如果面試官沒有對你說這句話,我也希望你能在面試官對你提問的時候,儘量去展現你的風采。

在面試前,想好自己的優缺點;面試時,突出自己的優點

你到底擅長什麼?
你是怎麼學習新技術的?
你對什麼有比較深的研究呢?
你是怎麼解決問題的?

錯,沒有關係,要有自己的思考。但是請不要胡說八道

僅以此篇,獻給正在忙忙碌碌找工作的同學們吧。

找一份工作簡單。找一份滿意的工作卻很難,誰都羨慕去大廠。

不過對於普通人的我們,還是先在小廠摸爬滾打一下吧。

小廠也不能忘卻努力

多coding:這個不多說了,碼農每天花10幾個小時寫代碼不是啥難事吧?最大的難事可能是琢磨琢磨怎麼保護腰和頸椎。當然,多coding包括了多實踐,最好是實BAT的踐。至於leetcode、topcoder、各種OJ什麼的,如果只瞄着BAT,那大可不必浪費時間,但是如果打算拿硅谷的offer或者北京那一票海龜回來辦的公司,leetcode全刷一遍還是必須的。

多思考:只寫代碼是不夠的,至於該怎麼思考、該思考什麼,這個屬於多思考的一個子問題之一,每個人心中應該都有點兒普,開發中多問自己幾個爲什麼。

多閱讀:很多朋友都在糾結閱讀什麼?各種編程思想啊、高併發啊、多線程啊等等。當然,每天上下班在路上,或者蹲坑的時候。手機就是個很好的媒介,利用碎片化時間獲取對自己有用的資訊。

面對選擇,可以橫向、縱向去思考,但無需糾結,自身能力是獲取一切機會的基礎。隨着時間的推移,自己的技術停滯不前,不知道該怎麼去提升,不知道目前自己處在什麼水平,更沒有一個完整的體系,針對這些問題,今天給大家分享面試要點,希望可以幫到你們。

源碼分析

閱讀、分析源碼是程序員最基本的代碼能力也是碼農的根本所在,學習經典源碼中所用到的經典設計思想及常用設計模式,能夠幫你瞭解大牛是如何寫代碼的,從而吸收大牛的代碼功力。在阿里面試中,MyBatis、Spring等框架的底層原理是經常會被問到的。想進名企大廠?阿里程序員給你三點建議

分佈式架構

阿里巴巴有很多大團隊,這種大團隊裏有很多小團隊,到小團隊之後,做的業務都不相同,如果想立足成爲一線互聯網公司中的萬能選手,最主流的分佈式架構中有很多知識都是必須要去了解與學習的。並且在阿里面試過程中,面試官會問到實際應用場景的問題:比如微服務化、用戶量、併發量、業務複雜度以及可擴展程度等。

微服務架構

微服務是現在互聯網架構技術中最火熱的話題之一,在阿里面試過程中,面試官會問到很多關於微服務相關的問題,但作爲一名開發者,一名有技術夢想的程序員微服務架構是現在必須要去了解的主流技術。

性能優化

性能一直是讓程序員比較頭疼的問題,當系統架構變得複雜和龐大之後,性能方面就會下降,特別是阿里巴巴這樣的一線互聯網公司最爲注重。因此想進入阿里,性能優化一定是要去深入學習與理解的一環

希望這些對大家有所幫助,要不要進入BAT可能是因人而異,一線互聯網加班太嚴重了,雖然也學到了很多技術,這些技術基本在外面是接觸不到的,但是自己的工作時間會延長,每一種選擇都是一種精彩,願你未來可期!

閱讀更多

微信支付的跨平臺架構詳解

Flutter  + MVP +Kotlin 實戰!

Tomcat 竟然有 bug,這我能信?

互聯網的圈子,遊戲行業的現狀是如何?

動畫:一招學會TCP的三次握手和四次揮手

幹掉PostMan!IDEA這款插件太實用了…

美團面試題:Java-線程池 ThreadPool 專題詳解

在這裏獲得的不僅僅是技術!

喜歡就給個“在看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章