寫在之前
如果看過(guò)我第一篇文章 (三個(gè)月自學(xué)拿到 python 開發(fā) offer软舌!) 的朋友可能知道识脆,我來(lái)上海一個(gè)多星期,面試了大概十幾家公司恕曲,收到了一些 offer,其實(shí)截止到昨天下午我依然還是在面試的路上渤涌。我是自學(xué) Python佩谣,因?yàn)橹安恢雷约何磥?lái)要從事什么樣的崗位,所以學(xué)的時(shí)候爬蟲和后端的知識(shí)都有涉及实蓬,所以自己投的公司的范圍也比較廣茸俭,所以接下來(lái)我寫的東西也可能比較多吊履,可以選自己的方向去看。
面試范圍
這么多家公司的面試取個(gè)并集的話调鬓,基本上所有能問(wèn)的大類都問(wèn)了艇炎,諸如 Python 基礎(chǔ),web框架腾窝,爬蟲缀踪,數(shù)據(jù)庫(kù),計(jì)算機(jī)網(wǎng)絡(luò)虹脯,操作系統(tǒng)驴娃,數(shù)據(jù)結(jié)構(gòu)與算法等。下面我就開始詳細(xì)說(shuō)一下各個(gè)分類我被問(wèn)到的面試題循集,我爭(zhēng)取盡量的多記起一些來(lái)唇敞。
面試題
Python基礎(chǔ)
1.說(shuō)一說(shuō)你所知道的 Python 數(shù)據(jù)結(jié)構(gòu)有哪些。
2.Python 中列表和元組的區(qū)別是什么咒彤?元組是不是真的不可變疆柔?
3.什么是生成器和迭代器?它們之間有什么區(qū)別蔼紧?
4.什么是閉包?裝飾器又是什么狠轻?裝飾器有什么作用奸例?你用過(guò)裝飾器嗎?請(qǐng)寫一個(gè)裝飾器的例子向楼。
5.說(shuō)一下什么是匿名函數(shù)查吊,用匿名函數(shù)有什么好處?
6.在學(xué)習(xí) Python 的過(guò)程中湖蜕,你有想過(guò)如何提高 Python 的運(yùn)行效率嗎逻卖?
7.用過(guò)類嗎?知道繼承嗎昭抒?請(qǐng)寫一個(gè)例子评也,用到繼承。
8.說(shuō)一下深拷貝和淺拷貝灭返。
還有一些記不太清了盗迟,感覺都不是很難,就是正常如果看過(guò)任意一本 Python 入門書的都可以回答出來(lái)熙含。
Web 框架
1.什么是 Django? 說(shuō)說(shuō)你的理解罚缕。
2.Django 遵循什么樣的設(shè)計(jì)模式?每個(gè)字母代表什么意思怎静?各自完成什么樣的功能邮弹?它和MVC是怎么對(duì)應(yīng)的黔衡?
3.Django 中的緩存是怎么用的?
4.用 Django 做過(guò)什么項(xiàng)目嗎腌乡?大概是怎么樣的思路盟劫?現(xiàn)在讓你寫個(gè)登陸頁(yè)面,你要怎么寫导饲?
5.說(shuō)一下 session 和 cookie 區(qū)別捞高。為什么 cookie 是不安全的?
6.你在用 Django 做項(xiàng)目的時(shí)候碰到過(guò)什么問(wèn)題嗎渣锦?你印象最深的是哪個(gè)硝岗? 你是怎么解決的?
怎么說(shuō)呢袋毙,Django 這部分在面試的時(shí)候問(wèn)的更多的是一些項(xiàng)目方面的問(wèn)題型檀,具體的細(xì)節(jié)和應(yīng)用其實(shí)很少,頂多就是幾個(gè)常見的問(wèn)題听盖。所以建議投這方面工作的朋友手里要有項(xiàng)目胀溺,這樣心里不慌。
爬蟲
1.說(shuō)一下你寫爬蟲的時(shí)候用到過(guò)的包皆看。
2.會(huì)用正則表達(dá)式嗎仓坞?會(huì)的話請(qǐng)用正則表達(dá)式寫一下郵箱的地址。
3.說(shuō)一下 Python 爬蟲的框架腰吟,你用過(guò)哪個(gè)无埃?做過(guò)什么樣的爬蟲嗎?
4.你在寫爬蟲的過(guò)程中遇到過(guò)什么問(wèn)題毛雇?印象最深的是哪個(gè)嫉称?你是如何解決的?
5.什么是反爬蟲灵疮?說(shuō)一下你知道的反爬蟲织阅,各自是什么特點(diǎn),該如何解決震捣?
6.什么是 Ajax荔棉?(因?yàn)槲业捻?xiàng)目上有寫這個(gè),所以問(wèn)了)
爬蟲這部分同樣也是問(wèn)了較多簡(jiǎn)歷上所寫項(xiàng)目的實(shí)現(xiàn)以及一些細(xì)節(jié)蒿赢,所以投爬蟲的時(shí)候也要提前寫點(diǎn)項(xiàng)目江耀,如果用框架更好,如果不會(huì)的話诉植,起碼也得知道有什么框架祥国,大概是干什么的。
數(shù)據(jù)庫(kù)
1.用過(guò)數(shù)據(jù)庫(kù)嗎?說(shuō)一下你熟悉的數(shù)據(jù)庫(kù)舌稀,這個(gè)數(shù)據(jù)庫(kù)有什么特點(diǎn)啊犬。
2.什么是索引?什么字段適合建立索引壁查?索引的優(yōu)缺點(diǎn)你知道嗎觉至?
3.什么是事務(wù)?
4.知道范式嗎睡腿?說(shuō)一說(shuō)數(shù)據(jù)庫(kù)的第三范式(如果你看到這里的話语御,建議你將第一,二范式也都看看)
5.會(huì)寫 SQL 語(yǔ)句嗎席怪?如何給表中插入數(shù)據(jù)应闯?如何更新數(shù)據(jù)?(看到這挂捻,你是不是數(shù)據(jù)庫(kù)的增刪改查都得看看)
數(shù)據(jù)庫(kù)這些東西我感覺問(wèn)的并不多碉纺,大多數(shù)公司問(wèn)我的都是第 1 個(gè)和第 5 個(gè)問(wèn)題,其中有一個(gè)公司某個(gè)面試官說(shuō)要看看我的基礎(chǔ)刻撒,然后就多問(wèn)了幾個(gè)骨田,然后...幸虧我才看了。
計(jì)算機(jī)網(wǎng)絡(luò)
1.說(shuō)一說(shuō)什么是 TCP/IP 協(xié)議声怔?
2.知道什么是三次握手和四次揮手嗎态贤?簡(jiǎn)單描述一下。
3. Post 和 Get 有什么區(qū)別醋火?
4.知道滑動(dòng)窗口嗎悠汽?
5. TCP 和 UDP 有什么區(qū)別?
6.知道 Socket 網(wǎng)絡(luò)編程嗎胎撇?知道怎么用嗎介粘?
好像還有幾個(gè)來(lái)著殖氏,我忘記了晚树。怎么說(shuō)呢,網(wǎng)絡(luò)這個(gè)地方大概是我的弱項(xiàng)雅采,做為一個(gè)當(dāng)年差點(diǎn)在網(wǎng)絡(luò)上掛了的菜雞爵憎,大概只回答了一半的題,剩下的一半就是持續(xù)蒙圈婚瓜。
操作系統(tǒng)
1.什么是死鎖宝鼓?如何預(yù)防死鎖?
2.學(xué)過(guò)編譯原理嗎巴刻?會(huì)用嗎愚铡?
3.說(shuō)一下什么是虛擬內(nèi)存技術(shù)。
4.用過(guò) Linux 嗎?會(huì)用嗎沥寥?在上面搭過(guò)環(huán)境嗎碍舍?說(shuō)一下常用的指令。
操作系統(tǒng)這個(gè)大多數(shù)問(wèn)的是用過(guò) Linux 沒邑雅,會(huì)不會(huì)常用的操作指令片橡?我的回答是 No。因?yàn)橹苯訌?Windows 到了 Mac淮野,可以說(shuō)是相當(dāng) sad 了捧书。
數(shù)據(jù)結(jié)構(gòu)和算法
1.說(shuō)一說(shuō)你所知道的排序算法,它們的時(shí)間復(fù)雜度和空間復(fù)雜度分別是多少骤星?
2.手寫一下冒泡排序和快速排序经瓷。
3.在紙上實(shí)現(xiàn)用兩個(gè)隊(duì)列模擬棧的操作(所以看到這里你是不是應(yīng)該也去看看如何用兩個(gè)棧模擬隊(duì)列)。
4.知道什么是動(dòng)態(tài)規(guī)劃嗎妈踊?
5.手寫一下將二叉樹轉(zhuǎn)化成雙向鏈表了嚎。
6.手寫一下將兩個(gè)有序鏈表合并成一個(gè)有序鏈表。
7.手寫一下二叉樹的層次遍歷廊营。
8.手寫如何判斷一棵二叉樹是否為另一棵二叉樹的子樹歪泳。
還有幾個(gè)題就很難了,涉及到了容斥原理和博弈論的內(nèi)容就不在這說(shuō)了露筒。數(shù)據(jù)結(jié)構(gòu)和算法一直是面試的一個(gè)老大難問(wèn)題呐伞,其實(shí)大多數(shù)公司問(wèn)的比較基礎(chǔ),我面試了這么多公司慎式,唯一的一次筆試就是七道算法題伶氢,兩個(gè)小時(shí)”窭簦基本上的都是 1癣防,2,6 的那種簡(jiǎn)單難度掌眠,看看書就會(huì)了蕾盯,因?yàn)槲抑霸诖髮W(xué)是做算法競(jìng)賽的,所以覺得這部分還可以蓝丙。
寫在最后
不知不覺寫了這么多级遭,這是我面試的總問(wèn)題的百分之七八十。這些面試的問(wèn)題大多數(shù)都是基礎(chǔ)渺尘,其實(shí)如果你在網(wǎng)上看過(guò)別人寫的面經(jīng)你就會(huì)發(fā)現(xiàn)挫鸽,有些其實(shí)都是重合的,意思就是如果你在去面試之前有針對(duì)的看過(guò)這些東西鸥跟,其實(shí)到真正面試的時(shí)候會(huì)舒服很多丢郊。
面試之前看看職位的要求,然后做有針對(duì)的學(xué)習(xí),往往會(huì)收獲意想不到的驚喜枫匾。我每次去面試之前迅诬,都會(huì)準(zhǔn)備一些時(shí)間,然后把可能會(huì)問(wèn)到的問(wèn)題存到自己的云筆記里面婿牍,這樣坐地鐵侈贷,做公交的時(shí)候可以抽時(shí)間看一眼。
其實(shí)說(shuō)到最后還是回到一個(gè)好好準(zhǔn)備上面等脂,祝愿所有努力的人都獲得滿意的 offer俏蛮,如果你覺得寫的還可以,點(diǎn)個(gè)贊呦上遥。
歡迎關(guān)注微信公眾號(hào) -- Python空間搏屑。