技术开发 频道

中国软件职业结构失衡谁之过?(上篇)



    3. 高级程序员和程序员

    第三类职业是高级程序员。高级程序员和程序员的区别,在“高级”二字。那么,所谓“高级”,体现在什么地方?体现在软件技术的广度和深度上。软件技术发展到今天,任何一种功能需求,都不太可能只有一种技术可以实现,必定有着为数不少的技术可供选择,几乎任何一项技术,都声称可以如何如何,而实际上也确实如此,只不过各有侧重而已。比如一个网站,.net可以,java可以,php可以,ruby又何尝不行呢?甚至同一项技术,也有多种方案可以实现,比如用java建网站,jsp、jsf、struts、spring等等,候选的方案令人眼花缭乱。如果你面对这么多选择时手足无措、迷失方向,你就是程序员;如果你对此了如指掌,方案堆于前而色不变,你才称得上高级程序员。

    高级程序员的另一个称谓是“软件架构师”,或者“系统设计师”,当然,也有以“高级顾问”称呼的,因此,我们把技术蓝皮书中“高级程序员”的全部、“软件架构师”的全部、“SA/SD(系统分析/设计师)”的一半和“高级顾问”的一半,通通归类到传统理论的“高级程序员”角色中,则“高级程序员”所占比例为15.1%。

    最后我们看看程序员。程序员的角色是所有角色中变化最大的,因为他们工作在第一线,和具体技术的接触最为直接,而软件技术在过去的十年中,发生了天翻地覆的变化,新技术层出不穷,因此也派生出了很多新的程序员职业。例如“文档工程师”,在传统的软件工程理论中,每个角色负责编写自己的文档,并没有独立的“文档工程师”,只是随着人类面对面交往功能的退化,“秉烛夜谈”固然不复存在,“促膝谈心”也比过年还希罕,一个个躲在电脑屏幕后面的“人类”,越来越依赖所谓的文档来交流思想,因此,文档的工作量也随之加大,以致于需要额外的“文档工程师”。当然,文档的作用远不止此,这是题外话了。

    技术蓝皮书中,“程序员”、“文档工程师”和“测试工程师”可归类于传统软件工程理论的程序员角色,这样,程序员所占比例为17.3%。
0
相关文章