應屆生除了要良好地掌握演算法和資料結構以外,以下一些技能點列表希望對大家有幫助,有興趣的朋友可以參考這個針對性地補缺補差。
文章列出的技能點有的要求熟悉,有的瞭解即可,注意技能點前面的修飾詞。如果沒有明確給出“熟悉”“瞭解”等字眼,要求均為熟悉。
一、程式語言
۞ C/C++方面
▷ 熟悉記憶體分佈(堆、棧、靜態/全域性/區域性變數、虛指標…)
▷ 熟悉Makefile。
▷ 熟悉gdb除錯(斷點、檢視記憶體、執行跟蹤、瞭解CPU主要暫存器作用…)。
▷ 熟悉效能分析工具(gprof)。
▷ 熟悉C-Runtime常用函式(如字串格式化函式printf、scanf,字串比較連線函式、記憶體分配函式、檔案與目錄操作函式等)。
▷ 熟悉stl庫。
▷ 熟悉OO思想、常見設計模式(如單例模式、工廠設計模式、裝飾者模式、Builder模式、生產者消費者模式、策略模式等)。
▷ 熟悉RAII、pimpl慣用法。
▷ 有一定的程式碼質量和重構能力。
二、作業系統方面
۞ 多執行緒相關與執行緒之間同步技術
熟練使用(但不侷限於)以下linux API。linux下的執行緒建立、等待、獲取執行緒id
常見執行緒之間的同步技術(何時該用那種技術)
互斥體
訊號量
條件變數
讀寫/自旋鎖
▷ 熟悉守護程序的建立、原理
▷ 瞭解計劃作業crontab
▷ 熟悉程序、執行緒狀態檢視命令(top、strace、pstack)
▷ 熟悉記憶體狀態檢視命令memstat、free
▷ 熟悉IO狀態檢視命令iostat、df、du
▷ 瞭解linux檔案的許可權、使用者、時間(ctime、mtime、atime)、inode等檔案基本屬性,熟練使用chmod、chown、chgrp等基本命令。
▷ 熟悉檔案傳輸命令scp、rz、sz命令、
▷ 熟悉檔案定位命令find、whereis命令。
▷ 熟悉軟連結,熟悉ln命令。
▷ 熟悉lsof命令。
三、計算機網路
▷ 熟悉tcp狀態機(三次握手、四次揮手)。
▷ 熟悉tcpdump命令。
▷ 熟悉網路狀態和防火牆狀態檢視命令:netstat、ifconfig、iptables
▷ 熟悉socket API,包括但不限於(connect、accept、bind、listen、send/sendto、recv/recvfrom、select、gethostbyname)
▷ 熟悉epoll,熟悉水平觸發與邊緣觸發。
▷ 熟悉阻塞socket和非阻塞socket在connect、send、recv等行為上的區別,如何將socket設定為非阻塞的。
四、資料庫
▷ 熟悉資料表結構設計(三正規化、欄位屬性)。
▷ 瞭解查詢最佳化(索引的概念與建立、sql最佳化)。
▷ 熟悉常見的mysql API函式:
五、指令碼工具
▷ 瞭解shell基本語法、變數操作、函式、迴圈/條件判斷等程式結構。
▷ 熟練使用文字編輯工具vi/vim。
▷ 瞭解使用文字處理命令grep、sed、cut。
▷ 瞭解awk命令。
最後,下方評論透露一下你的實習工資,看看你有沒拖後腿!
—————————————
- End -
不管你是轉行也好,初學也罷,進階也可,如果你想學程式設計,進階程式設計師~
【值得關注】我!