一名 21 世紀的現(xiàn)代程序員,到底應該掌握哪些知識點和技能?

不同水平的程序員,掌握的知識結構顯然是不同的。按照知識和技能水平,程序員通??梢苑譃?3/4 個等級:

初級
中級
高級
架構師級

現(xiàn)代程序員數(shù)量龐大,種類很多,工作和貢獻在現(xiàn)代社會的各個行業(yè)領域。因此,建立一個大而全、貴而重的程序員知識體系是很困難的。以下結合  Web 系統(tǒng)開發(fā),先從初、中級程序員說起。


初級程序員


初級程序員當然主要是從計算機和軟件的基礎學起。

主要任務是熟練掌握 1-2 門高級程序設計語言,能夠獨立完成一些簡單的 demo 應用或模塊的開發(fā)。

...


中級程序員


中級程序員應該能協(xié)助高級程序員工作,帶領初級程序員。


建模

UML


需求分析

功能需求(FR)與非功能需求(NFR)

Feature, Use Case


編程

熟練掌握 3-4 門編程語言;

掌握 1 個主流開發(fā)平臺,及其主要框架應用開發(fā)的基本技能。

測試

測例編寫

執(zhí)行基本測試類型


數(shù)據(jù)庫

普通數(shù)據(jù)庫設計與開發(fā)


網(wǎng)絡通信

普通的網(wǎng)絡編程

文檔

能編寫一些較高質量的開發(fā)模塊文檔和模型


架構設計

OOD

架構模式、設計模式



...


高級程序員


高級程序員應該能獨立工作,帶領初級和中級程序員。

在架構師不在的時候,能分擔全部或大部分的技術性工作。

在中級程序員掌握知識的基礎上:


系統(tǒng)分析

OOA


建模

熟練的軟件和系統(tǒng)建模技巧

UML 和/或 SysML


需求分析與管理

能獨立編寫和管理較高質量的需求文檔和模型


編程

熟練掌握 4-5 門以上的軟件設計語言,熟悉若干主流的開發(fā)平臺和框架,具有較豐富的跨平臺開發(fā)能力。


文檔

能獨立編寫一些高質量的項目開發(fā)文檔和模型
 

框架

框架開發(fā)


系統(tǒng)測試

全面而熟練的軟件和系統(tǒng)測試技能



架構設計

熟練的 OOD 技能

熟悉大量的架構模式和設計模式



數(shù)據(jù)庫

高級數(shù)據(jù)庫設計與開發(fā)


網(wǎng)絡通信

高級網(wǎng)絡編程

...



架構師


架構師是一個項目團隊的技術核心,統(tǒng)領整個團隊完成系統(tǒng)或產(chǎn)品的開發(fā)。

除了掌握所有高級程序員所具備的知識和技能外,還起到一名技術管理者的作用。

架構師需要掌握的知識點,在高級程序員的基礎上,就更多了:

業(yè)務分析

項目管理

質量保證

平臺開發(fā)

團隊管理

過程改進


...