史荣久

史荣久的博客

他的个人主页  他的博客

2.3.程序员的层次

史荣久  2009年08月16日 星期日 21:31 | 1560次浏览 | 4条评论

在继哲兄的指引下,利用加班时间YY了本文.
欢迎大家继续提供特征和斧正.

https://sites.google.com/a/margorp.org/www/2/2-3

2.3.程序员的层次

对程序员层次的具体化,有利于职业规划和指导学习.
为统一称呼并清晰成长路线,本文对程序员层次划分如下,
助理程序员/程序员/高级程序员/资深程序员

2.3.1.适用语境

本组词汇是根据程序员工作角色,熟练程度,项目贡献进行划分,
主要用来描述程序员的工作性质,发展层次.
不表示能力大小,等级,不适应于管理,流程,模型等语境下.

因角色,性质或视角的不同,程序员有着多种称呼,均不在本文范围,
比如,
分析师,设计师,架构师,系统工程师,网络工程师,
初级程序,中级程序,高级程序员,
程序员(PG),软件工程师(SE),高级软件工程师(SSE),
码工(Coder),程序员(Programmer),开发者(Developer).

2.3.2.划分理论

在软件开发实践中和程序员最直接相关的工作包括以下7类.
  1) 分析(analysis):需求分析,问题调研等.
  2) 设计(design):形成解决方案,包括文档,图表,程序框架等.
  3) 实现(implementation):具体的编码活动.
  4) 调试(testing/debuging):各种阶段和类型的测试.
  5) 文档(documentation):形成说明书,手册等.
  6) 安装(installation):安装,部署及初始化软件.
  7) 维护(maintenance):软件的维护,运营,bug修正等,不含二次开发.
这些称为"工作角色".
通常开发中程序员身兼多种角色,这样有利于提到效率和技能水平.

"熟练程度",指一个"工作角色"的把握程度.
参见, "2.2.了解/熟悉/掌握/精通/大师".

"项目贡献",指一个"工作角色"中担负工作量与总工作量的比值.
一个"★"表示20%左右,最高"★★★★★".
假设项目中有A,B两类个程序员,A贡献了2万行代码,B贡献了8万行,
那么A在"实现"上的贡献度为20%,就是"★".

2.3.3.助理程序员

工作角色    熟练程度         项目贡献
分析        不知-了解       
设计        不知-了解       
实现        不知-熟练        ★★★★
调试        不知-熟练        ★★★★
文档        不知-了解        ★★★
安装        不知-了解       
维护        不知-了解       

助理程序员通常具有以下一些特征,
  * 技术不熟练.
  * 业务不熟练.
  * 大量编写代码.
  * 工作被动.
  * 无创造性.

2.3.4.程序员

工作角色    熟练程度         项目贡献
分析        了解-掌握        ★
设计        了解-掌握        ★
实现        熟悉-掌握        ★★
调试        熟悉-掌握        ★★
文档        了解-掌握        ★★★
安装        了解-掌握        ★
维护        了解-掌握        ★

程序员通常具有以下一些特征,
  * 技术和业务熟练.
  * 阅读和编写过大量代码.
  * 热衷于技术研究和学习.
  * 有个人观点和见解.
  * 代码bug率低.
  * 代码可读性好.

2.3.5.高级程序员

工作角色    熟练程度         项目贡献
分析        掌握-精通        ★★
设计        掌握-精通        ★★
实现        精通-大师        ★
调试        精通-大师        ★
文档        掌握-精通        ★★
安装        掌握-精通        ★★
维护        掌握-精通        ★★

高级程序员通常具有以下一些特征,
  * 精通技术和业务.
  * 代码稳定易读.
  * 具有创造性.
  * 编写基础代码.

2.3.6.资深程序员

工作角色    熟练程度         项目贡献
分析        精通-大师        ★★★
设计        精通-大师        ★★★
实现        精通-大师        ★
调试        精通-大师        ★
文档        精通-大师        ★★
安装        精通-大师        ★★
维护        精通-大师        ★★

资深程序员通常具有以下一些特征,
  * 精通技术和业务.
  * 视编程为艺术.
  * 设计项目原型.
  * 编写框架或核心代码.

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
边疆

回复 边疆  2009年08月17日 星期一 17:37

学习了,原来还真是不知道有这么多的门道~~只知道埋头coding~~

0条回复

净善

回复 净善  2009年08月17日 星期一 11:50

码工和程序员又有什么不同呢

2条回复

  • BinaryCode

    回复 BinaryCode  2009年08月18日 星期二 00:39

    把工具挂在口边,被动地工作的就是码工
    别人有互动,有对问题自己的分析解决思路的就是程序员

    0条回复

  • 史荣久

    回复 史荣久  2009年08月17日 星期一 12:03

    码工/程序员,这种叫法有点不妥,略带主观倾向.
    助程序员的工作相当于"码工".
    这里不指能力,只分工作角色.比如一个不掌握业务逻辑的高级程序员,初期只能做些辅助工作.
    辅助程序员,主要生产代码,相当于流水线上的一个车间,长久下去,不利于全面发展.
    程序员,可能是多个车间或整条流水线,有利于完善知识体系,全面发展.

    本文,是为了后续章节说明公司人员构成,分工做准备.

    0条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号