工作1年的PHP程序員是如何被面試官虐的?
2019-04-12
前言
首先需要說明的一點,本人只是一個畢業(yè)一年,只有一年工作經(jīng)驗的普通PHPer,能力有限,這篇文章只是將我這幾周來的感受和體驗分享出來,希望能給許多像我一樣,或者互聯(lián)網(wǎng)行業(yè)的新手帶來一些收獲,當(dāng)然哪里說的不對或不足還是希望大神們可以加以點評補(bǔ)充。
金三銀四,每年這個時候都有很多人想借此機(jī)會跳槽或者投身某個行業(yè),目的很明確:需求更好的環(huán)境,兌現(xiàn)自己的價值。特別是近十年來非?;鸨幕ヂ?lián)網(wǎng)行業(yè),無論是剛畢業(yè)的,敲代碼敲了幾年的,還是跨行進(jìn)入IT行業(yè)的,都希望自己能“拿高薪,學(xué)知識,享福利”,而如今,高校擴(kuò)招,IT門檻降低也導(dǎo)致市場太多“低技術(shù),高目標(biāo)”的幼年程序猿(我也是其中之一),再加上今年互聯(lián)網(wǎng)寒冬,僧多粥少,想要尋求一個面試機(jī)會都不容易,更別說拿offer了。我是不甘心浪費時間在目前這家公司,具體原因不說,所以我下定決心找一份新的工作,一方面證明自己,另一方面想讓自己走出舒適圈,給自己多一點挑戰(zhàn)。
狼狽的三月
一開始心高氣傲的我,用半天時間把自己的簡歷整理了一遍,那時候我的簡歷應(yīng)該還是不錯的(后續(xù)文章會詳細(xì)描述如何優(yōu)化簡歷),第二天開始在Boss直聘和拉勾上開始投遞簡歷,一開始投遞的是江蘇地區(qū)PHP的1-3年開發(fā)崗位,雖然反饋比例不高,但還是很幸運(yùn)收到幾個面試邀請。接著我留了兩天時間給自己復(fù)習(xí),其實也就是在網(wǎng)上Google一下PHP面試題,打開十幾個標(biāo)簽頁各種面試題,這就是我所謂的“多刷題”操作,結(jié)果可想而知,看的東西很亂導(dǎo)致去面試那天基本忘的七七八八,有很多還只是記住一些答案,壓根就沒清楚,慘狀見下面具體面試。
準(zhǔn)備不充分 -- 第一輪不過
第一家,江蘇琶洲一家環(huán)境超級好,福利也不錯,主營美顏APP的公司,這也是我最感遺憾的一次面試機(jī)會。一開始有筆試,主要內(nèi)容有點偏向C語言那方面,PHP的幾乎沒有,僅靠大學(xué)的模糊知識寫了一些答案,具體的時間有點久忘記了,這里就不詳細(xì)說筆試內(nèi)容。主要是第一輪面試:
第一個問題:Redis的5種數(shù)據(jù)類型,只答了一個String。
第二個問題:你知道Redis怎么做到數(shù)據(jù)落地,同步數(shù)據(jù)庫嗎?連數(shù)據(jù)類型都不知道,我只能說不清楚,沒用過。
第三個問題:如果數(shù)據(jù)庫量很大,你怎么優(yōu)化?我的回答:做好索引,mysql語句優(yōu)化。
第四個問題:在工作中你做了哪些mysql語句優(yōu)化?我的回答:我用where in(id1,id2…)來做優(yōu)化。。。
其實where in那個是Laravel ORM預(yù)加載使用where in來解決N + 1問題(具體可以看Larave手冊),where in并不比left join效率高
最后聊了差不多20分鐘,就讓hr來問我一些問題,例如我對公司的印象等,應(yīng)該就是走走流程,接著就讓我回去等通知,當(dāng)然也就沒通知了。
基礎(chǔ)不過關(guān) -- 第二輪不過
第二家,深圳大學(xué)旁邊一家保險業(yè)務(wù)的公司,給了我最大的打擊。沒有筆試題,第一輪是一個差不多和我同齡的年輕小伙來面試,問的問題很簡單,基本都是網(wǎng)上那些面試題,比如tcp和udp的區(qū)別,三次握手,include/require的區(qū)別等,我基本都回答出來了。接著是一個頭發(fā)相對稀疏,經(jīng)驗應(yīng)該更加老道的人來面試我:
我的簡歷有提到一個JWT相關(guān)的知識,所以他讓我描述具體的東西,和session的區(qū)別等。項目時間有點久,我也就簡單的把jwt的東西跟他說,但是明顯不能滿足他,一直問到底層,那時候我就很慌了,更加想不起來了。
PHP這些框架是怎么實現(xiàn)文件自動加載的?我回答魔術(shù)方法__autoload和include,對方反問了一句再具體一點,還有沒有別的?我實在想不出
寫一個鏈表吧?不會。。。
其實有關(guān)JWT的問題,面試官應(yīng)該是沒用過,服務(wù)器這邊其實有一個私鑰Secret字符串用來簽名,從而達(dá)到前后加密解密驗證的效果
第二個問題應(yīng)該是還有一個spl_autoload_register可以用來注冊多個文件
第三個鏈表,后悔大學(xué)沒好好學(xué)數(shù)據(jù)結(jié)構(gòu),后續(xù)得補(bǔ)一補(bǔ)
最后面試官直接給結(jié)果:很抱歉,你的不適合我們公司,希望你之后多去補(bǔ)一補(bǔ)基礎(chǔ)知識,不要只停留在會用,要知道為什么可以這樣用。雖然打擊很大,但是也是這個面試讓我認(rèn)清自己,知道自己欠缺的知識面太多,基礎(chǔ)太差了。
還是很喜歡這種面試直接給面試結(jié)果的。
實踐不足,知識面太窄 -- 直接不過
第三家,面試官是大牛,之前和韓天峰大神一起做朋友網(wǎng)的,人很好,很親切。沒有筆試,沒有自我介紹,主要問我的工作經(jīng)歷,印象比較深的是:有沒有抓過包,用什么工具,對TCP的理解,有沒有用一些語言來實現(xiàn)TCP的過程。。。無奈自己真的沒實踐過,知識面太窄了,僅僅知道一點死記硬背的知識,聊了20分鐘,就走了,也沒結(jié)果了。
白高興的offer -- 幸運(yùn)過了
第四家,也是在江蘇,招聘網(wǎng)上看到的公司不小,有100-500人,但發(fā)offer卻是另外一家公司,網(wǎng)上查了一下貌似是子公司,有點外包性質(zhì)。沒有筆試,一個年輕的小伙子面試的我,主要問我一些有關(guān)Laravel的內(nèi)容,一般手冊上都有,我答的也不怎么完整。最后有個問題:你知道哪些設(shè)計模式,六大原則是什么?對設(shè)計模式我只停留在單例和工廠模式,六大原則也回答不完整。
最后很意外讓我過了,我想是公司急需人員。給的薪資也挺滿意,心想面試了那么多家終于有一家肯收留我了,也答應(yīng)了對方下一周就過去上班。第二天回公司第一件事就是找我們總監(jiān)要辭職,要一個星期后走,結(jié)果被告知要走一個月的交接流程,其實那時候我東西基本交接的差不多了,項目也不大,但是公司給的理由是,如果你沒有工作交接說明你平時沒做事,工作不飽和,會影響后續(xù)招人。直接把我整懵逼了,一方面我不敢提前裸辭,很多人都是互聯(lián)網(wǎng)寒冬,所以就等到拿了offer再提離職,這時候老東家行政放話一定要走一個月流程,新的公司又繼續(xù)一個星期后到崗,怎么都沒得商量。。。最后,我還是放棄那個offer,一方面想到這家公司有點外包性質(zhì),另一方面以子公司名字來發(fā)offer總讓我有點擔(dān)心,畢竟之前實習(xí)的時候,有一家以騰訊的名字來招聘,進(jìn)去后發(fā)現(xiàn)是騰訊汽車代理商。。。
結(jié)尾
以上便是三月份我面試過比較印象深刻的公司,基本都是被虐了,當(dāng)然無非都是自己沒有好好準(zhǔn)備,基礎(chǔ)不好的問題,導(dǎo)致浪費了很多機(jī)會。所以在此還是要告誡大家,如果下定決心要走人,要做好十足的準(zhǔn)備,這種準(zhǔn)備不應(yīng)該只是所謂的刷面試題,后續(xù)我會另外開一篇文章用來具體講述我在多次面試失敗后,如何花兩個星期做到——”有計劃, 高效率,優(yōu)簡歷“,最后成功拿到自己心儀的offer。
有計劃——如果規(guī)劃好每天的學(xué)習(xí)目標(biāo),主要有操作系統(tǒng),計算機(jī)網(wǎng)絡(luò),mysql等近10個方面知識
高效率——我會介紹我如何高效記住一些核心知識,盡可能覆蓋面試知識點
優(yōu)簡歷——面試是第一步,簡歷是最關(guān)鍵的,我會介紹我是如何優(yōu)化自己的簡歷
三月份投的簡歷應(yīng)該有上百家,反饋的十幾家,給面試的應(yīng)該就只有七八個吧,除了上面說的幾家其他的都是一些外包或創(chuàng)業(yè)公司,甚至有人找過我要我跟他們一起創(chuàng)業(yè),和一個前端實習(xí)生一起開發(fā)小程序(笑哭)??傊壳斑@種市場狀況不好,但是還是有機(jī)會拿到面試機(jī)會的,如果你剛畢業(yè),最好走校招,如果你和我一樣,一兩年工作經(jīng)驗,更應(yīng)該好好準(zhǔn)備,而不是埋怨環(huán)境不好,只想不做。當(dāng)然,一些985,211的大神就應(yīng)該找大廠或者考研,目標(biāo)更遠(yuǎn)大一點,我是比較考慮現(xiàn)實的人,目前我的實力和教育背景想要去大廠是很困難的,所以只能在條件不至于太差的中小型公司尋求成長。程序員更應(yīng)該用實際行動來證明自己,腳踏實地,不要眼高手低,這便是我的個人想法。