天天看點

月薪 20k 的程式員是什麼樣的技術水準?

薪資 20k 的程式員是什麼水準?

月薪 20k 的程式員是什麼樣的技術水準?

程式員的發展方向可以劃分為技術專家、架構師、技術管理、管理。技術專家偏理論研讨,對某個或某些相關的專業範疇深化了解能直接或經過提供思緒間接處理這些範疇的各種問題。薪資20k的程式員相對來說是比較資深的程式員,具備的技能遠超初級程式員。

薪資20k的程式員應具備的技能及相應的水準介紹:

月薪 20k 的程式員是什麼樣的技術水準?

1、算法:技術面試筆試都考算法提,是以Leetcode至少得刷兩三百道,《劍指offer》所有題目都練習一遍,做過ACM更好,現在很卷面試官也隻能通過算法題來加大篩選。

2、資料結構:不要求你手寫紅黑樹,但AVL 哈希表堆這些簡單的資料結構自己操作實作過;連結清單、線性表必須熟悉到不能再熟悉,語言的标準庫實作得了解。

3、計算機系統知識:記憶體、堆棧、函數調用、數的表示等等,至少《CSAPP》得過一遍。作業系統:作業系統由哪些構成、程序的狀态、切換、排程 程序間通信方式(共享記憶體、管道、消息)、程序和線程的差別、線程的實作方式(一對一、多對一等) 互斥與同步(信号量、管程、鎖)、死鎖檢測與避免

4、計算機網絡:計網知識比較繁雜,很多同學都反映網絡很難學一大堆的網絡協定,依次學完後,還是不知道網絡是怎麼構成。依次去學應用層、傳輸層、網絡層、鍊路層,思考這些層之間是如何串聯起來的。

月薪 20k 的程式員是什麼樣的技術水準?

推薦學習《計算機網絡:自頂向下方法》 這本書從我們最常接觸的 HTTP、FTP、SMTP 等應用層協定講起,可以清晰看到引入各個層的作用。學習每層協定的時候,最好自己抓包看下,wireshark抓包遇到三次快速重傳會怎麼樣?這樣映像會更加深刻

5、資料庫:sql得會寫,推薦《SQL必知必會》,幾個範式有沒有正式運用過? 如何進行領域模組化、資料庫設計,才能夠使得每次查詢的開銷最小?資料庫原理方面《資料庫系統概念》包含了從SQL到資料庫設計再到資料庫原理、分布式資料庫都有,可以挑着看,比如關系模型、資料庫設計(三大範式)、資料磁盤存儲群組織方式、索引、并發控制等。當然了整個資料庫最重要的還是索引和并發控制(鎖、MVCC等),這部分也是面試常考的:

6、索引存儲結構:B樹、B+樹索引、Hash索引 索引的使用:主鍵索引、覆寫索引、最左字首原則、索引下推等 鎖:樂觀鎖、悲觀鎖、表鎖,行鎖,意向鎖,讀鎖,寫鎖等等MySQL InnoDB MVCC 實作機制 存儲引擎:InnoDB、MyISAM等,各自的優缺點 事務:ACID理論 這部分推薦兩本書:

7、網絡程式設計:背景開發基本是離不開網絡程式設計的,其實甚至整個背景開發也可以看做是在做網絡程式設計。隻不過别人的架構幫我們做了協定解析、網絡資料傳輸、解封包這些底層操作。如 SpringBoot 這種保姆級架構,基本上屬于将一個架構能幹的事都幹完了,以至于我們開發業務隻需要定義接收和傳回包的資料格式,然後做邏輯處理就完了。像序列化、解封包、IO 處理這種網絡程式設計必備的髒活業務開發根本不會接觸到。但網絡程式設計技能還是很重要的,特别是對于 Linux C++ 開發來說。

月薪 20k 的程式員是什麼樣的技術水準?

Linux 下網絡程式設計核心的包括系統程式設計和網絡 IO 兩個部分:

8、程序間通信方式:信号量、管道、共享記憶體、socket 等多線程程式設計:互斥鎖、條件變量、讀寫鎖、線程池等 五大 IO 模型:同步、異步、阻塞、非阻塞、信号驅動 高性能 IO 兩種模式:Reactor 和 Proactor( 但是 Linux 下由于缺少異步 IO 支援,基本沒有 Proactor IO 複用機制:epoll、select、poll(破解 C10K 問題的利器)推薦幾本書:《Linux高性能伺服器程式設計》、《Unix網絡程式設計》、《Unix環境進階程式設計》。

9、程式設計語言:雖然說語言不重要,但是總得擅長一門語言?C++的必看書籍Effective三部曲,《Effective C++》、《More Effective C++》、《Effective STL》、STL 源碼剖析、對象模型都得過一遍;Java學習的話JVM原理,GC ,JDK重要集合類庫得看下。

10、項目:如果隻是用幾個架構建議不要寫到履歷上不如去github上參與開源項目GSOC學習。任何一個花上半年時間去實作一個簡陋的原型(如實作一個簡單的核心)都是非常好的履歷加分項。

月薪 20k 的程式員是什麼樣的技術水準?

程式員薪資高低一般是與你的技能、經驗呈一個正比關系。每次找工作面試的時候考察的都是候選人的技能、經驗相關水準,然後給予一個相應的級别然後後确定一個工資範圍,想要獲得高薪那麼程式員的專業技能是核心,其次是溝通表達能力。

最後還有句話是這麼說的:栽一棵樹最好的時間是十年前,其次是現在。對于學習程式設計或者在工作想升職的程式員,如果你想更好的提升你的程式設計能力幫助你提升水準!筆者這裡或許可以幫到你~

C語言C++程式設計學習交流圈子,QQ群:765803539【點選進入】微信公衆号:C語言程式設計學習基地

分享(源碼、項目實戰視訊、項目筆記,基礎入門教程)

歡迎轉行和學習程式設計的夥伴,利用更多的資料學習成長比自己琢磨更快哦!

程式設計學習視訊分享:

月薪 20k 的程式員是什麼樣的技術水準?

繼續閱讀