A. Python後端工程師面試題目有哪些
1. 我從來不問google可獲得的答案的問題, 只是問問面試者「在過去的工作中,遇到的Ta認為最有成就感的一件事情是什麼」和「如果出現了一個google不到的問題,你會怎麼解決」這樣的問題。
2. 我從來不問操作系統等和Python無關的話題,首先是我不怎麼問和工作太無關的話題,有些東西用不到很多就被會遺忘,挑起來這種問題其實挺無聊;其次我是非計算機專業畢業,問的東西說不定我自己都沒有把握,那就不出來獻丑了。我只關注面試者的學習能力和解決問題的方式,說白了,是不是就是看他是不是「聰明的人」。
3. 不問面試者的短處。我在自己被面試的時候有過這種精力,面試者問他擅長的內容,我不一定搞的定,如果反過來面試Ta,我也會滅掉Ta。所以我會盡力尋找面試者的優勢和優點,尤其是對方已經明確承認。其實很多經驗和能力,只是需要一個機會和環境,所以我不想放過任何一個合適的人。
4. 面試者不會Python也沒有關系。面試者的主動性和學習能力覺得更重要,如果他在其他領域能證明做的不錯或者能讓我感覺到這個一個未來有潛質成為優秀工程師的人,不會Python沒有關系。 嗯目前看來,我沒有看錯過。
5. 我從來不問Python語法這種看書和google就能學會的問題,我只想了解Ta是否願意去學。舉個例子,我會讓面試者「講講日常開發中都用到了那些Python內置的模塊」,原因在我的專欄「Python之美 - 知乎專欄」的 Python不能不知的模塊 - Python之美 - 知乎專欄中有寫,基本上說完我就能評估出他的能力和風格,繼而就是再問一些問題去驗證我的評估是不是准確。
6. 最後,我一般都會和面試者細聊一個Ta認為在過去的工作或者自己開源的項目中最熟悉的一個,從項目設計、踩過的坑兒、開發周期以及如何安排、如何確定需求、如何和其他人協作等方面,最後評估下Ta是否能很容易的融入到我們現在的團隊,大家是否可以接受Ta,對工作不負責的、沒有用心工作的、沒有團隊意識的、溝通能力有缺陷的就放棄掉,對性格上容易發生沖突的、不適合團隊合作的我就得考慮下,未來也會如實反饋給HR。
B. 什麼是Python全棧工程師
能一個人完個整個項目的所有開發工作,就是全棧。
這里的「棧」指的是項目的技術棧。
比如常見的做Web,那麼,
後端的資料庫;
服務端的Python;
Web服務端的nginx;
前端 的html和javascript;
以及使用的框架相關的知識,鍵資料庫,元資料庫,操作系統,Docker之類的
還有從需求分析到測試發布及運維的能力。
不同的項目對全棧的定義是不同的。
C. 如何面試Python後端工程師
我覺得重點不是Python而是後端工程師,因為Python只是系統的一部分,linux基礎操作要熟吧,sql要懂吧,消息隊列要知道吧,git要熟悉吧......木桶理論,每一環都不能落下,精通其中一兩環就更好了。基礎功扎實,新東西學得快,代碼寫得溜,命令敲得順,bug解的好,媽媽再也不用擔心我天天加班了~~~
一.語言
1.推薦一本看過最好的python書籍? 拉開話題好扯淡
2.談談python的裝飾器,迭代器,yield?
3.標准庫線程安全的隊列是哪一個?不安全的是哪一個?logging是線程安全的嗎?
4.python適合的場景有哪些?當遇到計算密集型任務怎麼辦?
5.python高並發解決方案?我希望聽到twisted->tornado->gevent,能扯到golang,erlang更好
二.操作系統
可以直接認為是linux,畢竟搞後端的多數是和linux打交道。
1.tcp/udp的區別?tcp粘包是怎麼回事,如何處理?udp有粘包嗎?
2.time_wait是什麼情況?出現過多的close_wait可能是什麼原因?
3.epoll,select的區別?邊緣觸發,水平觸發區別?
三.存儲
存儲可能包含rdbms,nosql以及緩存等,我以mysql,redis舉例
mysql相關
1.談談mysql字元集和排序規則?
2.varchar與char的區別是什麼?大小限制?utf8字元集下varchar最多能存多少個字元
3.primary key和unique的區別?
4.外鍵有什麼用,是否該用外鍵?外鍵一定需要索引嗎?
5.myisam與innodb的區別?innodb的兩階段鎖定協議是什麼情況?
6.索引有什麼用,大致原理是什麼?設計索引有什麼注意點?
redis相關
1.什麼場景用redis,為什麼mysql不適合?
2.談談redis的事務?用事務模擬原子+1操作?原子操作還有其它解決方案嗎?
3.redis內存滿了會怎麼樣?
四.安全
web安全相關
1.sql注入是怎麼產生的,如何防止?
2.xss如何預防?htmlescape後能否避免xss?
3.csrf是什麼?django是如何防範的?
五密碼技術
1.什麼是分組加密?加密模式有哪些?ecb和cbc模式有什麼區別?為什麼需要iv向量?
2.簡單說說https的過程?
3.對稱加密與非對稱加密區別?
3.如何生成共享秘鑰? 如何防範中間人攻擊?
六.雜
是否關注新技術啊?golang,rust是否了解?numpy,pandas是啥鳥?
是否緊跟時代潮流?逛不逛微博,刷不刷知乎?
可能你覺得我問的好細,但這好多都是平常經常遇到,並需要解決的,細節更能體現一個人。
D. 在北京做python伺服器後端工程師,一年工作經驗,15000算低嗎
不錯了,雖然pythonweb的行情的確不錯,不過畢竟相對小眾,需求量低。最近公司招pyweber都會要求2年經驗,可以考慮一年後跳槽加薪。
E. 面試Python後端工程師,主要注意准備什麼
Python是人工智慧時代最佳的編程語言,它語法簡潔、通俗,語言結構清晰,吸引了很多人加入學習。想要快速就業拿高薪,基礎技能很重要,但面試技巧也不容忽視。
如何參加面試
收到面試通知,如有時間緩沖,盡量在2-3天內去參加面試。切忌收到電話通知當天去參加面試。
3、提前了解公司類型
不同的公司類型Python技術難度、面試風格都有較大差異,請提前熟知:
資深互聯網:技術前沿、全面;
外企500強:注重技術+管理;
創業融資公司:技術全面扎實。
4、了解崗位需求
技能需求:如工作經驗1-3年;注意:也包括在校期間有效的實際項目經驗。
非技能需求:外語(外資企業更加重視)、團隊、管理、學習能力等。
5、項目經驗梳理
項目技能:項目架構+資料庫設計+開發語言;
領域知識:項目針對特定行業的背景信息;
項目說辭:想好如何直接有效的介紹項目。
當然,面試准備的再充分,如果你的技能達不到企業要求,那也是白費功夫。如果你想快速系統的學習Python技能,掌握企業所需的技術,可以選擇專業學習一下。
F. 誰能寫一個python2年後端工程師簡歷
你是真的懶,太麻煩, 想偷懶,得掏錢
G. 如何面試Python後端工程師
一.語言
1.推薦一本看過最好的python書籍? 拉開話題好扯淡
2.談談python的裝飾器,迭代器,yield?
3.標准庫線程安全的隊列是哪一個?不安全的是哪一個?logging是線程安全的嗎?
4.python適合的場景有哪些?當遇到計算密集型任務怎麼辦?
5.python高並發解決方案?我希望聽到twisted->tornado->gevent,能扯到golang,erlang更好
二.操作系統
可以直接認為是linux,畢竟搞後端的多數是和linux打交道。
1.tcp/udp的區別?tcp粘包是怎麼回事,如何處理?udp有粘包嗎?
2.time_wait是什麼情況?出現過多的close_wait可能是什麼原因?
3.epoll,select的區別?邊緣觸發,水平觸發區別?
三.存儲
存儲可能包含rdbms,nosql以及緩存等,我以MySQL,redis舉例
mysql相關
1.談談mysql字元集和排序規則?
2.varchar與char的區別是什麼?大小限制?utf8字元集下varchar最多能存多少個字元
3.primary key和unique的區別?
4.外鍵有什麼用,是否該用外鍵?外鍵一定需要索引嗎?
5.myisam與innodb的區別?innodb的兩階段鎖定協議是什麼情況?
6.索引有什麼用,大致原理是什麼?設計索引有什麼注意點?
redis相關
1.什麼場景用redis,為什麼mysql不適合?
2.談談redis的事務?用事務模擬原子+1操作?原子操作還有其它解決方案嗎?
3.redis內存滿了會怎麼樣?
四.安全
web安全相關
1.sql注入是怎麼產生的,如何防止?
2.xss如何預防?htmlescape後能否避免xss?
3.csrf是什麼?django是如何防範的?
密碼技術
1.什麼是分組加密?加密模式有哪些?ecb和cbc模式有什麼區別?為什麼需要iv向量?
2.簡單說說https的過程?
3.對稱加密與非對稱加密區別?
3.如何生成共享秘鑰? 如何防範中間人攻擊?
五.雜
是否關注新技術啊?golang,Rust是否了解?numpy,pandas是啥鳥?
是否緊跟時代潮流?逛不逛微博,刷不刷知乎?
可能你覺得我問的好細,但這好多都是平常經常遇到,並需要解決的,細節更能體現一個人。
如果你覺得小kiss,歡迎投簡歷給我[email protected],龍圖游戲運營支持中心數據分析部招人;覺得有點問題,那還等什麼,趕快來和我交流交流。
更新:討論區挺熱鬧,有人說好簡單,有人說好難,其實我覺得這只適合面試2~3年工作經驗的後端工程師。真的沒有問
很難的題目,只是可能你平時沒有注意。
在這里我推薦幾本書吧
python參考手冊,絕對讓你更上一層樓
圖解密碼技術,密碼入門不二之選
mysql技術內幕第五版,有點厚當手冊讀讀,要有耐心,高性能mysql也強烈建議讀讀
effective tcp/ip programming
為什麼評論區有這么大差異?我想是個人經歷不一樣吧,如果是搞web的對操作系統這塊和密碼技術會偏弱,但如果是系統工程師或是游戲服務端這塊會明顯偏強。
六.後記
最近我也面試了不少童鞋,我發現能達到要求的真的少之又少,很多hr都說Python是最難招聘的崗位,我想是有道理的,這真的很值得我們去深思?
我想有一部分原因是Python這門語言造成的,會寫Python的人很多,但寫的好的人很少,大部分都把Python當做腳本來寫,缺乏面向對象,模式的思想。想想Java,大家都習慣了介面,實現分離,設計模式在Java中也喊了很多年,尤其是ssh三大框架一出,用著用著就理所當然的認為就該這么做,雖然也有點壞處,但對企業級Java開發無疑是一大進步。
反觀Python,尤其是生成器,協程,元類給Python注入了很大的靈活性,想寫的Pythonic有不小難度,但其實Python高級特性就那麼幾個,幹掉了也就沒有了。
當你覺得Python遇到了瓶頸,不妨停下來好好想想。研究研究設計模式,想想重構,了解領域驅動設計,敏捷開發,再回來讀讀以前寫的代碼,當眼界變高了,代碼也就美了。
當然思想的提高不是一朝一夕,模式,原則會經常讓你糾結,糾結就會思索,思考就走出了自己的路,當然條條大路通羅馬。
資料庫等存儲技術是研發工程師邁不過的坎,對關系資料庫以mysql舉例來說,你必須清楚的知道什麼欄位選擇什麼類型,類型位元組大小,限制條件,這東西也很容易理解,多想想即可,比如set類型,要支持交並等操作,1個位元組只能存8個類別。數據類型搞定了,下面就是索引了,mysql索引種類?主鍵,唯一索引,普通索引。索引類別,BTree索引,hash索引。索引的優缺點,mysql的索引查找原理,join原理(大部分都是nested loop),以及一些特殊的情況,比如mysql子查詢慢等。其實到這里研發工程師就差不多,當然你可以繼續深入下去,比如讀寫分離,集群管理,甚至一些參數調優。
H. 什麼是Python全棧工程師和python工程師有什麼區別
就是加入了web前端開發唄。 也有可能是培訓機構故弄玄虛。,反正專業的名字怎麼吸引人就怎麼寫唄。
I. JAVA工程師和Python工程師哪個前景更好
java是當今最普及的語言,沒有之一,有及其豐富的第三方庫(開源),編譯執行,運行在jvm(運行在jvm上的開發語言越來越多,如scala),從web開發、網路開發(tcp/socket/rpc應用)、app開發(android開發,和後端開發有較大的思維上的不同)、雲計算應用(hadoop),是典型的面向對象的開發語言,擁有最大的市場需求(注意,在國內,java在web上的應用佔比不到php十分一),但是它慢慢的被業界所詬病,如開發代碼不簡潔,開發效率低,學習時間成本高,有走下坡路的趨勢。
python號稱膠水語言,本身也是解釋語言,但它能調用c模塊,可以用於Linux系統腳本開發、甚至用於linux嵌入式開發、可以用於web 開發(有豐富的、好用的框架);最重要的就是它的語法非常簡潔;」最最「重要的是目前大數據分析、機器學習它也是熱門的開發語言。
沒有人知道那個語言最有前景,你的重點事如何「精通」一門語言,更正確一點說,你要如何在編程這個技能上成為專家,練就「九陽神功」,然後,根據自己的職業需求、觀察市場隨時憑自己練就的內功、強大的學習能力應對隨時的變化和需求。我曾經看不起php,不願意學它,但是,國內幾乎web開發市場被它占據,到處公司後台都招php,只好也學習了php做項目,但我是用了8年的c#的基礎,容易學啊,因為工作的需要,我還學了android、(ios)oc、node.js、甚至golang都學了(學得不好),沒辦法,干這行,學無止境。
但是,一定要給自己一個准確的定位,你能做什麼?你要做什麼?你將來要成為什麼?要搞清楚,不能什麼都做,還有,語言還真的只是工具,它需要你(聰明的你、有知識的你、有文化的你)來運用和驅動它,打個比方,現在流行大數據分析、機器學習,它們可以用python來開發,但是,你會python就能做大數據分析、機器學習了嗎?你要沒有相關的理論知識、特別是數學知識。