对于应届生来说,C++后台开发除了考察算法外,一般还会考察什么?比如linux方面,网络方面?会考察shell的语法吗?请详细说说,谢谢
人生最曼妙的风景,竟是内心的淡定与从容!
C/C++ 基礎:記憶體對齊、大小端、指標、作用域、STL中常用容器的用法和坑。 。 。
資料結構演算法:各種鍊錶、樹、雜湊表、查增刪改排、反轉、各種序。 。 。
設計模式:熟悉常用的就行,但要清楚相近模式的區別、適用場景等
網路程式設計:TCP、UDP、HTTP(S)、三次握手、四次分手、狀態轉換圖、協定設計。 。 。
多執行緒程式設計:執行緒與進程之間的比較、通訊、同步、各種鎖定的比較。 。 。
公共基礎服務:各種開源、閉源基礎服務、工具的使用、比較,如 Redis、MongoDB、Kafka、Thrift、Hadoop、MySQL、Oracle、Postgres、ICE、Protobuf、Nginx 、Apache、LVS、Keepalived、HAProxy。 。 。
各種Linux工具:常用的網路工具、各種問題排查、debug 工具、各種安全工具。 。 。
各種腳本:Shell、Python、Perl。 。 。
架構設計:各種高可用、分散式、叢集化方案、工具、原則、各種最佳化方案、各種追蹤方案、自動部署升級、各種安全方案。 。 。
C++ 語言基礎(STL必須,Boost加分)基本的Linux常識,可能會問 Shell,Vim 等等電腦網路常識等等。
我們會要求上機寫一個HTML Parser,輸入一個HTML文件,要求輸出標籤樹。
然後有的候選人寫的東西無法編譯,有的候選人寫的東西只能處理標準XML,有的候選人寫的東西自帶內存洩漏,還有的候選人問我們樹是什麼意思@_@
1) 編譯原理2) Effective C++3) OS4) 演算法+資料結構5) 其他的一些可以延展性的知識,條件允許的話可以看看CSAPP
看崗位了,如果是Linux環境的開發崗位,shell會簡單問一下作為應屆生,演算法 資料結構 作業系統 的基礎要好,更重要的是自學的能力
首先是基礎方面的考察:作業系統層面的,關於死鎖、進程執行緒相關的知識關於檔案系統、體系結構、儲存與快取等的知識。 總之,基礎越紮實越受歡迎
可以看下《程式設計師的自我修養》,動態連結和靜態連結方面對C++程式設計師來說及其重要這是內功啊
C/C++ 基礎:記憶體對齊、大小端、指標、作用域、STL中常用容器的用法和坑。 。 。
資料結構演算法:各種鍊錶、樹、雜湊表、查增刪改排、反轉、各種序。 。 。
設計模式:熟悉常用的就行,但要清楚相近模式的區別、適用場景等
網路程式設計:TCP、UDP、HTTP(S)、三次握手、四次分手、狀態轉換圖、協定設計。 。 。
多執行緒程式設計:執行緒與進程之間的比較、通訊、同步、各種鎖定的比較。 。 。
公共基礎服務:各種開源、閉源基礎服務、工具的使用、比較,如
Redis、MongoDB、Kafka、Thrift、Hadoop、MySQL、Oracle、Postgres、ICE、Protobuf、Nginx 、Apache、LVS、Keepalived、HAProxy。 。 。
各種Linux工具:常用的網路工具、各種問題排查、debug 工具、各種安全工具。 。 。
各種腳本:Shell、Python、Perl。 。 。
架構設計:各種高可用、分散式、叢集化方案、工具、原則、各種最佳化方案、各種追蹤方案、自動部署升級、各種安全方案。 。 。
C++ 語言基礎(STL必須,Boost加分)
基本的Linux常識,可能會問 Shell,Vim 等等
電腦網路常識
等等。
我們會要求上機寫一個HTML Parser,輸入一個HTML文件,要求輸出標籤樹。
然後有的候選人寫的東西無法編譯,有的候選人寫的東西只能處理標準XML,有的候選人寫的東西自帶內存洩漏,還有的候選人問我們樹是什麼意思@_@
1) 編譯原理
2) Effective C++
3) OS
4) 演算法+資料結構
5) 其他的一些可以延展性的知識,條件允許的話可以看看CSAPP
看崗位了,如果是Linux環境的開發崗位,shell會簡單問一下
作為應屆生,演算法 資料結構 作業系統 的基礎要好,更重要的是自學的能力
首先是基礎方面的考察:
作業系統層面的,關於死鎖、進程執行緒相關的知識
關於檔案系統、體系結構、儲存與快取等的知識。
總之,基礎越紮實越受歡迎
可以看下《程式設計師的自我修養》,動態連結和靜態連結方面對C++程式設計師來說及其重要
這是內功啊