python
1、裝飾器,怎么實現、怎么調用 參考:Python 裝飾器最佳實踐
2、列表推導式
3、迭代器,生成器(可以參看這篇文章:Python中的三個”黑魔法“與”騷操作“),過濾器,
3、自己寫一個生成器,內部需要實現哪些函數
3、Asyn函數的返回值類型
3、lamda表達式
3、GIL
4、垃圾回收機制
5、內存管理、內存優(yōu)化(list等內存不會立即釋放,進行重復利用,節(jié)省開支)
6、list分配的內存空間用完了,如何擴容
6、面向對象
7、進程/線程/協程(Python 異步IO,詳解Python進程和線程)
8、線程和協程的區(qū)別
8、文件操作
9、說一說with關鍵字的用法,如何自己清除資源,自己實現一個函數,要用with打開,需要注意什么
數據庫
mysql:
原理:
1、索引(B+樹)
1、查詢時間復雜度
1、為什么索引能使查詢變快
1、‘select…from…where…’三個關鍵字執(zhí)行的順序是什么
2、MySql聚簇索引和非聚簇索引
3、優(yōu)化
實戰(zhàn):
1、a,b兩列,1-10平均分布,8只有一條,我要查詢3-7和8的所有數據,該如何建索引,為什么,寫出來
1、給定一個員工表,找出email重復的行
1、查詢每個部門薪資最高的員工(考察sql語句的group by,聚合函數max,where和having的區(qū)別)
redis:
1、expire過期機制、過期之后的數據立即被刪除了么,如果不是為什么,刪除機制/如何刪除
2、內存優(yōu)化
3、存儲結構、支持哪些數據類型
4、持久化(Redis入門精講)
5、是多線程還是單線程
6、應用場景
7、特性
8、談一談Redis的高性能和緩存
9、性能調優(yōu)(緩存,命中率……)
數據庫:說一說MySql、Redis、MongoDB、Zookeeper之間的區(qū)別,以及他們的使用場景和特點。
運維
Nginx:
1、反向代理
2、負載均衡(參考這兩篇文章:從原理到實戰(zhàn),徹底搞懂 Nginx!,Nginx高級篇)
3、以上兩種情況的應用場景
4、master worker機制worker如何獲取資源
5、master如何通知worker有資源請求,通信方式?
docker:1、分層機制 、好處、壞處
2、容器間通信原理
3、服務發(fā)現
4、網絡模式
kubernetes:1、資源
2、服務發(fā)現
3、監(jiān)控
4、網絡、網絡模型
5、Kubernetes都有哪些組件,說說什么是pod,Pod和Service之間的關系
6、Pod/Service之間通信
7、Ingress和Service之間的區(qū)別
7、Configmap是干嘛用的
8、講一下Replicaset和Damonset的使用場景,如何使用
9、優(yōu)劣
實戰(zhàn):
6、如果我想讓某一任務只能調度到特定節(jié)點上,應該怎樣做
9、Service mesh了解么引出一系列問題(sidercar,istio,gateway)
10、如何定位問題(監(jiān)控:cadvisor,influxdb,grafana……)
11、我有一個四個副本的在線服務,現在研發(fā)了新版本,該如何發(fā)布(服務的滾動升級)。
了解Linux么
網絡協議:
1、HTTP(Python Web開發(fā))
2、TCP/IP
1、三次握手
1、三次握手為什么不是二次?那又為什么不是四次?
2、四次揮手,哪端會有WAIT_TIME狀態(tài)
3、
算法
1、動態(tài)規(guī)劃
2、回溯
3、雙指針(可以參考我前面對這三類算法的文章:最佳買賣股票-動態(tài)規(guī)劃,無重復字符的最長子串,長度最小的子數組-雙指針)
4、mid題現場手寫,可用IDE,即使寫不出來的,也要求講思路
5、子集:給定一組不含重復元素的整數數組 nums,返回該數組所有可能的子集(LeetCode #78)。考察完全二叉樹DFS/回溯法等遞歸操作
6、讀取txt文件中的所有數字(包含整數和小數,文件中數字不換行),返回所有數字列表
7、給定三角形三個點,和一個任意點,判斷該點是否在三角形內部
8、將一個給定數字轉換成16進制的字符串
9、給定一個數組arr,求數組中第2大的數,要求時間復雜度為O(n)
10、給定一個不含重復元素的字符串(長度小于27),返回全排列組合(n!個)
11、判斷一個數是否為n的2次冪
12、全對會議室:輸入是一個數組, 所有會議的開始和結束時間。輸出一共需要多少個會議室。
13、考察堆和排序等操作
14、部門協調:
輸入
departments: dict,key是部門名, value是每個部門對應所有員工ID數組
required_department: dict, 該任務需要參與的部門和需要的人數
輸出所有可能的員工組合
15、字節(jié)算法題匯總:https://www.nowcoder.com/discuss/445445?channel=2001&source_id=home_feed
架構設計:
1、了解流式計算么(flink),一個幾百萬用戶的網站,我想要保存用戶最近5個小時訪問過的頁面,你知道難點在哪嗎?(用戶每次訪問一個頁面都是隨時間流逝的)怎么做?(每一個網頁都要計算時間),flink我不了解,一開始想到了redis的過期時間,后面想過istio流量監(jiān)控啥的
2、API:如何提高吞吐量,如何發(fā)現某個接口吞吐性能不佳,如何解決,說一說解決思路?
其他
1、注重開源貢獻
2、最近在看的書?最近在學什么技術?有技術博客嗎?(考察點:是否好學和技術深入程度)
3、簡歷上的每個項目挨個問:
1、技術實現細節(jié) (考察點:經歷真實性、水平深度)
2、這個項目中你做過最難/最有挑戰(zhàn)性/最有意思的事的工作是什么,具體怎么解決的(考察點:工作內容和技術深入程度)
4、有沒有二次封裝還是只調用了他的接口(考察點:是否懂得原理)
5、對比不同的技術框架、不同的組件特性,(考察點:架構方面的考慮)
6、你有什么問題想問我嗎?答案:一定要問!
1、新人培養(yǎng)機制
2、工作氛圍
3、公司目前技術棧
4、將來的工作內容
5、研發(fā)有多少人,后端多少人,我應聘的部門后端多少人
8、看起來比較友善對go感興趣么,為什么,go和其它語言的區(qū)別,最近在學習什么新技術。
9、Fastapi源碼看過嗎
11、微服務:什么是微服務,微服務的好處和壞處
12、什么是Restful API,和普通http url有什么區(qū)別,get/post/put/delete有什么區(qū)別,用過patch么?
13、談一談swagger框架,如果yaml文件有改動,框架需要重新生成么,如果不用需要修改哪幾個文件
14、動態(tài)網頁的爬蟲相關
hr:
1、職業(yè)規(guī)劃
10、你了解我們公司么,了解多少,你會使用我們的產品么
7、離職原因 答案:要點就是不要說上家公司的不好,因為面試官有理由相信你是怎么離開上家公司的,就會怎么離開他們