王老板的創(chuàng)業(yè)新公司剛剛?cè)谫Y一個(gè)億常空,公司新業(yè)務(wù)又得需要招人了,這次招市場最火語言Python開發(fā)工程師!
Let,s go? Python!
先介紹下我的情況:通信背景罪针,工作一年多不到兩年蕾殴。
之前一直在做C++的MFC軟件界面開發(fā)工作笑撞。公司為某不景氣的國企研究所。(喏钓觉,我的工作經(jīng)驗(yàn)很水:1是方向不對茴肥;2是行業(yè)有偏差)。
然后目前是在尋找python后端開發(fā)這一塊的工作荡灾,使用的框架為django瓤狐;
之前一直通過CSDN以及其他幾家技術(shù)博客/論壇吸收大家的經(jīng)驗(yàn)瞬铸,在感激之余,也想輸出點(diǎn)什么础锐,造福大家嗓节,因此就有了這篇水文,希望大家能夠多多吸取我的經(jīng)驗(yàn)教訓(xùn)皆警,早日找到一份自己滿意的工作拦宣!
面試的幾家:北京的兩家創(chuàng)業(yè)公司,規(guī)模均在40-50人之間信姓;果殼(止步于電話面鸵隧,拉鉤投的);知乎(止步于電話面意推,論壇發(fā)帖后的內(nèi)推)豆瘫;愛奇藝(拉鉤上投的);杭州的網(wǎng)易(同學(xué)內(nèi)推)菊值。
面試這一輪下來靡羡,最大的感受就一個(gè):平時(shí)一定要堅(jiān)持每天都碼點(diǎn)代碼。就算再爛的項(xiàng)目俊性,也要堅(jiān)持上傳github略步。。真的定页,只要你能堅(jiān)持一周有5天以上都能持續(xù)上傳Git趟薄,半年下來,面試官絕對對你刮目相看典徊。
其他感受:不同的公司著重點(diǎn)都不一樣杭煎,木桶原理,哪塊都不能少卒落。我就是因?yàn)槠綍r(shí)只關(guān)注做自己的小博客系統(tǒng)羡铲,而沒做其他的部分,導(dǎo)致愛奇藝倒在了手寫代碼上面…哎儡毕,憂傷也切。。平時(shí)多刷刷leetcode腰湾,看看劍指offer/面試金典雷恃,都是套路啊~~
面試這幾家公司所遇到的面試/筆試題,目前還能記住的如下费坊。雖然可能絕大部分都是基礎(chǔ)倒槐,但希望大家不要只是看看就過去了,最好還是假裝你被問到這個(gè)問題附井,你來把答案說出來或?qū)懗鰜恚海ú话垂痉至耍?/p>
Python語法以及其他基礎(chǔ)部分
1.手寫快排讨越;堆排两残;幾種常用排序的算法復(fù)雜度是多少;快排平均復(fù)雜度多少把跨,最壞情況如何優(yōu)化人弓;?
2.手寫:已知一個(gè)長度n的無序列表,元素均是數(shù)字节猿,要求把所有間隔為d的組合找出來票从,你寫的解法算法復(fù)雜度多少;?
3.手寫:一個(gè)列表A=[A1滨嘱,A2峰鄙,…,An],要求把列表中所有的組合情況打印出來太雨;?
4.手寫:用一行python寫出1+2+3+…+10**8 吟榴;?
5.手寫python:用遞歸的方式判斷字符串是否為回文;?
6.單向鏈表長度未知囊扳,如何判斷其中是否有環(huán)吩翻;?
7.單向鏈表如何使用快速排序算法進(jìn)行排序;?
8.手寫:一個(gè)長度n的無序數(shù)字元素列表锥咸,如何求中位數(shù)狭瞎,如何盡快的估算中位數(shù),你的算法復(fù)雜度是多少搏予;?
9.如何遍歷一個(gè)內(nèi)部未知的文件夾(兩種樹的優(yōu)先遍歷方式)
網(wǎng)絡(luò)基礎(chǔ)部分
1.TCP/IP分別在模型的哪一層熊锭;
2.socket長連接是什么意思;
3.select和epoll你了解么雪侥,區(qū)別在哪碗殷;
4.TCP UDP區(qū)別;三次握手四次揮手講一下速缨;
5.TIME_WAIT過多是因?yàn)槭裁矗?/p>
6.http一次連接的全過程:你來說下從用戶發(fā)起request——到用戶接收到response锌妻;
7.http連接方式。get和post的區(qū)別旬牲,你還了解其他的方式么仿粹;
8.restful你知道么;
9.狀態(tài)碼你知道多少引谜,比如200/403/404/504等等牍陌;
數(shù)據(jù)庫部分
1.MySQL鎖有幾種;死鎖是怎么產(chǎn)生的员咽;
2.為何,以及如何分區(qū)贮预、分表贝室;
3.MySQL的char varchar text的區(qū)別契讲;
4.了解join么,有幾種滑频,有何區(qū)別捡偏,A LEFT JOIN B,查詢的結(jié)果中峡迷,B沒有的那部分是如何顯示的(NULL)银伟;
5.索引類型有幾種,BTree索引和hash索引的區(qū)別(我沒答上來這倆在磁盤結(jié)構(gòu)上的區(qū)別)绘搞;
6.手寫:如何對查詢命令進(jìn)行優(yōu)化彤避;
7.NoSQL了解么,和關(guān)系數(shù)據(jù)庫的區(qū)別夯辖;redis有幾種常用存儲(chǔ)類型琉预;
Linux部分
1.講一下你常用的Linux/git命令和作用;
2.查看當(dāng)前進(jìn)程是用什么命令蒿褂,除了文件相關(guān)的操作外圆米,你平時(shí)還有什么操作命令;
(因?yàn)槲冶救薒inux本身就很水啄栓,只會(huì)基本的操作娄帖,所以這部分面試官也基本沒怎么問。昙楚。反正問了就大眼瞪小眼唄)
django項(xiàng)目部分
1.都是讓簡單的介紹下你在公司的項(xiàng)目近速,不管是不是后端相關(guān)的,主要是要體現(xiàn)出你干了什么桂肌;
2.你在項(xiàng)目中遇到最難的部分是什么数焊,你是怎么解決的;
3.你看過django的admin源碼么崎场;看過flask的源碼么佩耳;你如何理解開源;
4.MVC / MTV谭跨;
5.緩存怎么用干厚;
6.中間件是干嘛的;
7.CSRF是什么螃宙,django是如何避免的蛮瞄;XSS呢;
8.如果你來設(shè)計(jì)login谆扎,簡單的說一下思路挂捅;
9.session和cookie的聯(lián)系與區(qū)別;session為什么說是安全的堂湖;
10.uWSGI和Nginx的作用闲先;
(我發(fā)現(xiàn)基本不問django實(shí)現(xiàn)細(xì)節(jié)相關(guān)的東西状土。∷趴罚或者問也問的很少蒙谓,哎,之前準(zhǔn)備的方向完全錯(cuò)了)
洋洋灑灑寫了一個(gè)小時(shí)训桶,發(fā)現(xiàn)還是有很多細(xì)節(jié)問題都已經(jīng)忘了累驮。。哎舵揭,自己的筆記做的還是不行谤专。不過這些問題如果你能都答上來,起碼我覺得你應(yīng)該可以去試試面試初級web后端了琉朽,good luck!