• 2007-03-17

    程序员的定义

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/4788658.html

    这是我忙碌的一周,忙得连写blog的时间都没有。这一周,我不停的通过各种不同的方式和不同的人交流着一些大家共同关心的话题。

    所有的话题中,留在我记忆中最深的是一个关于程序员定义的话题。虽然都叫“程序员”,但在不同的地方却有着截然不同的定义。相同的地方是,程序员都在写代码。

    有些地方,程序员仅仅是一个写代码的人。需求?设计?那有专门的人去做,到了程序员这里,只剩下已经定义完全的函数规范,程序员所做的工作就是一板一眼的按照规范将函数实现出来。这种程序员的工作本质上与打字并无差别,也就是懂得一些程序设计语言的语法。在这种地方,程序员本身并没有太多的价值,因为任何一个初来乍到的人经过几个月的培训,很容易就可以达到这种高度。这种定义的程序员是无法对各个方面的评价——比如薪资——有太高指望的,因为即便做得不错,在老板看来,也只是一个只能编码的人。

    有些地方,程序员似乎是一个全才,可以谈需求,可以做设计,当然可以编写代码,也就是人们口中的复合型人才。在一些人眼中,他们是高手,因为似乎他们无所不能。其中的差异就是来自对于程序员定义的差别。因为在这些人眼中,这些都是软件开发的基本技能。软件开发并非只有编码。需求可以帮助自己更好的知道自己要做什么,设计可以帮助自己写出更好的代码……

    软件开发的根本是编程,所以,软件开发中最根本的角色是程序员。但程序员的定义确实千差万别,这里提到的只是其中的两种,还有程序员是技术专家,还有程序员要去做研究,还有程序员要去开拓新产品……

    只有了解不同地方的不同定义,才能给自己一个正确的定位。想在一个“程序员就是写代码”的地方去做“全才程序员”本身就是定位不准确的,即便做到了,也无法得到相应的回报,自然就会产生矛盾,对双方都没有好处。所以,找到一个同自己内心定义相近的地方显得尤为重要。

    之前写过一次《差异程序员》,那是从技术的角度进行的分析,也许这篇算是那篇的续篇吧!
    分享到:

    历史上的今天:

    引用地址: