一名 21 世紀(jì)的現(xiàn)代程序員,到底應(yīng)該掌握哪些知識(shí)點(diǎn)和技能?

不同水平的程序員,掌握的知識(shí)結(jié)構(gòu)顯然是不同的。按照知識(shí)和技能水平,程序員通??梢苑譃?3/4 個(gè)等級(jí):

初級(jí)
中級(jí)
高級(jí)
架構(gòu)師級(jí)

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


初級(jí)程序員


初級(jí)程序員當(dāng)然主要是從計(jì)算機(jī)和軟件的基礎(chǔ)學(xué)起。

主要任務(wù)是熟練掌握 1-2 門高級(jí)程序設(shè)計(jì)語(yǔ)言,能夠獨(dú)立完成一些簡(jiǎn)單的 demo 應(yīng)用或模塊的開發(fā)。

...


中級(jí)程序員


中級(jí)程序員應(yīng)該能協(xié)助高級(jí)程序員工作,帶領(lǐng)初級(jí)程序員。


建模

UML


需求分析

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

Feature, Use Case


編程

熟練掌握 3-4 門編程語(yǔ)言;

掌握 1 個(gè)主流開發(fā)平臺(tái),及其主要框架應(yīng)用開發(fā)的基本技能。

測(cè)試

測(cè)例編寫

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


數(shù)據(jù)庫(kù)

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


網(wǎng)絡(luò)通信

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

文檔

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


架構(gòu)設(shè)計(jì)

OOD

架構(gòu)模式、設(shè)計(jì)模式



...


高級(jí)程序員


高級(jí)程序員應(yīng)該能獨(dú)立工作,帶領(lǐng)初級(jí)和中級(jí)程序員。

在架構(gòu)師不在的時(shí)候,能分擔(dān)全部或大部分的技術(shù)性工作。

在中級(jí)程序員掌握知識(shí)的基礎(chǔ)上:


系統(tǒng)分析

OOA


建模

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

UML 和/或 SysML


需求分析與管理

能獨(dú)立編寫和管理較高質(zhì)量的需求文檔和模型


編程

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


文檔

能獨(dú)立編寫一些高質(zhì)量的項(xiàng)目開發(fā)文檔和模型
 

框架

框架開發(fā)


系統(tǒng)測(cè)試

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



架構(gòu)設(shè)計(jì)

熟練的 OOD 技能

熟悉大量的架構(gòu)模式和設(shè)計(jì)模式



數(shù)據(jù)庫(kù)

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


網(wǎng)絡(luò)通信

高級(jí)網(wǎng)絡(luò)編程

...



架構(gòu)師


架構(gòu)師是一個(gè)項(xiàng)目團(tuán)隊(duì)的技術(shù)核心,統(tǒng)領(lǐng)整個(gè)團(tuán)隊(duì)完成系統(tǒng)或產(chǎn)品的開發(fā)。

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

架構(gòu)師需要掌握的知識(shí)點(diǎn),在高級(jí)程序員的基礎(chǔ)上,就更多了:

業(yè)務(wù)分析

項(xiàng)目管理

質(zhì)量保證

平臺(tái)開發(fā)

團(tuán)隊(duì)管理

過(guò)程改進(jìn)


...