⑴ 研究生找工作面試會問些什麼問題
1、知道自己要什麼
如果人的一生中所經歷的世界真的有像天堂一樣的地方,那麼大學一定是唯一的那個自由和寬容的天堂,大學可以充分包容你的任何想法,讓你可以盡情做自己想做的事情。但我覺得最困難的部分在於你不知道自己要什麼,這就會讓自己陷入迷茫,最終人雲亦雲,看著別人去讀研,你也要去保研或者出國讀研,看著別人找工作,你也准備找工作。當然,大部分人都是這么過來的,但我今天想說的是如何找到自己的位置,知道自己要什麼,並且有針對的去做准備,當我們畢業後回頭看自己的學生歲月時,少一些遺憾,多一些成就感。
說到未來的方向,無非是繼續深造或者畢業工作兩個選擇。我們從小學到大學,經歷這么長時間的學生生涯,我相信我們都會對自己的性格會有一個基本的判斷,如果覺得自己喜歡並且能夠靜下心來搞科研,善於挑戰自己,去發現問題和解決問題,那麼可以選擇繼續去深造,去讀一個PHD。如果覺得自己動手能力很強,並且對枯燥的科研論文毫無興趣,想做一些實際的事情,那麼就應該直接去工作。
在剛剛讀研一的時候,我發現自己對科研不是很感興趣,反倒覺得自己很喜歡敲代碼,做項目,很享受編程的過程,而且自己的英語很爛,跟那些本科就開始接觸科研的同學相比,我沒有任何優勢,因此研一就覺得自己畢業後應該去找一份工作。在知道自己想要什麼後,那麼未來的一切都變得明朗了。
2、准備好自己,培養核心競爭力
我始終相信天道酬勤,看書就會有看書的結果,編程就會有編程的結果。當我知道自己的目標是畢業直接工作後,我決定培養自己的工程方面的能力,為將來的工作做准備。
a)多動手寫代碼
在學校的時候,我在想如果我跟別人同時去找工作,我的優勢在哪裡,我的核心競爭力是什麼,後來我想到自己應該在研究生期間多做一些項目,多一些項目經驗,多培養自己動手的能力。因此讀研期間,我的工作確實也都是偏工程方面的,我積極參與了實驗室各種偏工程類的項目,不放過每一個提升自己動手能力的機會。在實際投入應用的系統方面,我參與了錦江集團財務管理系統的開發,以及復旦大學附屬兒科醫院網站的建設和維護。在研究型項目方面我參與了實驗室上海科委和國家863的兩個項目系統的開發。除此之外,我還會自己動手寫一些有意思的爬蟲程序、小網站和微信公眾號開發等項目。興趣是最好的老師,想要提升自己的編程能力無非是多動手,做一些自己感興趣的項目。
b)永遠保持學習的能力,多看技術類書籍
本科的時候除了上的專業課內容外,我看的技術類的書籍很少,因此除了計算機的基本理論知識,其他的編程相關知識了解的很少,而且掌握的內容都不成體系。所以我會要求自己多看一些技術書籍,了解最新的技術動態和趨勢。
我研一的時候因為某個項目的關系,接觸到Node.js技術,對這方面非常感興趣,我發現可以用JavaScript這一門語言就可以完成前後端的開發,這是件非常有意思的事情。因此我深入看了JavaScript相關的書籍,比如《JavaScript高級程序設計》、《JavaScript語言精粹》、《Node.js實戰》、《深入淺出Node.js》等等。並且正是因為深入了解JavaScript的關系讓我在工作面試中加分不少。當然我也看了一些其他的技術類書籍,如Linux系統編程相關以及網路協議相關的書籍,彌補了自己的一些知識面的欠缺。由於計算機專業的特殊性,新技術層出不窮,我們需要永遠保持自己學習的能力。擁有一個綜合全面的計算機知識背景會給自己的面試大大加分。
c)培養自己的表達能力
光練不說傻把式,有再好的產品,但是不會推銷也是沒有用的。良好的表達能力在任何時候都是非常重要的,要學會表現自己,讓別人了解你,看到你身上的閃光點,這樣別人才會認同你。很多時候知道是一回事兒,但能夠說出來讓別人聽懂又是另一回事兒,所以在學校的時候就要注意培養自己的表達能力。
我讀研期間,在課程大作業的匯報和實驗室討論班的技術與論文介紹時,都會努力的去准備PPT,在Presentation前反復的去思考整理整個Presentation的思路以及每個點表達的方式並反復的計時試講,通過這樣的方式我覺得自己做Presentation的能力以及口才都有了很大的提高。這些過程讓我在面對工作面試的時候,能夠准確的表達出自己想表達的思想,給面試官留下一個良好的印象。另外一個培養自己表達能力的方式就是寫技術博客,如果可以堅持寫原創技術博客不但是對自己所學知識的總結,同時也會對自己表達能力的提高大有裨益。
總之,在學校里不要放過任何一個可以鍛煉自己的機會,只有經歷更多的磨練,更多的准備,才能比別人成長的更快。
3. 如何找到理想的工作
a) 分析自己的優缺點,找准工作崗位
我16年3月份開始找實習的時候,一開始想找一個後台開發工程師的崗位,而自己比較熟的後台開發語言是C++,所以面試BAT基本都是面試C++的崗位。但是我的演算法能力一般並且已經很久沒有用C++去實實在在地寫一個項目了,與其他同學相比我沒有任何優勢,所以面試基本都折戟沉沙了,最終只拿到了騰訊閱文,Intel,ebay等公司的offer。
吸取實習的經驗教訓,我開始想我與別人相比,最大的優勢在哪裡,我的核心競爭力是什麼?我發現我最擅長的還是JavaScript語言,我研究生階段最大的技術積累就在JavaScript方面,而這一方面對應的崗位就是前端工程師,因此我找工作選擇的崗位主要就是前端工程師,並且針對這個崗位的技術要求做了相關的調研和准備工作。結果證明這樣選擇是正確的,最終拿到了BAT的幾個滿意的前端工程師的Offer。
綜上所述,大家在找工作時,由於每家公司在選擇面試崗位的時候只能選擇一個崗位,所以大家應該清楚自己的定位,了解自己的優勢在哪裡。比如你一直在寫Java很擅長Java,就可以去面阿里、愛奇藝等公司的Java工程師的崗位,如果你很擅長php,就可以去面騰訊和網路的PHP工程師的崗位。
b)多跟那些成功的師兄師姐(offer收割機)交流,了解差距在哪裡,爭取內推
對於一開始找找實習或工作的你,一定很迷茫,所以向那些成功的師兄師姐詢問經驗,打聽情況是必須的。你應當關注的內容是你所要面試的崗位要求是什麼,面試會涉及哪些方面的內容,然後針對自己的欠缺去突擊和彌補。大家也可以多去知乎,另外,特別是讓師兄師姐幫你內推,爭取內推面試機會,像BAT這一類公司,基本都會有內推的機會,內推的好處在於讓你有兩次面試機會,即使內推失敗了,還可以走正式的筆試面試流程。這一點非常重要,可以說內推占據了BAT校招的很大一部分名額,真正留給正常流程的名額有限。
c)關於找工作前的准備工作,多刷Leetcode
如果想找編程類的工作,刷題是必須的,無論是Google、微軟這樣的外企,還是BAT都非常重視面試者的演算法基本功。從我自己的面試經驗來看刷一遍Leetcode就夠了,如果時間不夠可以只刷Leetcode的easy和medium部分,面試中很多演算法問題都是Leetcode上的原題,或者能夠在Leetcode上找到類似的題目。
不同類型的公司對面試者的要求和側重點都不一樣,像Google和微軟這樣的外企,只要求演算法能力,筆試和面試基本都是演算法相關的內容,要求能夠快速的寫出解決問題的代碼,所以想去外企的同學刷題是最好的准備方式。同時,大家可以看一下演算法相關的書籍,如《劍指Offer》等等。
而像BAT這樣的國內公司在筆試中和面試的第一面中一般會涉及演算法問題,但對演算法的要求沒有外企高。如果大家想進BAT除了准備演算法外,還需要針對自己面試的崗位所用到編程語言做詳細的了解。比如面阿里的Java開發工程師的崗位,就需要了解Java語言的各種特性和框架,JVM一些機制以及Java性能調優的知識。在這里推薦牛客網,牛客網上有非常多的各個公司筆試和面試的經驗帖子,大家可以經常去看一看。另外,大家也可以經常去知乎上看看找工作相關的問答。總之,知己知彼,才能有備無患,拿到自己想要的Offer。
最近,我也從學弟學妹那看到阿里招聘團隊官方出版的書《技術之瞳》,是一本非常難得的求職准備指南,裡面涵蓋了多數技術類崗位的考察要點分析,如果大家有看到官方出的書請優先選擇,比各種野路子來的更接近一手信息,也可以讓大家少走彎路。
其次,我想說一下簡歷的製作。對於一個成功的面試來說,簡歷可能佔了百分之五十的功勞。面試官和HR在看到你本人之前最先看到的是簡歷,如果你的簡歷不夠突出,沒有亮點,面試官和HR連面你的興趣都沒有。所以如果簡歷做的很爛,你再優秀也是沒有什麼用的。
在准備面試前,做一份合格的簡歷應當參照以下原則:
1. 核心原則:突出自己的亮點
簡歷上的所有內容都需要去斟酌,是否可以表現你自己某方面很突出,很優秀。
2. 簡潔
簡歷上的內容不能突出你的亮點,那就去掉,比如我見有的同學寫主修課程,我覺得完全沒有必要,面試官不會care你學了哪些課程,只關心你的技術能力。
3. 圍繞一個中心
針對不同的崗位是應該調整自己的簡歷內容的,如果面試的是前端工程師,那麼就應該突出你當前擁有的前端工程師相關的項目經驗,突出你掌握的前端工程師相關的技能,圍繞一個中心點去寫簡歷。
4. 避免假大空
你簡歷上的內容應該都是你熟悉並且能夠脫口而出的,實際上面試官對你考察的內容基本都是你簡歷上出現的相關內容。所以如果你某一方面不是很熟悉,那就盡量不要寫到簡歷上。面試官主要關心的是你的某項技術掌握的深度,而不是廣度。
關於面試的技巧
首先,面試時是最重要的一點就是自信,任何時候都要自信地去應對面試官的提問,這會給面試官一個很好的印象。對於需要思考的問題,可以不用急著回答,跟面試官說明需要思考一會兒再回答,不要因為緊張隨便給一個答案,亂回答往往會造成面試撲街。
另外,對於確實不會的問題,不要打腫臉充胖子,可以明確的跟面試官說不確定,但是可以給一個自己思考後可能的答案,給出自己的想法。另外,如果確實不會,又沒有想法,可以往自己擅長的方面去引導面試官的提問,比如面試官問你HTTP的302狀態碼表示什麼意思,你可能不知道,但是你知道403和404狀態碼,這個時候你就可以回答你知道的內容,並且說一些自己熟悉的HTTP其他的相關內容。
⑵ BAT面試題28:python是如何進行內存管理的
Python的內存管理,一般從以下三個方面來說:
1)對象的引用計數機制(四增五減)
2)垃圾回收機制(手動自動,分代回收)
3)內存池機制(大m小p)
1)對象的引用計數機制
要保持追蹤內存中的對象,Python使用了引用計數這一簡單的技術。sys.getrefcount(a)可以查看a對象的引用計數,但是比正常計數大1,因為調用函數的時候傳入a,這會讓a的引用計數+1
2)垃圾回收機制
吃太多,總會變胖,Python也是這樣。當Python中的對象越來越多,它們將占據越來越大的內存。不過你不用太擔心Python的體形,它會在適當的時候「減肥」,啟動垃圾回收(garbage
collection),將沒用的對象清除
從基本原理上,當Python的某個對象的引用計數降為0時,說明沒有任何引用指向該對象,該對象就成為要被回收的垃圾了
比如某個新建對象,它被分配給某個引用,對象的引用計數變為1。如果引用被刪除,對象的引用計數為0,那麼該對象就可以被垃圾回收。
然而,減肥是個昂貴而費力的事情。垃圾回收時,Python不能進行其它的任務。頻繁的垃圾回收將大大降低Python的工作效率。如果內存中的對象不多,就沒有必要總啟動垃圾回收。
所以,Python只會在特定條件下,自動啟動垃圾回收。當Python運行時,會記錄其中分配對象(object
allocation)和取消分配對象(object deallocation)的次數。當兩者的差值高於某個閾值時,垃圾回收才會啟動。
我們可以通過gc模塊的get_threshold()方法,查看該閾值。
3)內存池機制
Python中有分為大內存和小內存:(256K為界限分大小內存)
1、大內存使用malloc進行分配
2、小內存使用內存池進行分配
python中的內存管理機制都有兩套實現,一套是針對小對象,就是大小小於256K時,pymalloc會在內存池中申請內存空間;當大於256K時,則會直接執行系統的malloc的行為來申請內存空間。
⑶ 30道2020年PHP面試題整理(附帶答案)
整理的一些面試題如有錯誤可評論區指出。
1. 使用過swoole嗎,怎麼設置心跳?
2. 如果訪問量達到100萬,選擇緩存,你會選擇redis還是memchache?選擇memchace,因為它只有一種類型,key-value,而redis的類型比memchace多,導致它的並發沒有memchace好。
3. psr2和psr4的區別?psr指的是php standards recommendation,意思是PHP標准建議。
psr2:編碼風格向導
psr4:自動載入。
4. mb_strlen和str_len的區別?
5. 下面會輸出什麼?
6. 使用二分法查找50出現的位置?
7. 將上面的數組進行翻轉,不使用內置函數?數組為:$arr = [1,3,5,12,34,45,50];
8. nginx負載均衡的演算法有round robin、weight、IP_hash、url_hash、fair等,解釋每種演算法。
9. 優化下面的代碼。
10. 實現一個單列模式。
11. 簡述一下觀察者模式。
12. 如何獲取請求頭的信息。
13. 高訪問量的網站優化策略包括硬體和軟體優化。
14. WebSocket原理。
15. Redis默認有16個庫。
16. Linux進程之間通信方式有管道、信號量、消息隊列、信號、共享內容和套接字。
17. Git合並分支的命令。
18. Laravel外面引入路由的步驟。
19. 使用redis隊列防止商品超賣。
20. 請求中使用隊列的場景。
21. 單引號和雙引號的區別。
22. 微信支付、支付寶回調在伺服器崩潰時的解決方法。
23. 輸入網址回車的過程。
24. PHP常見字元串處理函數和數組。
25. 資料庫優化策略包括表設計、欄位選擇、引擎選擇、SQL優化、減少資料庫訪問和硬體優化。
26. 減少資料庫訪問次數的原因。
27. require和include的區別。
28. PHP7和PHP5的區別。
29. 資料庫優化策略。
30. Laravel保存session的步驟。
如果您對PHP後端技術或PHP架構技術感興趣,可以加入官方群,群內有管理整理的知識體系、源碼和學習視頻等資料,免費領取。這門課程深度對標騰訊T3-T4標准,適合1-5年的PHP開發者進階中高級、架構師,為自己增值漲薪。加入BAT特訓營可獲得內推大廠名額以及GO語言學習許可權。