一名 21 世紀(jì)的現(xiàn)代程序員,到底應(yīng)該掌握哪些知識點和技能?
不同水平的程序員,掌握的知識結(jié)構(gòu)顯然是不同的。按照知識和技能水平,程序員通??梢苑譃?3/4 個等級:
初級
中級
高級
架構(gòu)師級
現(xiàn)代程序員數(shù)量龐大,種類很多,工作和貢獻(xiàn)在現(xiàn)代社會的各個行業(yè)領(lǐng)域。因此,建立一個大而全、貴而重的程序員知識體系是很困難的。以下結(jié)合 Web 系統(tǒng)開發(fā),先從初、中級程序員說起。
初級程序員
初級程序員當(dāng)然主要是從計算機(jī)和軟件的基礎(chǔ)學(xué)起。
主要任務(wù)是熟練掌握 1-2 門高級程序設(shè)計語言,能夠獨立完成一些簡單的 demo 應(yīng)用或模塊的開發(fā)。
...
中級程序員
中級程序員應(yīng)該能協(xié)助高級程序員工作,帶領(lǐng)初級程序員。
建模
UML
需求分析
功能需求(FR)與非功能需求(NFR)
Feature, Use Case
編程
熟練掌握 3-4 門編程語言;
掌握 1 個主流開發(fā)平臺,及其主要框架應(yīng)用開發(fā)的基本技能。
測試
測例編寫
執(zhí)行基本測試類型
數(shù)據(jù)庫
普通數(shù)據(jù)庫設(shè)計與開發(fā)
網(wǎng)絡(luò)通信
普通的網(wǎng)絡(luò)編程
文檔
能編寫一些較高質(zhì)量的開發(fā)模塊文檔和模型
架構(gòu)設(shè)計
OOD
架構(gòu)模式、設(shè)計模式
...
高級程序員
高級程序員應(yīng)該能獨立工作,帶領(lǐng)初級和中級程序員。
在架構(gòu)師不在的時候,能分擔(dān)全部或大部分的技術(shù)性工作。
在中級程序員掌握知識的基礎(chǔ)上:
系統(tǒng)分析
OOA
建模
熟練的軟件和系統(tǒng)建模技巧
UML 和/或 SysML
需求分析與管理
能獨立編寫和管理較高質(zhì)量的需求文檔和模型
編程
熟練掌握 4-5 門以上的軟件設(shè)計語言,熟悉若干主流的開發(fā)平臺和框架,具有較豐富的跨平臺開發(fā)能力。
文檔
能獨立編寫一些高質(zhì)量的項目開發(fā)文檔和模型
框架
框架開發(fā)
系統(tǒng)測試
全面而熟練的軟件和系統(tǒng)測試技能
架構(gòu)設(shè)計
熟練的 OOD 技能
熟悉大量的架構(gòu)模式和設(shè)計模式
數(shù)據(jù)庫
高級數(shù)據(jù)庫設(shè)計與開發(fā)
網(wǎng)絡(luò)通信
高級網(wǎng)絡(luò)編程
...
架構(gòu)師
架構(gòu)師是一個項目團(tuán)隊的技術(shù)核心,統(tǒng)領(lǐng)整個團(tuán)隊完成系統(tǒng)或產(chǎn)品的開發(fā)。
除了掌握所有高級程序員所具備的知識和技能外,還起到一名技術(shù)管理者的作用。
架構(gòu)師需要掌握的知識點,在高級程序員的基礎(chǔ)上,就更多了:
業(yè)務(wù)分析
項目管理
質(zhì)量保證
平臺開發(fā)
團(tuán)隊管理
過程改進(jìn)
...