CC++實習工作應該具備那些能力?才能拿更好的工作和薪資!

應屆生除了要良好地掌握演算法和資料結構以外,以下一些技能點列表希望對大家有幫助,有興趣的朋友可以參考這個針對性地補缺補差。

文章列出的技能點有的要求熟悉,有的瞭解即可,注意技能點前面的修飾詞。如果沒有明確給出“熟悉”“瞭解”等字眼,要求均為熟悉。

一、程式語言

۞ C/C++方面

▷ 熟悉記憶體分佈(堆、棧、靜態/全域性/區域性變數、虛指標…)

▷ 熟悉Makefile。

▷ 熟悉gdb除錯(斷點、檢視記憶體、執行跟蹤、瞭解CPU主要暫存器作用…)。

▷ 熟悉效能分析工具(gprof)。

▷ 熟悉C-Runtime常用函式(如字串格式化函式printf、scanf,字串比較連線函式、記憶體分配函式、檔案與目錄操作函式等)。

▷ 熟悉stl庫。

▷ 熟悉OO思想、常見設計模式(如單例模式、工廠設計模式、裝飾者模式、Builder模式、生產者消費者模式、策略模式等)。

▷ 熟悉RAII、pimpl慣用法。

▷ 有一定的程式碼質量和重構能力。

二、作業系統方面

۞ 多執行緒相關與執行緒之間同步技術

熟練使用(但不侷限於)以下linux API。linux下的執行緒建立、等待、獲取執行緒id

CC++實習工作應該具備那些能力?才能拿更好的工作和薪資!

常見執行緒之間的同步技術(何時該用那種技術)

互斥體

CC++實習工作應該具備那些能力?才能拿更好的工作和薪資!

訊號量

CC++實習工作應該具備那些能力?才能拿更好的工作和薪資!

條件變數

CC++實習工作應該具備那些能力?才能拿更好的工作和薪資!

讀寫/自旋鎖

CC++實習工作應該具備那些能力?才能拿更好的工作和薪資!

▷ 熟悉守護程序的建立、原理

▷ 瞭解計劃作業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)

CC++實習工作應該具備那些能力?才能拿更好的工作和薪資!

▷ 熟悉epoll,熟悉水平觸發與邊緣觸發。

CC++實習工作應該具備那些能力?才能拿更好的工作和薪資!

▷ 熟悉阻塞socket和非阻塞socket在connect、send、recv等行為上的區別,如何將socket設定為非阻塞的。

四、資料庫

▷ 熟悉資料表結構設計(三正規化、欄位屬性)。

▷ 瞭解查詢最佳化(索引的概念與建立、sql最佳化)。

▷ 熟悉常見的mysql API函式:

CC++實習工作應該具備那些能力?才能拿更好的工作和薪資!

五、指令碼工具

▷ 瞭解shell基本語法、變數操作、函式、迴圈/條件判斷等程式結構。

▷ 熟練使用文字編輯工具vi/vim。

▷ 瞭解使用文字處理命令grep、sed、cut。

▷ 瞭解awk命令。

最後,下方評論透露一下你的實習工資,看看你有沒拖後腿!

—————————————

- End -

不管你是轉行也好,初學也罷,進階也可,如果你想學程式設計,進階程式設計師~

【值得關注】我!

TAG: 熟悉命令執行緒函式socket