⑴ 如何面試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是啥鳥?
是否緊跟時代潮流?逛不逛微博,刷不刷知乎?
可能你覺得我問的好細,但這好多都是平常經常遇到,並需要解決的,細節更能體現一個人。
⑵ 如何面試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子查詢慢等。其實到這里研發工程師就差不多,當然你可以繼續深入下去,比如讀寫分離,集群管理,甚至一些參數調優。
⑶ 考蕭三中藝術特長生一般什麼時候面試,什麼時候報名,考樂器是不是彈一首曲子就行了
2011年三中音樂特長生招收辦法
--------------------------------------------------------------------------------
三中 2011-03-28 10:55:04 三中
蕭三中〔2011〕28號
--------------------------------------------------------------------------------
一、招收類別及人數
今年擬招聲樂類特長生16名, 舞蹈類特長生16名,器樂——銅管樂類特長生24名,器樂——民樂及其他類特長生24名,共計四個類別80名學生。
二、報名
1.對音樂特別愛好且有一定音樂基礎的學生,經班主任和音樂老師推薦,均可報名。每位考生在聲樂類、舞蹈類、器樂——銅管樂類、器樂——民樂及其他類中只能選報一類,不得兼報。
2.學生在2011年5月6日(星期五)以前到所在初中報名,填寫《蕭山三中音樂特長生報考登記表》。
3.請各初中學校在2011年5月11日(星期三)前將學生報考登記表送到蕭山三中教務處,並將學校報名情況匯總表的電子文檔發送到郵箱[email protected]。(學生報考登記表和學校報名情況匯總表可在蕭山三中校園網上下載)
三、特長測試
1.測試時間與地點
2011年5月21日(星期六)上午8:00前報到,8:30正式開始測試,地點在蕭山三中。
2.測試內容
(1)聲樂類:演唱自選歌曲一首,清唱;
(2)舞蹈類:表演自選成品舞蹈片段,音樂CD自備;
(3)器樂——銅管樂類:演奏自選樂曲一首,樂器自備;
(4)器樂——民樂及其他類:演奏自選樂曲一首,樂器自備(除鋼琴外)。
3.測試成績
特長測試成績滿分200分,120分為合格。成績合格者有資格報考蕭山三中音樂特長生。
四、錄取
報考蕭山三中音樂特長生的,均須參加2011年中考。錄取時按報考類別將中考成績與特長測試成績相加,求得總分,根據總分從高分到低分擇優錄取,但其中考成績不得低於報考省一級重點高中資格線下降50分的分數。
蕭山區第三高級中學
2011年3月16日
⑷ 單招哈鐵職院的時候筆試難嗎一般哪種題型面試什麼樣的
單招筆試都不是很難,一般比例是70%簡單+20%一般難度+10%難題,比高考簡單、比會考難一點。
面試主要考察語言表達能力、溝通交流能力、應變能力、形象氣質、禮貌修養和職業素養等方面。
⑸ 測試小白,面試的時候考官問怎麼去測一個web端電子商務平台網站呢用到哪些測試呢
全方面考慮:
功能測試: 電子商務的基本功能,登錄/登錄,交易,訂版單等;
兼容性測權試: 不同終端,不同瀏覽器打開的兼容效果;
性能測試:能支持多少用戶同時在線,並發訂單提交量
穩定性/可靠性測試:單點故障?
友好性測試:是否符合用戶使用習慣
安全測試:是否存在sql注入攻擊,xss等
介面測試:對接外部系統的介面
國際化測試:是否有外語版
文檔測試:網站是否有操作文檔,是否准確
⑹ PHP工程師面試常見問題有哪些
一、技術問題
(1)基礎知識:如數組的操作,變數的操作,字元串的處理。主要考察數組、字元串的函數。還有cookie和session的概念和區別。
(2)面向對象:面向對象的思想和理論知識,如繼承、介面、抽象類、多態等。 (3)文件操作:比較典型的兩個問題:
①遍歷目錄:使用遞歸來遍歷目錄,延伸出來就是無限級分類
②讀取大文件:內存不夠,如何讀取文件內容
(4)資料庫知識:
①設計資料庫表,按照要求去寫sql查詢。常見的有訂單表、商品表;學生表、成績表、班級表;省市區表。
②php操作資料庫的基本功底,手寫php操作資料庫的代碼。
③資料庫性能優化。其中包括MySQL的使用以及性能優化。比如int(1)和int(10)的區別,存儲類型的選取;mysql的索引,組合索引和覆蓋索引等;MySQL中四種隔離級別的理解。典型問題:一張表有100萬條數據,寫思路優化或者優化sql;一萬條數據同時插入資料庫如何保證效率。
(5)Linux能力。linux基礎知識,常用的命令要熟悉使用。比如在nginx訪問日誌中,查找出一天介面訪問類前十名。
(6)數據結構與演算法能力。基本的排序方法,如冒泡排序、快速排序、二分查找排序;或者給你一道題,手寫一個方法,去實現效果,比如100元分給10個人,每人至少6元,最多12元,必須分完100元。最常問到樹的遍歷和排序。
(7)伺服器安全問題:sql注入、xss攻擊等。編程時如何預防這些問題。
(8)框架問題:了解哪些框架,然後詢問框架的一些基本問題。常用框架的MVC思想的理解,根據邏輯來捋清楚model和controller的關系,controller和view的關系。
二、非技術問題
面試官:
1.自己對工作外的時間安排
2.自我評價
3.對以後職業的規劃
用意:
1.觀察你是否會在業余時間學習
2.自己是否對自己認證的足夠深刻
3.是不是一個會規劃的人
共同點: 還有什麼要問我的嗎?
⑺ 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。
⑻ web後端開發面試應該注意些什麼
web後端開發面試應該注意些什麼?有哪些題目是值得我們注意的?下面就讓小編告訴你:
面試這幾家公司所遇到的面試/筆試題,目前還能記住的如下。雖然可能絕大部分都是基礎,但希望大家不要只是看看就過去了,最好還是假裝你被問到這個問題,你來把答案說出來或寫出來:(不按公司分了)
python語法以及其他基礎部分
可變與不可變類型;
淺拷貝與深拷貝的實現方式、區別;deep如果你來設計,如何實現;
__new__() 與 __init__()的區別;
你知道幾種設計模式;
編碼和解碼你了解過么;
列表推導list comprehension和生成器的優劣;
什麼是裝飾器;如果想在函數之後進行裝飾,應該怎麼做;
手寫個使用裝飾器實現的單例模式;
使用裝飾器的單例和使用其他方法的單例,在後續使用中,有何區別;
手寫:正則郵箱地址;
介紹下垃圾回收:引用計數/分代回收/孤立引用環;
多進程與多線程的區別;CPU密集型適合用什麼;
進程通信的方式有幾種;
介紹下協程,為何比線程還快;
range和xrange的區別(他妹的我學的py3…);
由於我有C/C++背景,因此要求用C來手寫:將IP地址字元串(比如「172.0.0.1」)轉為32位二進制數的函數。
演算法排序部分
手寫快排;堆排;幾種常用排序的演算法復雜度是多少;快排平均復雜度多少,最壞情況如何優化;
手寫:已知一個長度n的無序列表,元素均是數字,要求把所有間隔為d的組合找出來,你寫的解法演算法復雜度多少;
手寫:一個列表A=[A1,A2,…,An],要求把列表中所有的組合情況列印出來;
手寫:用一行Python寫出1+2+3+…+10**8 ;
手寫python:用遞歸的方式判斷字元串是否為迴文;
單向鏈表長度未知,如何判斷其中是否有環;
單向鏈表如何使用快速排序演算法進行排序;
手寫:一個長度n的無序數字元素列表,如何求中位數,如何盡快的估算中位數,你的演算法復雜度是多少;
如何遍歷一個內部未知的文件夾(兩種樹的優先遍歷方式)
網路基礎部分
TCP/IP分別在模型的哪一層;
socket長連接是什麼意思;
select和epoll你了解么,區別在哪;
TCP UDP區別;三次握手四次揮手講一下;
TIME_WAIT過多是因為什麼;
http一次連接的全過程:你來說下從用戶發起request——到用戶接收到response;
http連接方式。get和post的區別,你還了解其他的方式么;
restful你知道么;
狀態碼你知道多少,比如200/403/404/504等等;
資料庫部分
MySQL鎖有幾種;死鎖是怎麼產生的;
為何,以及如何分區、分表;
MySQL的char varchar text的區別;
了解join么,有幾種,有何區別,A LEFT JOIN B,查詢的結果中,B沒有的那部分是如何顯示的(NULL);
索引類型有幾種,BTree索引和hash索引的區別(我沒答上來這倆在磁碟結構上的區別);
手寫:如何對查詢命令進行優化;
NoSQL了解么,和關系資料庫的區別;Redis有幾種常用存儲類型;
Linux部分
講一下你常用的Linux/Git命令和作用;
查看當前進程是用什麼命令,除了文件相關的操作外,你平時還有什麼操作命令;
(因為我本人Linux本身就很水,只會基本的操作,所以這部分面試官也基本沒怎麼問。。反正問了就大眼瞪小眼唄)
django項目部分
都是讓簡單的介紹下你在公司的項目,不管是不是後端相關的,主要是要體現出你幹了什麼;
你在項目中遇到最難的部分是什麼,你是怎麼解決的;
你看過django的admin源碼么;看過flask的源碼么;你如何理解開源;
MVC / MTV;
緩存怎麼用;
中間件是幹嘛的;
CSRF是什麼,django是如何避免的;XSS呢;
如果你來設計login,簡單的說一下思路;
session和cookie的聯系與區別;session為什麼說是安全的;
uWSGI和Nginx的作用;
上面就是小編為大家整理的關於web後端開發 面試的文章,希望對大家有幫助。在實際的操作過程中大家可以根據實際情況進行靈活的調整。
⑼ 面試問題如何預防xss攻擊
把伺服器關機 告訴他。
⑽ 面試Python後端工程師,主要注意准備什麼
Python是人來工智能時代最佳的編程語言自,它語法簡潔、通俗,語言結構清晰,吸引了很多人加入學習。想要快速就業拿高薪,基礎技能很重要,但面試技巧也不容忽視。
如何參加面試
收到面試通知,如有時間緩沖,盡量在2-3天內去參加面試。切忌收到電話通知當天去參加面試。
3、提前了解公司類型
不同的公司類型Python技術難度、面試風格都有較大差異,請提前熟知:
資深互聯網:技術前沿、全面;
外企500強:注重技術+管理;
創業融資公司:技術全面扎實。
4、了解崗位需求
技能需求:如工作經驗1-3年;注意:也包括在校期間有效的實際項目經驗。
非技能需求:外語(外資企業更加重視)、團隊、管理、學習能力等。
5、項目經驗梳理
項目技能:項目架構+資料庫設計+開發語言;
領域知識:項目針對特定行業的背景信息;
項目說辭:想好如何直接有效的介紹項目。
當然,面試准備的再充分,如果你的技能達不到企業要求,那也是白費功夫。如果你想快速系統的學習Python技能,掌握企業所需的技術,可以選擇專業學習一下。