歡迎光臨
每天分享高質量文章

Python web後端開發工程師的面試總結

面試的幾家:北京的兩家創業公司,規模均在40-50人之間;果殼(止步於電話面,拉鉤投的);知乎(止步於電話面,論壇發帖後的內推);愛奇藝(拉鉤上投的);杭州的網易(同學內推)。

面試這一輪下來,最大的感受就一個:平時一定要堅持每天都碼點程式碼。就算再爛的專案,也要堅持上傳github……真的,只要你能堅持一週有5天以上都能持續上傳Git,半年下來,面試官絕對對你刮目相看。

我就是因為平時只關註做自己的小部落格系統,而沒做其他的部分,導致愛奇藝倒在了手寫程式碼上面……哎,憂傷……平時多刷刷leetcode,看看劍指offer/面試金典,都是套路啊~~

面試這幾家公司所遇到的面試/筆試題,目前還能記住的如下。雖然可能絕大部分都是基礎,但希望大家不要只是看看就過去了,最好還是假裝你被問到這個問題,你來把答案說出來或寫出來:(不按公司分了)

Python語法以及其他基礎部分

1.可變與不可變型別; 
2.淺複製與深複製的實現方式、區別;deepcopy如果你來設計,如何實現; 
3.__new__() 與 __init__()的區別; 
4.你知道幾種設計樣式; 
5.編碼和解碼你瞭解過麼; 
6.串列推導list comprehension和生成器的優劣; 
7.什麼是裝飾器;如果想在函式之後進行裝飾,應該怎麼做; 
8.手寫個使用裝飾器實現的單例樣式; 
9.使用裝飾器的單例和使用其他方法的單例,在後續使用中,有何區別; 
10.手寫:正則郵箱地址; 
11.介紹下垃圾回收:取用計數/分代回收/孤立取用環; 
12.多行程與多執行緒的區別;CPU密集型適合用什麼; 
13.行程通訊的方式有幾種; 
14.介紹下協程,為何比執行緒還快; 
15.range和xrange的區別(他妹的我學的py3…); 
16.由於我有C/C++背景,因此要求用C來手寫:將IP地址字串(比如“172.0.0.1”)轉為32位二進位制數的函式。

演演算法排序部分


1.手寫快排;堆排;幾種常用排序的演演算法複雜度是多少;快排平均複雜度多少,最壞情況如何最佳化; 

2.手寫:已知一個長度n的無序串列,元素均是數字,要求把所有間隔為d的組合找出來,你寫的解法演演算法複雜度多少; 
3.手寫:一個串列A=[A1,A2,…,An],要求把串列中所有的組合情況打印出來; 
4.手寫:用一行python寫出1+2+3+…+10**8 ; 
5.手寫python:用遞迴的方式判斷字串是否為迴文; 
6.單向連結串列長度未知,如何判斷其中是否有環; 
7.單向連結串列如何使用快速排序演演算法進行排序; 
8.手寫:一個長度n的無序數字元素串列,如何求中位數,如何儘快的估算中位數,你的演演算法複雜度是多少; 
9.如何遍歷一個內部未知的檔案夾(兩種樹的優先遍歷方式)

網路基礎部分

1.TCP/IP分別在模型的哪一層; 
2.socket長連線是什麼意思; 
3.select和epoll你瞭解麼,區別在哪; 
4.TCP UDP區別;三次握手四次揮手講一下; 
5.TIME_WAIT過多是因為什麼; 
6.http一次連線的全過程:你來說下從使用者發起request——到使用者接收到response; 
7.http連線方式。get和post的區別,你還瞭解其他的方式麼; 
8.restful你知道麼; 
9.狀態碼你知道多少,比如200/403/404/504等等;

資料庫部分

1.MySQL鎖有幾種;死鎖是怎麼產生的; 
2.為何,以及如何分割槽、分表; 
3.MySQL的char varchar text的區別; 
4.瞭解join麼,有幾種,有何區別,A LEFT JOIN B,查詢的結果中,B沒有的那部分是如何顯示的(NULL); 
5.索引型別有幾種,BTree索引和hash索引的區別(我沒答上來這倆在磁碟結構上的區別); 
6.手寫:如何對查詢命令進行最佳化; 
7.NoSQL瞭解麼,和關係資料庫的區別;redis有幾種常用儲存型別;

Linux部分

1.講一下你常用的Linux/git命令和作用; 
2.檢視當前行程是用什麼命令,除了檔案相關的操作外,你平時還有什麼操作命令; 
(因為我本人Linux本身就很水,只會基本的操作,所以這部分面試官也基本沒怎麼問。。反正問了就大眼瞪小眼唄)

django專案部分

1.都是讓簡單的介紹下你在公司的專案,不管是不是後端相關的,主要是要體現出你幹了什麼; 
2.你在專案中遇到最難的部分是什麼,你是怎麼解決的; 
3.你看過django的admin原始碼麼;看過flask的原始碼麼;你如何理解開源; 
4.MVC / MTV; 
5.快取怎麼用; 
6.中介軟體是幹嘛的; 
7.CSRF是什麼,django是如何避免的;XSS呢; 
8.如果你來設計login,簡單的說一下思路; 
9.session和cookie的聯絡與區別;session為什麼說是安全的; 
10.uWSGI和Nginx的作用; 
(我發現基本不問django實現細節相關的東西。。或者問也問的很少,哎,之前準備的方向完全錯了)


洋洋灑灑寫了一個小時,發現還是有很多細節問題都已經忘了。。哎,自己的筆記做的還是不行。不過這些問題如果你能都答上來,起碼我覺得你應該可以去試試面試初級web後端了,good luck!


作者:Summer憶

來源:https://blog.csdn.net/yunfupei0434/article/details/79322425

《Python人工智慧和全棧開發》2018年07月23日即將在北京開課,120天衝擊Python年薪30萬,改變速約~~~~

*宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。


– END –


更多Python好文請點選【閱讀原文】哦

↓↓↓

贊(0)

分享創造快樂