隨著互聯(lián)網(wǎng)的發(fā)展,python語(yǔ)言現(xiàn)在變得越來(lái)越火爆,Python程序員越來(lái)越受到大家的青睞!那么想進(jìn)入Python行業(yè),面試時(shí)需要注意些什么問(wèn)題呢?我們?cè)趨⒓覲ython開(kāi)發(fā)崗位面試的時(shí)候都要做哪些準(zhǔn)備?一般Python技術(shù)方面的面試會(huì)問(wèn)哪些問(wèn)題?
今天,我們從2位面試官的角度來(lái)看看,參加 Python 開(kāi)發(fā)崗面試需要做哪些準(zhǔn)備。
(一)
我之前在豆瓣負(fù)責(zé)過(guò)一段時(shí)間我們組的技術(shù)面試。由于現(xiàn)在不再去面試,可以爆一爆。
1. 我從來(lái)不問(wèn)google可獲得的答案的問(wèn)題, 只是問(wèn)問(wèn)面試者「在過(guò)去的工作中,遇到的Ta認(rèn)為較有成就感的一件事情是什么」和「如果出現(xiàn)了一個(gè)google不到的問(wèn)題,你會(huì)怎么解決」這樣的問(wèn)題。
2. 我從來(lái)不問(wèn)操作系統(tǒng)等和Python無(wú)關(guān)的話(huà)題,優(yōu)先是我不怎么問(wèn)和工作太無(wú)關(guān)的話(huà)題,有些東西用不到很多就被會(huì)遺忘,挑起來(lái)這種問(wèn)題其實(shí)挺無(wú)聊;其次我是非計(jì)算機(jī)專(zhuān)業(yè)畢業(yè),問(wèn)的東西說(shuō)不定我自己都沒(méi)有把握,那就不出來(lái)獻(xiàn)丑了。我只關(guān)注面試者的學(xué)習(xí)能力和解決問(wèn)題的方式,說(shuō)白了,是不是就是看他是不是「聰明的人」。
3. 不問(wèn)面試者的短處。我在自己被面試的時(shí)候有過(guò)這種精力,面試者問(wèn)他擅長(zhǎng)的內(nèi)容,我不一定搞的定,如果反過(guò)來(lái)面試Ta,我也會(huì)滅掉Ta。所以我會(huì)盡力尋找面試者的優(yōu)勢(shì)和優(yōu)點(diǎn),尤其是對(duì)方已經(jīng)明確承認(rèn)。其實(shí)很多經(jīng)驗(yàn)和能力,只是需要一個(gè)機(jī)會(huì)和環(huán)境,所以我不想放過(guò)任何一個(gè)合適的人。
4. 面試者不會(huì)Python也沒(méi)有關(guān)系。面試者的主動(dòng)性和學(xué)習(xí)能力覺(jué)得更重要,如果他在其他領(lǐng)域能證明做的不錯(cuò)或者能讓我感覺(jué)到這個(gè)一個(gè)未來(lái)有潛質(zhì)成為優(yōu)秀工程師的人,不會(huì)Python沒(méi)有關(guān)系。 嗯目前看來(lái),我沒(méi)有看錯(cuò)過(guò)。
5. 我從來(lái)不問(wèn)Python語(yǔ)法這種看書(shū)和google就能學(xué)會(huì)的問(wèn)題,我只想了解Ta是否愿意去學(xué)。舉個(gè)例子,我會(huì)讓面試者「講講日常開(kāi)發(fā)中都用到了那些Python內(nèi)置的模塊」,基本上說(shuō)完我就能評(píng)估出他的能力和風(fēng)格,繼而就是再問(wèn)一些問(wèn)題去驗(yàn)證我的評(píng)估是不是準(zhǔn)確。
6. 較后,我一般都會(huì)和面試者細(xì)聊一個(gè)Ta認(rèn)為在過(guò)去的工作或者自己開(kāi)源的項(xiàng)目中較熟悉的一個(gè),從項(xiàng)目設(shè)計(jì)、踩過(guò)的坑兒、開(kāi)發(fā)周期以及如何安排、如何確定需求、如何和其他人協(xié)作等方面,較后評(píng)估下Ta是否能很容易的融入到我們現(xiàn)在的團(tuán)隊(duì),大家是否可以接受Ta,對(duì)工作不負(fù)責(zé)的、沒(méi)有用心工作的、沒(méi)有團(tuán)隊(duì)意識(shí)的、溝通能力有缺陷的就放棄掉,對(duì)性格上容易發(fā)生沖突的、不適合團(tuán)隊(duì)合作的我就得考慮下,未來(lái)也會(huì)如實(shí)反饋給HR。
(二)
吃午飯的時(shí)候我就一直在想這個(gè)問(wèn)題,我覺(jué)得重點(diǎn)不是Python而是后端工程師,因?yàn)镻ython只是系統(tǒng)的一部分,linux基礎(chǔ)操作要熟吧,sql要懂吧,消息隊(duì)列要知道吧,git要熟悉吧。..。..木桶理論,每一環(huán)都不能落下,精通其中一兩環(huán)就更好了。
基礎(chǔ)功扎實(shí),新東西學(xué)得快,代碼寫(xiě)得溜,命令敲得順,bug解的好,媽媽再也不用擔(dān)心我天天加班了~~~
一。語(yǔ)言
1.推薦一本看過(guò)較好的python書(shū)籍? 拉開(kāi)話(huà)題好扯淡
2.談?wù)刾ython的裝飾器,迭代器,yield?
3.標(biāo)準(zhǔn)庫(kù)線(xiàn)程安全的隊(duì)列是哪一個(gè)?不安全的是哪一個(gè)?logging是線(xiàn)程安全的嗎?
4.python適合的場(chǎng)景有哪些?當(dāng)遇到計(jì)算密集型任務(wù)怎么辦?
5.python高并發(fā)解決方案?我希望聽(tīng)到twisted-》tornado-》gevent,能扯到golang,erlang更好
二。操作系統(tǒng)
可以直接認(rèn)為是linux,畢竟搞后端的多數(shù)是和linux打交道。
1.tcp/udp的區(qū)別?tcp粘包是怎么回事,如何處理?udp有粘包嗎?
2.time_wait是什么情況?出現(xiàn)過(guò)多的close_wait可能是什么原因?
3.epoll,select的區(qū)別?邊緣觸發(fā),水平觸發(fā)區(qū)別?
三。存儲(chǔ)
存儲(chǔ)可能包含rdbms,nosql以及緩存等,我以mysql,redis舉例
mysql相關(guān)
1.談?wù)刴ysql字符集和排序規(guī)則?
2.varchar與char的區(qū)別是什么?大小限制?utf8字符集下varchar較多能存多少個(gè)字符
3.primary key和unique的區(qū)別?
4.外鍵有什么用,是否該用外鍵?外鍵一定需要索引嗎?
5.myisam與innodb的區(qū)別?innodb的兩階段鎖定協(xié)議是什么情況?
6.索引有什么用,大致原理是什么?設(shè)計(jì)索引有什么注意點(diǎn)?
redis相關(guān)
1.什么場(chǎng)景用redis,為什么mysql不適合?
2.談?wù)剅edis的事務(wù)?用事務(wù)模擬原子+1操作?原子操作還有其它解決方案嗎?
3.redis內(nèi)存滿(mǎn)了會(huì)怎么樣?
四。安全
web安全相關(guān)
1.sql注入是怎么產(chǎn)生的,如何防止?
2.xss如何預(yù)防?htmlescape后能否避免xss?
3.csrf是什么?django是如何防范的?
密碼技術(shù)
1.什么是分組加密?加密模式有哪些?ecb和cbc模式有什么區(qū)別?為什么需要iv向量?
2.簡(jiǎn)單說(shuō)說(shuō)https的過(guò)程?
3.對(duì)稱(chēng)加密與非對(duì)稱(chēng)加密區(qū)別?
3.如何生成共享秘鑰? 如何防范中間人攻擊?
五。雜
是否關(guān)注新技術(shù)???golang,rust是否了解?numpy,pandas是啥鳥(niǎo)?
是否緊跟時(shí)代潮流?逛不逛微博,刷不刷知乎?
可能你覺(jué)得我問(wèn)的好細(xì),但這好多都是平常經(jīng)常遇到,并需要解決的,細(xì)節(jié)更能體現(xiàn)一個(gè)人。
有人說(shuō)好簡(jiǎn)單,有人說(shuō)好難,其實(shí)我覺(jué)得這只適合面試2~3年工作經(jīng)驗(yàn)的后端工程師。真的沒(méi)有問(wèn)很難的題目,只是可能你平時(shí)沒(méi)有注意。
在這里我推薦幾本書(shū)吧
《python參考手冊(cè)》,絕對(duì)讓你更上一層樓
《圖解密碼技術(shù)》,密碼入門(mén)不二之選
《mysql技術(shù)內(nèi)幕第五版》,有點(diǎn)厚當(dāng)手冊(cè)讀讀,要有耐心
為什么大家的意見(jiàn)有這么大差異?我想是個(gè)人經(jīng)歷不一樣吧,如果是搞web的對(duì)操作系統(tǒng)這塊和密碼技術(shù)會(huì)偏弱,但如果是系統(tǒng)工程師或是游戲服務(wù)端這塊會(huì)明顯偏強(qiáng)。
-
工程師
+關(guān)注
關(guān)注
59文章
1565瀏覽量
68406 -
python
+關(guān)注
關(guān)注
55文章
4767瀏覽量
84375
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論