系統設計三大要素
使用場景和限制條件
- 買這個系統是在什么地方使用的
- 用戶估計多少,至少要能支撐多少用戶
- 估算并發qps
數據存儲設計
- 按需設計數據表,需要哪些字段,使用什么類型
- 數據庫選型,是否需要持久化
- 如何優化,如何設計索引,是否可以使用緩存
算法模塊設計
算法解決問題的核心。程序= 算法+數據結構。系統=服務+存儲
- 需要哪些接口,接口如何設計
- 使用什么算法或模型
- 不同實現方式之間的優劣對比,如何取舍
面試經驗
python就業
- python就業面廣:爬蟲、運維、數據分析、后端、AI等,找準興趣
- 重視基礎,淡化語言
面試準備
- 復習基礎(算法+數據庫+網絡),查漏補缺
- 搜索意向公司面經,了解對方公司喜歡問什么
- 重基礎,沒事都刷題,很多公司越來越重視算法數據結構
簡歷投遞
廣泛撒網,重點捕魚
- 多投遞和面試一些公司,爭取多拿幾個offer
- 從易到難,可以先從小公司開始面試
- 了解對方所用到的技術和業務,了解面試重點
面試環節
坦然面對,友好交流
- 一般技術可能有三面(基礎+項目)
- 很多公司基本都要手寫代碼
- 引導交流,察言觀色,盡量找自己擅長的話題聊,實事求是,防止挖坑
面試之后
總結問題,查漏補缺。多復盤,多總結經驗
- 總結經驗
- 合理定位,面試時候一件很看運氣的事,面不過不代表能力不行
- 扎實的基礎+強悍的編碼能力可以大幅提升面試成功率
居安思危
工作了就穩定了?
- 關注經濟環境,盡量進入公司的核心業務
- 持續學習,保持職場競爭力
- 算法題不能丟下,長時間不練習手生
指北總結
python基礎高頻考點
- python特性:裝飾器、生成器與協程、異常處理
- 常用內置模塊:collections燈膜
- Cpython解釋器:GIL,內存管理
算法和數據結構
學會手寫算法題
- 常用的內置結構:list/tuple/set/dict,collections模塊
- ??妓惴ǎ嚎炫?、歸并、堆排序等高級排序算法
- ??紨祿Y構:鏈表,二叉樹,棧,隊列
編程范式
- 面向對象
- 裝飾器模式
- 單例模式
操作系統
- top/kill/ps
- 線程和進程的區別
- 操作系統內存管理機制
網絡
- TCP/UDP/HTTP
- 多路復用和并發編程
- python并發網絡框架Tornado/Gevent/Asyncio
數據庫
- Mysql基礎和索引原理
- SQL語句編寫
- 緩存,redis的使用和原理
web
- wsgi
- 網絡安全 SQL注入/XSS/CSRF
- RESTful
系統設計
- 三要素:場景限制、數據存取設計、算法實現設計