項目經(jīng)驗不豐富、技術(shù)不突出的程序員怎么打動面試官考传?

前言

相信不少的程序員都有過類似的困惑:如果我沒有大型的項目經(jīng)歷吃型,也不能靠技術(shù)征服面試官,那我要怎么才能給面試官留下一個好印象呢僚楞?

按照本人的面試經(jīng)驗來說勤晚,面試主要看幾點:項目經(jīng)驗+基本技術(shù)+個人潛力

關(guān)于項目經(jīng)驗

我認為方騰飛講的一段話非常好:

介紹產(chǎn)品時面試官會考察應(yīng)聘者的溝通能力和思考能力枉层,我們大部分情況都是做產(chǎn)品的一個功能或一個模塊,但是即使是這樣赐写,自己有沒有把整個系統(tǒng)架構(gòu)或產(chǎn)品搞清楚鸟蜡,并能介紹清楚,為什么做這個系統(tǒng)挺邀?這個系統(tǒng)的價值是什么揉忘?這個系統(tǒng)有哪些功能?優(yōu)缺點有哪些端铛?如果讓你重新設(shè)計這個系統(tǒng)你會如何設(shè)計泣矛?

我覺得這就已經(jīng)足以概括了。也許你僅僅工作一年禾蚕,也許你做的是項目中微不足道的模塊您朽,當(dāng)然這些一定是你的劣勢且無法改變,但是如何彌補這個劣勢换淆,從方老師的話中我總結(jié)幾點:

明確你的項目到底是做什么的哗总,有哪些功能

明確你的項目的整體架構(gòu),在面試的時候能夠清楚地畫給面試官看并且清楚地指出從哪里調(diào)用到哪里倍试、使用什么方式調(diào)用

明確你的模塊在整個項目中所處的位置及作用

明確你的模塊用到了哪些技術(shù)讯屈,更好一些的可以再了解一下整個項目用到了哪些技術(shù)

在你無法改變自己的工作年限、自己的不那么有說服力的項目經(jīng)驗的情況下(這一定是扣分項)县习,可以通過這種方式來一定程度上地彌補并且增進面試官對你的好感度涮母。

補充一點,在面試中聊你的項目的時候准颓,有一個問題90%是繞不過的:談一下你在項目中解決過的比較復(fù)雜的問題哈蝇。這需要在工作中不斷去發(fā)現(xiàn)和探索,不需要多攘已,在你自己目前的項目中只要你找到一兩個能說的問題就行炮赦。

一個小技巧是,即使問題不是你解決的而是別人解決的样勃,但是你把這個問題弄懂吠勘、搞透了,在面試的時候你一樣可以把這個問題當(dāng)作是你自己解決的來說----畢竟峡眶,誰來管這個問題當(dāng)時到底是不是你解決的呢剧防?

關(guān)于基本技術(shù)

說完了項目經(jīng)驗,接下來說一說1-3年的Java程序員應(yīng)該具備的技術(shù)能力辫樱,這些能力你掌握的越多峭拘,給面試官的感覺和最終拿到的薪資也就越高。

1、基本語法

這包括static鸡挠、final辉饱、transient等關(guān)鍵字的作用,foreach循環(huán)的原理等等拣展。今天面試我問你static關(guān)鍵字有哪些作用彭沼,如果你答出static修飾變量、修飾方法我會認為你合格备埃,答出靜態(tài)塊姓惑,我會認為你不錯,答出靜態(tài)內(nèi)部類我會認為你很好按脚,答出靜態(tài)導(dǎo)包我會對你很滿意于毙,因為能看出你非常熱衷研究技術(shù)。

最深入的一次辅搬,記得面試官直接問到了我volatile關(guān)鍵字的底層實現(xiàn)原理(順便插一句望众,面試和被面試本身就是相對的,面試官能問這個問題同時也讓面試者感覺到面試官也是一個喜愛研究技術(shù)的人伞辛,增加了面試者對公司的好感,我最終選擇的就是問了這個問題的公司)夯缺,不要覺得這太吹毛求疵了----越簡單的問題越能看出一個人的水平蚤氏,別人對你技術(shù)的考量絕大多數(shù)都是以深度優(yōu)先、廣度次之為標準的踊兜,切記竿滨。

2、集合

非常重要捏境,也是必問的內(nèi)容于游。基本上就是List垫言、Map贰剥、Set,問的是各種實現(xiàn)類的底層實現(xiàn)原理筷频,實現(xiàn)類的優(yōu)缺點蚌成。

集合要掌握的是ArrayList、LinkedList凛捏、Hashtable担忧、HashMap、ConcurrentHashMap坯癣、HashSet的實現(xiàn)原理瓶盛,能流利作答,當(dāng)然能掌握CopyOnWrite容器和Queue是再好不過的了。另外多說一句惩猫,ConcurrentHashMap的問題在面試中問得特別多芝硬,大概是因為這個類可以衍生出非常多的問題,關(guān)于ConcurrentHashMap帆锋,我給網(wǎng)友朋友們提供三點回答或者是研究方向:

ConcurrentHashMap的鎖分段技術(shù)

ConcurrentHashMap的讀是否要加鎖吵取,為什么

ConcurrentHashMap的迭代器是強一致性的迭代器還是弱一致性的迭代器

3、設(shè)計模式

本來以為蠻重要的一塊內(nèi)容锯厢,結(jié)果只在阿里巴巴B2B事業(yè)部面試的時候被問了一次皮官,當(dāng)時問的是裝飾器模式。

當(dāng)然咱們不能這么功利实辑,為了面試而學(xué)習(xí)捺氢,設(shè)計模式在工作中還是非常重要、非常有用的剪撬,23種設(shè)計模式中重點研究常用的十來種就可以了摄乒,面試中關(guān)于設(shè)計模式的問答主要是三個方向:

你的項目中用到了哪些設(shè)計模式,如何使用

知道常用設(shè)計模式的優(yōu)缺點

能畫出常用設(shè)計模式的UML圖

4残黑、多線程

這也是必問的一塊了馍佑。因為三年工作經(jīng)驗,所以基本上不會再問你怎么實現(xiàn)多線程了梨水,會問得深入一些比如說Thread和Runnable的區(qū)別和聯(lián)系拭荤、多次start一個線程會怎么樣、線程有哪些狀態(tài)疫诽。當(dāng)然這只是最基本的舅世,出乎意料地,幾次面試幾乎都被同時問到了一個問題奇徒,問法不盡相同雏亚,總結(jié)起來是這么一個意思:

假如有Thread1、Thread2摩钙、Thread3罢低、Thread4四條線程分別統(tǒng)計C、D腺律、E奕短、F四個盤的大小,所有線程都統(tǒng)計完畢交給Thread5線程去做匯總匀钧,應(yīng)當(dāng)如何實現(xiàn)翎碑?

聰明的網(wǎng)友們對這個問題是否有答案呢?不難之斯,java.util.concurrent下就有現(xiàn)成的類可以使用日杈。

另外,線程池也是比較常問的一塊,常用的線程池有幾種莉擒?這幾種線程池之間有什么區(qū)別和聯(lián)系酿炸?線程池的實現(xiàn)原理是怎么樣的?實際一些的涨冀,會給你一些具體的場景填硕,讓你回答這種場景該使用什么樣的線程池比較合適。

說到這里順便給大家推薦一個Java后端方面的交流學(xué)習(xí)社區(qū):586446657鹿鳖,里面不僅可以交流討論扁眯,還有面試經(jīng)驗分享以及免費的資料下載,包括Spring翅帜,MyBatis姻檀,Netty源碼分析,高并發(fā)涝滴、高性能绣版、分布式、微服務(wù)架構(gòu)的原理歼疮,JVM性能優(yōu)化這些成為架構(gòu)師必備的知識體系杂抽。相信對于已經(jīng)工作和遇到技術(shù)瓶頸的碼友,在這里會有你需要的內(nèi)容韩脏。

最后默怨,雖然這次面試問得不多,但是多線程同步骤素、鎖這塊也是重點。synchronized和ReentrantLock的區(qū)別愚屁、synchronized鎖普通方法和鎖靜態(tài)方法济竹、死鎖的原理及排查方法等等。

5霎槐、IO

IO分為File IO和Socket IO送浊,F(xiàn)ile IO基本上是不會問的,問也問不出什么來丘跌,平時會用就好了袭景,另外記得File IO都是阻塞IO。

Socket IO是比較重要的一塊闭树,要搞懂的是阻塞/非阻塞的區(qū)別耸棒、同步/異步的區(qū)別,借此理解阻塞IO报辱、非阻塞IO与殃、多路復(fù)用IO、異步IO這四種IO模型,Socket IO如何和這四種模型相關(guān)聯(lián)幅疼。這是基本一些的米奸,深入一些的話,就會問NIO的原理爽篷、NIO屬于哪種IO模型悴晰、NIO的三大組成等等,這有些難逐工,當(dāng)時我也是研究了很久才搞懂NIO铡溪。提一句,NIO并不是嚴格意義上的非阻塞IO而應(yīng)該屬于多路復(fù)用IO钻弄,面試回答的時候要注意這個細節(jié)佃却,講到NIO會阻塞在Selector的select方法上會增加面試官對你的好感。

如果用過Netty窘俺,可能會問一些Netty的東西饲帅,畢竟這個框架基本屬于當(dāng)前最好的NIO框架了(Mina其實也不錯,不過總體來說還是比不上Netty的)瘤泪,大多數(shù)互聯(lián)網(wǎng)公司也都在用Netty灶泵。

6、JDK源碼

要想拿高工資对途,JDK源碼不可不讀赦邻。上面的內(nèi)容可能還和具體場景聯(lián)系起來,JDK源碼就是實打?qū)嵉乜茨闫綍r是不是愛鉆研了实檀。我面試過程中被問了不少JDK源碼的問題惶洲,其中最刁鉆的一個是:String的hashCode()方法是怎么實現(xiàn)的,幸好咱平時String源代碼看得多膳犹,答了個大概恬吕。JDK源碼其實沒什么好總結(jié)的,純粹看個人须床,總結(jié)一下比較重要的源碼:

List铐料、Map、Set實現(xiàn)類的源代碼

ReentrantLock豺旬、AQS的源代碼

AtomicInteger的實現(xiàn)原理钠惩,主要能說清楚CAS機制并且AtomicInteger是如何利用CAS機制實現(xiàn)的

線程池的實現(xiàn)原理

Object類中的方法以及每個方法的作用

這些其實要求蠻高的,去年一整年基本把JDK中重要類的源代碼研究了個遍族阅,真的花費時間篓跛、花費精力,當(dāng)然回頭看坦刀,是值得的----不僅僅是為了應(yīng)付面試举塔。

7绑警、框架

老生常談,面試必問的東西央渣。一般來說會問你一下你們項目中使用的框架计盒,然后給你一些場景問你用框架怎么做,比如我想要在Spring初始化bean的時候做一些事情該怎么做芽丹、想要在bean銷毀的時候做一些事情該怎么做北启、MyBatis中$和#的區(qū)別等等,這些都比較實際了拔第,平時積累得好咕村、有多學(xué)習(xí)框架的使用細節(jié)自然都不成問題。

如果上面你的問題答得好蚊俺,面試官往往會深入地問一些框架的實現(xiàn)原理懈涛。問得最多的就是Spring AOP的實現(xiàn)原理,當(dāng)然這個很簡單啦泳猬,兩句話就搞定的的事兒批钠,即使你不會準備一下就好了。我遇到的最變態(tài)的是讓LZ畫一下Spring的Bean工廠實現(xiàn)的UML圖得封,當(dāng)然面對這樣一個有深度的問題埋心,按目前的水準是絕對答不出來的/(ㄒoㄒ)/~~

8、數(shù)據(jù)庫

數(shù)據(jù)庫十有八九也都會問到忙上。一些基本的像union和union all的區(qū)別拷呆、left join、幾種索引及其區(qū)別就不談了疫粥,比較重要的就是數(shù)據(jù)庫性能的優(yōu)化茬斧,如果對于數(shù)據(jù)庫的性能優(yōu)化一竅不通,那么有時間梗逮,還是建議你在面試前花一兩天專門把SQL基礎(chǔ)和SQL優(yōu)化的內(nèi)容準備一下啥供。

不過數(shù)據(jù)庫倒是不用擔(dān)心,一家公司往往有很多部門库糠,如果你對數(shù)據(jù)庫不熟悉而基本技術(shù)又非常好,九成都是會要你的涮毫,估計會先把你放到對數(shù)據(jù)庫使用不是要求非常高的部門鍛煉一下瞬欧。

9、數(shù)據(jù)結(jié)構(gòu)和算法分析

數(shù)據(jù)結(jié)構(gòu)和算法分析罢防,對于一名程序員來說艘虎,會比不會好而且在工作中絕對能派上用場。數(shù)組咒吐、鏈表是基礎(chǔ)野建,棧和隊列深入一些但也不難属划,樹挺重要的,比較重要的樹AVL樹候生、紅黑樹同眯,可以不了解它們的具體實現(xiàn),但是要知道什么是二叉查找樹唯鸭、什么是平衡樹须蜗,AVL樹和紅黑樹的區(qū)別。記得某次面試目溉,某個面試官和我聊到了數(shù)據(jù)庫的索引明肮,他問我:

你知道索引使用的是哪種數(shù)據(jù)結(jié)構(gòu)實現(xiàn)嗎?

我答到用的Hash表吧缭付,答錯柿估。他又問,你知道為什么要使用樹嗎陷猫?我答到因為Hash表可能會出現(xiàn)比較多的沖突秫舌,在千萬甚至是上億級別的數(shù)據(jù)面前,會大大增加查找的時間復(fù)雜度烙丛。而樹比較穩(wěn)定舅巷,基本保證最多二三十次就能找到想要的數(shù)據(jù),對方說不完全對河咽,最后我們還是交流了一下這個問題钠右,我也明白了為什么要使用樹,這里不說忘蟹,網(wǎng)友朋友們覺得索引為什么要使用樹來實現(xiàn)呢飒房?

至于算法分析,不會媚值、不想研究就算了狠毯,記得某次面試對方問我,Collections.sort方法使用的是哪種排序方法褥芒,額嚼松,吐血三升。當(dāng)然為了顯示自己的博學(xué)锰扶,對算法分析也有一定的研究(⊙﹏⊙)b献酗,我還是硬著頭皮說了一句可能是冒泡排序吧。當(dāng)然答案肯定不是坷牛,有興趣的網(wǎng)友朋友們可以去看一下Collections.sort方法的源代碼罕偎,用的是一種叫做TimSort的排序法,也就是增強型的歸并排序法京闰。

10颜及、Java虛擬機

出乎我的意料甩苛,Java虛擬機應(yīng)該是很重要的一塊內(nèi)容,結(jié)果在這幾家公司中被問到的概率幾乎為0俏站。要知道讯蒲,LZ去年可是花了大量的時間去研究Java虛擬機的,光周志明老師的《深入理解Java虛擬機:JVM高級特性與最佳實踐》乾翔,我就讀了不下五遍爱葵。

言歸正傳,雖然Java虛擬機沒問到反浓,但我覺得還是有必要研究的萌丈,就簡單地列一個提綱吧,談?wù)凧ava虛擬機中比較重要的內(nèi)容:

Java虛擬機的內(nèi)存布局

GC算法及幾種垃圾收集器

類加載機制雷则,也就是雙親委派模型

Java內(nèi)存模型

happens-before規(guī)則

volatile關(guān)鍵字使用規(guī)則

也許面試無用辆雾,但在走向大牛的路上,不可不會月劈。

11度迂、Web方面的一些問題

Java主要面向Web端,因此Web的一些問題也是必問的猜揪。我碰到過問得最多的兩個問題是:

談?wù)劮植际絊ession的幾種實現(xiàn)方式

常用的四種能答出來自然是讓面試官非常滿意的惭墓,另外一個常問的問題是:

講一下Session和Cookie的區(qū)別和聯(lián)系以及Session的實現(xiàn)原理

這兩個問題之外,web.xml里面的內(nèi)容是重點而姐,F(xiàn)ilter腊凶、Servlet、Listener拴念,不說對它們的實現(xiàn)原理一清二楚吧钧萍,至少能對它們的使用知根知底。另外政鼠,一些細節(jié)的方面比如get/post的區(qū)別风瘦、forward/重定向的區(qū)別、HTTPS的實現(xiàn)原理也都可能會被考察到公般。

最后万搔,如果有興趣有時間,建議學(xué)習(xí)官帘、研究一下SOA和RPC瞬雹,面向服務(wù)體系,大型分布式架構(gòu)必備遏佣,救命良方、包治百病揽浙、屢試不爽状婶。

關(guān)于個人潛力

關(guān)于這一點我覺得是應(yīng)該是貫穿于整個面試過程的意敛。如果你能做到如下幾點,相信會在面試官心里留下一個好印象膛虫。

面試時能夠保持良好草姻、平穩(wěn)的心態(tài)。條理清晰地回答面試官的問題稍刀,同時體現(xiàn)自己有較濃的技術(shù)興趣撩独。

整個面試過程態(tài)度積極向上,不要有任何悲觀消極的態(tài)度(尤其在談到以前公司情況的時候账月,即使有再多的不滿)综膀,就不會有問題。

關(guān)于HR面局齿,不能輕視剧劝。很多公司HR對面試者都有一票否決權(quán)。因此碰到一些難處理的問題一定要慎重回答抓歼,四個字:滴水不漏讥此。

不是所有的程序員都是大牛,都能靠技術(shù)征服面試官谣妻。大部分程序員沒有太好的項目經(jīng)驗萄喳、技術(shù)也不是特別突出,不必妄自菲薄蹋半,因為還有很多人和你一樣他巨。

重要的是:怎么在和你差不多的程序員中脫穎而出?

我相信湃窍,只要你在面試過程中體現(xiàn)出對技術(shù)的熱情闻蛀、積極向上的態(tài)度、不卑不亢的風(fēng)貌就能給面試官留下一個良好的印象您市,而當(dāng)你具備了這些特質(zhì)時觉痛,那你已經(jīng)變成準大牛了。

試問茵休,還有哪家求賢若渴的公司會因為一些表面的問題刁難你呢薪棒?還有哪個公司會拒絕你成為儲備人才呢?

結(jié)語

想起一句話——你若盛開榕莺,清風(fēng)自來俐芯。獻給正在程序員修煉路上奮力前行的你們!共勉钉鸯!

感謝分享吧史,原文鏈接:http://blog.mambaxin.com/article/70

博客分享:https://www.mambaxin.com/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市唠雕,隨后出現(xiàn)的幾起案子贸营,更是在濱河造成了極大的恐慌吨述,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钞脂,死亡現(xiàn)場離奇詭異揣云,居然都是意外死亡,警方通過查閱死者的電腦和手機冰啃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門邓夕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人阎毅,你說我怎么就攤上這事焚刚。” “怎么了净薛?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵汪榔,是天一觀的道長。 經(jīng)常有香客問我肃拜,道長痴腌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任燃领,我火速辦了婚禮士聪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘猛蔽。我一直安慰自己剥悟,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布曼库。 她就那樣靜靜地躺著区岗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪毁枯。 梳的紋絲不亂的頭發(fā)上慈缔,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機與錄音种玛,去河邊找鬼藐鹤。 笑死,一個胖子當(dāng)著我的面吹牛赂韵,可吹牛的內(nèi)容都是我干的娱节。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼祭示,長吁一口氣:“原來是場噩夢啊……” “哼肄满!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤稠歉,失蹤者是張志新(化名)和其女友劉穎讥电,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轧抗,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年瞬测,在試婚紗的時候發(fā)現(xiàn)自己被綠了横媚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡月趟,死狀恐怖灯蝴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情孝宗,我是刑警寧澤穷躁,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站因妇,受9級特大地震影響问潭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜婚被,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一狡忙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧址芯,春花似錦灾茁、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旬陡,卻和暖如春拓颓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背季惩。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工录粱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人画拾。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓啥繁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親青抛。 傳聞我的和親對象是個殘疾皇子旗闽,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355