一個Python Web工程師的面試總結__Python

來源:互聯網
上載者:User

今天給大家帶來一個Python web工程師的面試總結,也許對你正在學習Python的也有協助。

1

個人情況

先介紹下我的情況:通訊背景,工作一年多不到兩年。之前一直在做C++的MFC軟體介面開發工作,公司為某不景氣的國企研究所(喏,我的工作經驗很水:1是方向不對;2是行業有偏差)。

目前是在尋找python後端開發這一塊的工作,使用的架構為django;之前一直通過CSDN以及其他幾家技術部落格/論壇吸收大家的經驗,在感激之餘,也想輸出點什麼,造福大家,因此就有了這篇水文,希望大家能夠多多吸取我的經驗教訓,早日找到一份自己滿意的工作。

2

面試情況

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

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

其他感受:不同的公司著重點都不一樣,不過真的就如這篇博文的博主所說,木桶原理,哪塊都不能少。我就是因為平時只關注做自己的小部落格系統,而沒做其他的部分,導致愛奇藝倒在了手寫代碼上面…哎,憂傷。。平時多刷刷leetcode,看看劍指offer/面試金典,都是套路啊~~

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

3

python文法以及其他基礎部分

1).可變與不可變類型

2).淺拷貝與深拷貝的實現方式、區別;deepcopy如果你來設計,如何?

__new__() 與 __init__()的區別

3).你知道幾種設計模式

4).編碼和解碼你瞭解過麼

5).列表推導list comprehension和產生器的優劣

6).什麼是裝飾器;如果想在函數之後進行裝飾,應該怎麼做

7).手寫個使用裝飾器實現的單例模式

8).使用裝飾器的單例和使用其他方法的單例,在後續使用中,有何區別

9).手寫:正則郵箱地址

10).介紹下記憶體回收:引用計數/分代回收/孤立引用環

11).多進程與多線程的區別,CPU密集型適合用什麼

12).進程通訊的方式有幾種

13).介紹下協程,為何比線程還快

14).range和xrange的區別

4

演算法排序部分

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

2).手寫:已知一個長度n的無序列表,元素均是數字,要求把所有間隔為d的組合找出來,你寫的解法演算法複雜度多少

3).手寫:一個列表A=[A1,A2,…,An],要求把列表中所有的組合情況列印出來;

4).手寫:用一行python寫出1+2+3+…+10**8

5).手寫python:用遞迴的方式判斷字串是否為迴文

6).單向鏈表長度未知,如何判斷其中是否有環

7).單向鏈表如何使用快速排序演算法進行排序

8).手寫:一個長度n的無序數字元素列表,如何求中位元,如何儘快的估算中位元,9).你的演算法複雜度是多少;

10).如何遍曆一個內部未知的檔案夾(兩種樹的優先遍曆方式)

5

網路基礎部分

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等等

6

資料庫部分

1).MySQL鎖有幾種;死結是怎麼產生的; 為何,以及如何分區、分表;

2).MySQL的char varchar text的區別:

瞭解join麼,有幾種有何區別,A LEFT JOIN B,查詢的結果中,B沒有的那部分是如何顯示的(NULL)

3).索引類型有幾種,BTree索引和hash索引的區別(我沒答上來這倆在磁碟結構上的區別)

4).手寫:如何對查詢命令進行最佳化

5).NoSQL瞭解麼,和關聯式資料庫的區別,redis有幾種常用儲存類型

7

Linux部分

講一下你常用的Linux/git命令和作用;

查看當前進程是用什麼命令,除了檔案相關的操作外,你平時還有什麼操作命令;

(因為我本人Linux本身就很水,只會基本的操作,所以這部分面試官也基本沒怎麼問。。反正問了就大眼瞪小眼唄)

8

Django項目部分

都是讓簡單的介紹下你在公司的項目,不管是不是後端相關的,主要是要體現出你幹了什麼

1).你在項目中遇到最難的部分是什麼,你是怎麼解決的; 你看過django的admin源碼麼

2).看過flask的源碼麼,你如何理解開源

3).MVC / MTV, 緩衝怎麼用, 中介軟體是幹嘛的

4).CSRF是什麼,django是如何避免的,XSS

5).如果你來設計login,簡單的說一下思路

6).session和cookie的聯絡與區別,session為什麼說是安全的

7).uWSGI和Nginx的作用;

                  為你準備的菜鳥學Python學習交流群:


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.