99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀一個(gè)初級(jí)python web后端開發(fā)工程師的面試總結(jié)
一個(gè)初級(jí)python web后端開發(fā)工程師的面試總結(jié)
2018-04-18
收藏

一個(gè)初級(jí)python web后端開發(fā)工程師的面試總結(jié)

先介紹下我的情況:通信背景,工作一年多不到兩年。

之前一直在做C++的MFC軟件界面開發(fā)工作。公司為某不景氣的國企研究所。(喏,我的工作經(jīng)驗(yàn)很水:1是方向不對(duì);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,半年下來,面試官絕對(duì)對(duì)你刮目相看。

其他感受:不同的公司著重點(diǎn)都不一樣,木桶原理,哪塊都不能少。我就是因?yàn)槠綍r(shí)只關(guān)注做自己的小博客系統(tǒng),而沒做其他的部分,導(dǎo)致愛奇藝倒在了手寫代碼上面…哎,憂傷。。平時(shí)多刷刷leetcode,看看劍指offer/面試金典,都是套路啊~~

面試這幾家公司所遇到的面試/筆試題,目前還能記住的如下。雖然可能絕大部分都是基礎(chǔ),但希望大家不要只是看看就過去了,最好還是假裝你被問到這個(gè)問題,你來把答案說出來或?qū)懗鰜恚海ú话垂痉至耍?

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)槭裁矗?nbsp;
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.手寫:如何對(duì)查詢命令進(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)槲冶救?a href='/map/linux/' style='color:#000;font-size:inherit;'>Linux本身就很水,只會(huì)基本的操作,所以這部分面試官也基本沒怎么問。。反正問了就大眼瞪小眼唄)

django項(xiàng)目部分

1.都是讓簡(jiǎn)單的介紹下你在公司的項(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,簡(jiǎn)單的說一下思路; 
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)該可以去試試面試初級(jí)web后端了,good luck!


數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }