博主雙非渣本計算機軟件大三狗一枚,眼看着春招就要結束了,現將自己所經歷的的整個春招做一個個人總結。
首先就是關於投遞計划,博主自己整理了一份各大公司的春招信息,包括網申地址,開始時間,結束時間,以及自己的求職狀況,附圖如下:
由圖可以看出,博主的求職歷程有多么的艱辛(其他還有一些直接簡歷就被篩掉的我就不附圖了。。。),在春招剛開始,博主根據自己安排的計划表一家一家公司的投遞簡歷(簡歷在寒假時已經做好),根據不同的公司對於簡歷也要進行不同的修改,爭取做到一家公司一份簡歷,給每家公司投遞的簡歷都不同。可能是由於博主在簡歷中寫的項目經歷的內容還可以,所以簡歷只是被一部分公司給篩掉了,還有一部分公司還是讓博主進入到了筆試環節。
筆試環節,在這個環節上,博主也是十分感慨的,因為雖然簡歷通過的公司不少,但是在筆試上感覺自己掉進了一個大坑。。一共投了二十幾家公司,簡歷通過的有大概十幾家,然后,筆試基本上就全軍覆沒了o(╥﹏╥)o。到最后博主接到面試通知的只有三家,百度,360,京東。關於筆試的具體內容,博主簡單說一下,各個公司的筆試題題型大多數都差不多,一般都是10-20道選擇題,2-3道編程題,當然如果是頂尖公司的話,他們的筆試會有很多內容,包括數學能力測試,邏輯能力測試,性格測評等等,也有比較令人“難忘”的公司的筆試題,比如字節跳動(今日頭條),頭條的筆試題十分豪爽,上來就甩到我臉上五道編程題,一道20分,剛拿到題的時候,我的內心是崩潰的。博主算法能力不是很強,五道編程題,最后只做出來一道,令我尷尬的是其余四道中還有兩道題看不懂題o(╥﹏╥)o。。。故,卒。不提傷心事,在做好總結的同時,我詳細說下我接下來的面試過程。
激動人心的面試環節。接到這三家的面試邀請的時間順序,先是京東,4月9日的筆試通過后,接到4月13日在上海的現場面試,接到通知時已經是12日,博主身處異地,無法趕到現場對此很遺憾,但又不想錯過這次機會,就嘗試性的給京東的面試通知郵件發了一封回復,告知本人十分想參加面試但無法按時到達,可不可以轉為視頻或電面,然后那邊在傍晚的時候給我發來郵件,說我的請求已經轉發至面試官,具體是否可以視頻或電面請等待面試官通知。在13日上午,我收到了面試官的電話,告知下午兩點半進行電面。這是我第一次電面,十分激動,一邊等待一邊進行着復習,面試具體細節情節就不再贅述,這里只把面試問題列出,供大家參考。
京東-PHP開發工程師-實習-一面
1.自我介紹
2.介紹項目,訪問量,數據庫表有多大
3.數組和鏈表的區別:
數組靜態分配內存,鏈表動態分配內存;數組在內存中連續,鏈表不連續;數組元素在棧區,鏈表元素在堆區;數組利用下標定位,時間復雜度為O(1),鏈表定位元素時間復雜度O(n);數組插入或刪除元素的時間復雜度O(n),鏈表的時間復雜度O(1)。
4.實現單鏈表的查詢,找出重復元素
這道題博主當時因緊張過度,答得很爛,只回答出了暴力遍歷的方法,優化沒想到。
暴力方法,鏈表依次遍歷,每當讀取一個值,讓他與前面的值進行比較,看是否重復,時間復雜度為n的平方。改進:使用hash表實現,時間復雜度為n,
5.簡述hash表
是根據鍵值對直接進行訪問的數據結構,可以提供快速的插入操作和查找操作
6.http請求碼
401:請求需要認證 403:訪問請求被拒絕 404:找不到頁面 301:請求重定向,永久性
7.tcp/udp區別
博主答的:TCP面向連接,UDP無連接;TCP可靠,UDP不可靠;TCP傳遞字節流,UDP傳遞報文段;TCP適用於安全性較高如郵件傳輸,文件傳輸,UDP適用於速度較快如語音視頻等。
8.簡述tcp三次握手
這個博主感覺自己回答的也很爛,印象中自己說的是第一次握手客戶端向服務端發送一個請求,第二次握手服務端向客戶端發送一個請求,第三次握手客戶端向服務端發送一個請求。。。。
博主后來查資料找到的自認為完美的答案:
客戶端–發送帶有SYN標志的數據包–一次握手–服務端(此時服務端確認了客戶端可以發送東西,確認了自己可以接收東西)
服務端–發送帶有SYN/ACK標志的數據包–二次握手–客戶端(此時客戶端確認了自己可以發送以及接收,服務端可以發送以及接收東西)
客戶端–發送帶有帶有ACK標志的數據包–三次握手–服務端(此時服務端也確認了客戶端可以發送以及接收,自己可以發送以及接收,連接建立)
也就是說,TCP三次握手的實質就是客戶端以及服務端分別確認雙方發送以及接收正常,然后連接建立。(有沒有感覺瞬間思路清晰了呢?)
9.數據庫索引是什么?索引和主鍵的區別
博主答的依舊很爛。。
正解:一個索引是存儲的表中一個特定列的值數據結構。
索引和主鍵的區別:1:主鍵是為了標識數據庫記錄唯一性,不允許記錄重復,且鍵值不能為空,主鍵也是一個特殊索引.2:數據表中只允許有一個主鍵,但是可以有多個索引.3.使用主鍵會數據庫會自動創建主索引,也可以在非主鍵上創建索引,方便查詢效率.
10.使用sql語句實現對一張表的去重總數查詢(表中有兩個字段,id和name,name可重復)
博主的心都是碎的,“mysql了解吧?”,“了解”,“說一下去重查詢吧”,“......”
正解:Select count(distinct name) from 表名
接下來的問題就比較常規了。
11.平常如何學習?
12.了解過最新的前沿技術?了解過深度學習?
13.知道設計模式嗎?設計模式的優點
設計模式(Design pattern):是針對設計問題的通用解決方案。使用設計模式:可以把它應用到特定的應用中,用於解決相似的問題。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。
就這樣,博主人生中的第一次電面就結束了,結束前人家問我還有什么問題嗎?我好死不死的問了一句,您覺得我表現怎么樣,能通過這輪面試嗎?答:還不算太差,至於結果等通知。當然,結果不用等博主也已經猜到了。至此,我的京東PHP實習生求職道路涼涼。
經過了這次面試(雖然只是一面),我深刻意識到了自己的不足,尤其是在基礎知識方面的不足,有些東西自己知道,但是說不出來,還有些東西自己根本就不知道o(╥﹏╥)o......於是決定發憤圖強,在接下來好好表現。360的筆試是在3月31日的,博主在4月12日收到了自己筆試通過的喜訊,並被告知將在4月25日進行遠程視頻面試(時間間隔確實有點長,不過也讓自己有了充足的准備時間),在等待360面試的過程中,博主迎來了百度的面試邀請。百度的效率還是沒的說的,博主4月18日筆試,4月20日被告知筆試通過,參加4月21日的遠程視頻面試(比360的都早。。),在經過了精心的准備后,博主上戰場了。由於那幾天時間倉促,沒有來得及做記錄,所以博主能想到什么問題就記錄下來,想不到的也沒辦法了。
百度-測試開發工程師-實習-一面
1.自我介紹
2.項目介紹
3.挑一個項目里的功能簡單說一下,如何實現,遇到什么困難
4.手擼快排
當時博主腦子抽了,硬生生沒寫出來,當時想扇自己臉(之后的幾天每天都手擼兩遍)。
5.進程與線程的區別
6.兩張表,a表有name,addr字段,b表有name,grade字段,addr字段是地址,如北京市海淀區,焦作市山陽區,grade是分數,現在給定一個區域,如 山陽區,用sql語句查找出符合要求的學生及其分數,以及各分數段的學生人數,60-70,70-80...
這道題博主答的也不好,語句使用不夠熟練
正解:select b.`name`,b.grade from b left join a on b.name=a.name where a.addr like '%山陽區%'; select count(*) from b where b.grade between 60 and 70;
7.OSI七層協議(答出來了五個。。)
8.Cookie和Session區別
9.Linux基本命令(如何查看進程,如何查看一個進程的cpu占用率)
基本命令回答的還算可以,查看一個進程的cpu占用率當時不會,后來查資料發現可以先ps找到進程號,再top -p id來查看
10.使用過哪些PHP擴展
MySQL,Mysqli,PDO,JSON,PHP_ZIP,MEMCACHE
11.PHP支持多繼承嗎?為何?
正解:不支持,一個子類只能繼承一個父類,如果想要實現多繼承,可以使用接口實現。
12.垃圾回收機制
zval容器的知識,不多說。
13.require和include區別,和_once的區別
正解:Require讀取先讀取,include放在哪在哪讀;Require無返回值,include有返回值;錯誤處理方式不同,include出錯會報一個警告,程序繼續執行,Require出錯會報一個致命錯誤,程序終止。
_once指只執行一次。
14.思維邏輯題
題目:兩根長度粗細不均勻的香,燒完都是一個小時,如何判斷15分鍾這個節點?
博主剛聽到這道題的時候是一臉懵逼的,第一次遇到還會有這種類型的問題,然后腦子沒轉過來彎,想不出,面試官小姐姐給我提示,從兩端燒,我才領悟過來。
答案:一根香從兩端燒,另一根一端燒(同時開始),當第一根燒完時,第二根剩下30分鍾,此時記下這個時間節點,把第二根的另一端點燃,最后燒完的時間就是十五分鍾。
博主記起來的大概就這么多,當時自我感覺答的也不是很好,不過比京東一面時候要強,等待了一會發現對面沒有再次發起視頻邀請,以為自己涼了,正打算收拾書包去上課(當時逃了課在寢室面試),二面邀請發過來了(幸虧沒走早)。
百度-測試開發工程師-實習-二面
1.自我介紹
2.項目介紹
3.挑一個印象深刻的功能說一下
4.項目中遇到高並發問題如何解決
5.使用Mysql,如何優化?
答:之前針對這類問題,博主有好好整理自己的解決思路,所以感覺回答的還算可以。答:
選取最適用的字段屬性:極可能縮小類型大小,比如郵編,定義為char(6)即可,不必太大,比如開關之類的字段定義tinyint長度設為1就行;
在可能的情況下把字段盡量不要設置為null,減少查詢時需要比較null值;
使用join來代替子查詢;
對用於join where判斷和order by的字段建立索引,盡量不對那種大量重復的字段建立索引,比如性別。
6.當一張表中的數據足夠多時,如何優化?
這條博主沒有回答上來,直接說的不清楚,沒有了解過,面試官很友善的跟我說可以下去了解下。之后了解到使用分表。
7.思維邏輯題
題目:給你一個3L的杯子和5L的杯子,如何倒出4L的水?
這是博主遇到的第二道邏輯題,因為有了一次的經驗,所以很快就想出了解決方案:將5L倒滿,用5L往3L倒滿(此時5L剩2L),將3L杯子水倒掉,將5L中剩余的2L水倒入3L中,將5L倒滿(此時3L杯中有2L水),用5L向3L倒把3L倒滿,5L杯子內的水就是4L。我說完面試官又問我如果反過來倒呢?這個其實也簡單,大家可以思考一下。
自我感覺二面很不錯,面試官也很和藹,聊的很開心,二面通過。
百度-測試開發工程師-實習-三面(HR面)
激動!到了三面能不激動嗎?
1.自我介紹
2.項目介紹
3.兩個有序數組的合並
4.對上面那個函數進行測試
5.對一只圓珠筆進行測試
6.給兩部相同手機,在100層樓中,如何操作可以判斷手機會摔碎的最低樓層?
7.個人學習能力如何?舉個直接的例子
8.身為班長,如何處理班內事務
9.你覺得你和其他人相比你的優勢是什么?
10.除了我們公司有沒有投遞其他公司?
大概問的問題就這么多,之后就是對我實習時長的詢問,以及問我有什么問題,然后,就沒有然后了,等結果!
在我看來,等待才是最煎熬的,尤其是博主在面試時忘記詢問結果什么時候會通知,導致一天登錄三次百度的個人招聘中心,看着那個大大的“安排面試中”,心里糾結的要死,以為很快能得到的結果,卻一直沒有消息,來到了4月24日的晚上,當時博主心里已經放下了,不論成不成,還是要復習面對25日上午的360的面試的,就在博主專心致志看緩存相關的知識的時候,北京打來電話,HR告知我三面通過,兩天內會給我發來電子offer,瞬間感覺自己滿血復活了,淚流滿面〒▽〒,我容易嗎(不過在面試過程中踩的坑,不會的題,還是要怪自己在大學三年以來沒有好好學,因為是實習面試,所以綜合來看各個公司的面試問的問題也都是最基礎的問題,並沒有過難的問題,不會?那就是自己沒有學好的原因了。)。興奮歸興奮,還是要好好准備明天的面試,讓室友上課幫我請好假,專心復習。
360-PHP開發工程師-實習-一面
1.自我介紹
2.項目介紹
3.項目功能具體介紹
4.項目遇到的難點
5.通過項目提高了什么
360的一面給我的感覺看似簡單,沒有問過多的基礎性的問題,但全程都在圍繞着自己做的項目展開,問的特別細,甚至當博主在回答自己遇到的困難,自己如何解決的時候,面試官還會提出自己的疑問,“這個知識點不是應該怎么怎么樣嗎?”,然后又跟上一句,“不過你作為實習生來說,做到這個程度也還算不錯了”,嚇得博主一身冷汗,一面過。
360-PHP開發工程師-實習-二面
1.自我介紹
2.項目介紹
3.簡述你了解的網絡協議
4.有使用到緩存嗎
5.有做過單元測試嗎
6.對我們部門有什么想問的么
二面自我感覺還是很順利的,和面試官聊的很嗨,最后他還給了我一些接下來學習方向性的建議(針對我投的這個職位),人很好。二面過。
360-PHP開發工程師-實習-三面(HR面)
1.自我介紹
2.項目介紹
3.自己和他人比有什么優勢
4.學習能力如何
5.有沒有投其他公司
6.你對於你們學校的計算機相關專業的課程怎么看?
7.對於我們還有什么問題嗎?
三面HR小姐姐人也很好,360的三次面試給我的整體感覺就是很和藹,很友好,在視頻面試結束沒多久,他們那邊就打過來電話,告知我三面都過了,等待通知吧。我在這里想說明一點,大家可能覺得360的面試過於簡單,其實不然,首先,他們對於項目的挖掘很深,其次,我投遞的部門並不屬於360的核心部門,因此面試可能會相對來說容易一些,如果是360的核心部門,比如安全,比如搜索,面試的難度將會大大的提升(博主當初投遞時懵懂無知,並沒有考慮到部門的因素,大家投簡歷如果條件允許,一定要先考慮部門怎么樣。)。
至此,博主的春招實習求職歷程算是告一段落了,當然,如果有機會,博主還會繼續投遞簡歷,畢竟各個公司的面試不同,多面可以提升自己的經驗,讓自己在秋招的時候總不至於什么都不知道,有了這些寶貴的經驗, 相信大家在秋招時一定能斬獲更多的offer,一起朝着夢想加油!(若還有公司的面試經驗,博主會繼續更新。)
