首頁  >  文章  >  2年php開發工作經驗,跳槽之後面試20餘家公司的總結

2年php開發工作經驗,跳槽之後面試20餘家公司的總結

-
-原創
2018-02-28 19:15:239733瀏覽

最近換了一家公司,從三月底開始面,面到四月底,面了有快二十家公司。我是一個喜歡總結經驗的人,每經過一場面試,我在回來的路上都會仔細回想今天哪些問題可以答的更好,或者哪些問題是自己之前沒遇到過的,或者是哪個知識點今天又問了等等。四月中旬的時候,我就在構思要寫一篇面經,主要是想著可能對那些跟我相同處境的人有點幫助,再者就是稍微記錄下這為期一個月的面試過程。 

個人介紹: 

先介紹下我面試時的自身條件狀況,我把自己的狀況分成優點和缺點可能更有利於你們比較自身狀況。 

劣勢: 

1.15年7月畢業後開始到上海工作,面試的時候是17年3月到4月,一年多的經驗,勉強算兩年經驗。分析:一年多經驗我認為是比較尷尬的,處於一個不上不下的位置,很多公司比較喜歡招三年經驗的,或者直接招應屆生來培養。 


2.畢業於一個非985/211,勉強就讀一所的大學。分析:這個相對影響較小,因為有工作經驗後,公司對學校的要求就沒那麼高了,只要是本科就基本沒問題,但是還是有個別叼毛公司只要985/211。


3.前一家公司是傳統電信業,加入專案組時,專案已經上線有一段時間了,我們的任務就是有需求就開發,有bug就優化,其他時間就聊騷,各幹各的,工作一年多跟在養老一樣,用一句話說就是編程5分鐘,扯淡2小時,專案經驗嚴重不足,沒開發過很難的需求。分析:這一點是最傷的,公司招有經驗的就想看你都乾了些什麼牛批的東西,結果你告訴面試官我寫的需求都是垃圾。


優勢: 


1.大學時拿過比較多的獎,每年都是校級優秀學生,畢業時是市級優秀畢業生,拿過省ACM二等獎等。分析:大學的榮譽對一個有工作經驗的人來說,公司不一定會看重,但是可能會對面試官產生微妙的影響,特別是ACM獎,我碰到過有的面試官也是搞過ACM的,有共同的話題聊起來總是比較容易的,但是也要注意不能把這一欄篇幅寫的過於多,只能當作點綴用,我當時是放在簡歷最後一欄,簡要的寫了最主要的幾個獎。 


2.良好的溝通與溝通能力。分析:這個能力不會是關鍵性的,但是可以加分。 


3.強大的學習能力與邏輯思考能力。分析:有些公司和麵試官還是比較看重一個人的學習能力的,經驗代表著你現在在什麼級別,而學習能力則代表著你將來能到達什麼級別。 


學習過程:

看了我的優劣勢介紹,你會發現我的優勢相對於我的劣勢來說,簡直不值一提。我自己對此也有清晰的認識,因此從過完年之後,我就開始抓緊空閒時間學習。學習的過程如下: 


1.看面試題 
正常人第一步一定都會看面試題,我也不例外,在看的過程中,我發現有些文章寫的不錯,對我幫助不小值得推薦 


2.深入學習 
在看面試題的過程,你會遇到一些自己沒接觸過的或者以前沒深入學習過的知識,例如最常問的HashMap內部實作原理,這就促使你得開始去看jdk的源碼或是學習一些新的東西。看源碼是很重要的一步,起步很難,但是會讓你收益良多,看源碼的過程如果碰到無法理解的地方,可以百度看下別人的理解。在我學習原始碼的過程中,看過幾個人的關於源碼的文章寫的很不錯 


#3.熟悉專案 
找出自己工作以來開發過的最叼的功能,將整個功能的流程和涉及的東西吃透。項目是面試中必問的環節,一般是以一個功能點為基礎展開問,因此你必須對這個功能有很深的認識,不能有模糊的地方。如果有時間,能把牽涉到的知識點也搞得最好。


4.做面試題 
有不少公司是有面試的,如果你沒有準備過,很容易在各種小地方犯錯,建議去一些面試題網站多做些題目,我自己是用的牛客網。


5.學習記錄 
把自己每天的學習時間和學習內容記錄下來,可以讓自己更有動力的學習,學習是一個枯燥的過程,你必須讓自己時時保持有動力。 


投稿、約面試環節

1.在哪些網站投下? 
拉勾網、BOSS直聘、獵聘網。 

2.是否該海投? 
投履歷分為兩個情況。 
1)沒有社招面試經驗:建議採取海投的方式,只要職位要求跟自己比較配對都可以投,累計面試經驗。這個環節可以把投履歷的網站增加兩家:智聯和無憂。 
2)自認社招面試經驗已經足夠:投那些職位匹配、公司滿意的職位。公司評價可以去看準網、百度、知乎等查詢。 


3.一天約幾家面試適合? 
最理想的情況為2家面試,上午通常在10點左右,下午通常在2點左右。建議把理想的公司放下午,因為下午的時間比較充足,可以讓公司更充分的了解你。我開始面的時候,每次都是上午面的不好,下午面的不錯。 


4.投稿經常沒下文?
我當初也沒想到履歷篩選這關有這麼難,可能是我的履歷確實亮點不多,再者HR很多都不是行內人,因此他們看得最直接的就是你上家的公司和你畢業的​​學校,如果你不是從牛逼的公司/學校出來,可能會碰到跟我一樣的狀況,應對的辦法就是多投。 


5.是否該裸詞? 
我一開始是邊上班邊投,然後利用調休時間,或是請假去面試。後來,面試機會越來越多,請假太頻繁了,我自己都不好意思了,自己也已經有足夠的信心,這個時候我選擇了裸辭。裸辭還有一個原因是,在面試過程中你會發現,有的公司要人要的緊,如果你的辭職流程過長可能會導致你錯過這個公司。 


6.注意事項 
1)面試前一天把路線和時間算好,最好不要遲到。 
2)背個書包,帶好履歷、行動電源、紙巾、雨傘。 


面試環節

1.筆試常見的問題? 
面試常見的問題上面給的面試題連結基本上都有。我只提幾點:1)寫SQL:寫SQL很常檢視group by、內連結和外連結。 2)手寫程式碼:手寫程式碼一般測驗單例、排序、執行緒、消費者生產者。我建議排序演算法除了冒泡排序,最好還能手寫一種其他的排序程式碼。試想:如果一般面試者都寫的冒泡排序,而你寫的是快速排序/堆排序,肯定能給面試官留下不錯的印象。 


2.面試流程?


1)讓你自我介紹 
2)問Java基礎 
#3)問項目 
4)情境問題,例如:你的一個功能上了生產環境後,伺服器壓力驟增,該怎麼檢驗。 
5)你有什麼想問面試官的 

3.面試常問的知識點? 


1)集合相關問題(必問): 
HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底層實作。 
HashMap和Hashtable的差別。 
ArrayList、LinkedList、Vector的差別。 
HashMap和ConcurrentHashMap的差異。 
HashMap和LinkedHashMap的差別。 
HashMap是線程安全的嗎。 
ConcurrentHashMap是怎麼實現線程安全的。 

2)執行緒相關問題(必問): 
#建立執行緒的3種方式。 
什麼是執行緒安全。 
Runnable介面和Callable介面的差別。 
wait方法和sleep方法的差別。 
synchronized、Lock、ReentrantLock、ReadWriteLock。 
介紹下CAS(無鎖定技術)。 
什麼是ThreadLocal。 
建立執行緒池的4種方式。 
ThreadPoolExecutor的內部運作原理。 
分散式環境下,怎麼保證執行緒安全。 
想要朝這方面發展或真心有興趣的。可以找我要一些基礎的學習視頻,Q號碼:3300863615,這個是免費的,希望同學找我要的時候不要有理所應當的態度,畢竟都是我的心血,希望你是真的有一顆想要學好java的心,我也會盡所能的去幫助你成為一個優秀的程式設計師。

 

3)JVM相關問題: 
介紹下垃圾收集機制(何時,對什麼,做了什麼)。 
垃圾收集有哪些演算法,各自的特色。 
類別載入的過程。 雙親委派模型。 
有哪些類別載入器。 
能不能自己寫一個類別叫java.lang.String。

 

4)設計模式相關問題(必問): 
先問你熟悉哪些設計模式,然後再具體問你某個設計模式具體實現和相關擴展問題。 

5)資料庫相關問題,針對Mysql(必問): 
給題目讓你手寫SQL。 
有沒有SQL最佳化經驗。 
Mysql索引的資料結構。 
SQL怎麼進行最佳化。 
SQL關鍵字的執行順序。 
有哪幾種索引。 
何時該(不該)建立索引。 
Explain包含哪些欄位。 
Explain的Type欄位有哪幾種值。 

6)框架相關問題: 
Hibernate和Mybatis的差異。 
Spring MVC和Struts2的差別。 
Spring用了哪些設計模式。 
Spring中AOP主要用來做什麼。 
Spring注入bean的方式。 
什麼是IOC,什麼是依賴注入。 
Spring是單例還是多例,怎麼修改。 
Spring事務隔離等級和傳播性。 
介紹下Mybatis/Hibernate的快取機制。 
Mybatis的mapper檔案中#和$的差異。 
Mybatis的mapper檔案中resultType和resultMap的差別。 
Mybatis中DAO層介面沒有寫實作類,Mapper中的方法和DAO介面方法是怎麼綁定到一起的,其內部是怎麼實現的。 

7)其他遇到問題: 
介紹下堆疊和佇列。 
IO和NIO的差別。 
介面和抽象類別的區別。 
int和Integer的自動拆箱/裝箱相關問題。 常量池相關問題。 
==和equals的差別。 
重載和重寫的差異。 
String和StringBuilder、StringBuffer的差別。 
靜態變數、實例變數、局部變數執行緒安全嗎,為什麼。 try、catch、finally都有return語句時執行哪一個。 
介紹下B樹、二元樹。 
ajax的4個字母分別是什麼意思。 
xml全名是什麼。 
分散式鎖定的實作。 
分散式session儲存解決方案。 
常用的linux指令。 


一些經驗:

1.先投一些普通公司,等面出了心得再去投理想的公司。 
2.不熟悉的技術不要主動提。 
3.對於那種實習期6個月還打8折的公司,除非你沒有其他選擇了,否則不要去。 
4.小公司喜歡在薪水上壓你,開的時候適當提高。 
5.不要去參加招聘會,純粹是浪費時間。 
6.把麵試當作一次技術的交流,不要太在意是否能被錄取。 如果你正在找工作或剛學校出來,又或者已經工作但是經常覺得難點很多,覺得自己java方面學的不夠精想要繼續學習的,想轉行怕學不會的,可以加Q3300863615 了解諮詢java繼續學習。更有免費影片等你來領取。 
7.公司一般面完就決定是否要錄取了,讓你回去等消息這種情況一般沒戲,無論你自己覺得面的有多好。 
8.盡量少通過電話面試,效果不好。 
9.在面試的日子裡,要維持每天學習,無論是學習新事物或複習舊東西。 
10.拿到offer了,問問自己這家公司讓自己100%滿意了嗎,如果不是,請繼續努力找更好的。 
11.透過面試官可以大概判斷這家公司的狀況。 
12.拉勾投的履歷很多會被篩掉,但拉勾還是面試機會的最主要來源。 
13.理想的公司可以多投幾次,我有好幾次都是第一次投被篩掉,多投幾次就過的經驗。 
14.問到自己有深入研究過的知識,把握機會好好表現,不要輕易放過。 

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn