`
saybody
  • 浏览: 908783 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

看了《程序员的十层楼》

阅读更多

看了《程序员的十层楼》,第一个感觉就是扯淡。这篇文章是一个叫周伟明的人写的,他把程序员分为10个层次:菜鸟、大虾、牛人、大牛、专家、学者、大师、科学家、大科学家、大哲。最后还搞了一个11层:上帝。

程序员的职责就是与人合作,把程序写好。术业有专攻,任何创新都是以前人的大量研究为基础的。程序员如果能有所创新,那也是机会和兴趣使然,水到渠成的事情。

其实就我看来,中国最缺乏的不是创新的能力,而是实现的能力。看着那些硕士、博士发表所谓有所创新的论文,我只是觉得滑稽可笑。没有实践的能力,又何谈理论的创新。高校的项目有多少能付诸实际?即使在技术上有些自己的东西,但因为缺乏实现和推广的能力,最后还是毫无价值。

程序员的价值就在于实现,在于把蓝图变成现实世界中有价值的产品。程序员的价值只能通过程序体现出来。如果按照周伟明所说的道路走下去,只会产生一个自以为是又一无是处的人。

理论研究和编程是不同的工作。程序员要做的只是把确定的算法或协议实现出来。如果一个程序员能创造新的卫星导航算法,他就不是程序员,而是卫星导航专家。

程序员要研究的是怎样用设计模型(design model)实现领域模型(domain model),怎样用低耦合、高效率的程序实现设计模型。

后记

我上周六早上起来,按照CSDN的推荐读了这篇文章:
http://software.intel.com/zh-cn/blogs/2009/02/09/1092/

读后感觉很不爽,就随手写下自己的感想,没想到会有这么多网友关注。不少网友批评我应该就事论事,不要攻击别人。我觉得有理,于是删掉了原文的最后一段。我又仔细想了一下我究竟有没有说错,把我的观点总结如下:

《程序员的十层楼》确实有可取之处。如果它毫无可取之处,那就不值一提了。但这篇文章有两个错误的导向,让我很反感。其一是把程序员这个职业无限扩大化了。其二就是“唯有理论高”的论调。

程序员是一个普通的职业,既没有必要妄自菲薄,也不应该妄自尊大。程序员不一定要当一辈子程序员。我看到过程序员转行做项目管理、行政管理、杂志编辑、报社的IT部门主管、经营装潢材料、开教育软件公司、去外企做FAE,做sales,也看到过程序员去读博士、博士后,当大学老师、搞科学研究。程序员转行以后就不是程序员了。但如果一个人还是程序员,就应该做好程序员的本职工作。

评价一个程序员的水平,我觉得主要有4点:语言、环境、思想和经验。一个优秀的程序员既可以对着UML图讲系统架构,也可以讲出系统运行中每个时刻每个字节的含义。要达到这样的水平,需要长时间的积累。如果每个程序员都是工作几年就转行,那么中国的软件开发水平就很难提高。要提高中国的软件水平,社会上应该形成能让程序员安心地研究和工作的氛围,而不是让他们整天担心35岁之后怎么办或者整天想着怎么成为学者、大师、科学家、大科学家、大哲。

对于现阶段的中国,理论研究和“将理论付诸实现的能力”,究竟谁更重要?这是仁者见仁,智者见智的事情。我一味强调“实现的能力”,是因为现在的中国太不重视“实现”了。

在我看来,中国人不用自己的CPU、不用自己的操作系统、不用自己的办公软件、不用自己的手机芯片、不用自己的手机软件,不用自己的卫星导航芯片,其主要原因不是缺乏理论,而是缺乏“将理论付诸现实的能力”。例如:大规模软件设计能力、项目管理能力、商务推广能力等。

国内有很多单位搞过自己的CPU、自己的操作系统、自己的办公软件、自己的手机芯片、自己的手机软件、自己的卫星导航芯片,为什么不能取得商业的成功呢?其中有标准、专利的因素,但缺乏实现和推广的能力是一个很重要的因素。如果所有理论只停留在论文、出版物、学位答辩、专家或院士的头衔上,这种理论有什么意义呢?

有的朋友说国内做不出东西是因为没有鼓励创新的环境。但就我看到的大多数项目,国家是花了很多钱的,项目领头人也是有真才实学,有自己的技术的。为什么还是不成功?

做一个产品不是光有核心技术就可以了。这些产品没有获得成功不是因为核心技术,失败的原因在于具体的软硬件设计、人性化设计、项目管理、商业推广。其实这些看似不核心的技术里面也蕴含着很多经验、思想、教训。如果中国的每个程序员都想着做科学家,研究高深的理论。那么谁来把这些理论变成有价值的东西呢?周伟明言论的危害就在于此。

在不少人的思维中,总是以官僚为高,劳动者为低;脑力劳动为高,体力劳动为低。这种思维模式是有害的。一个人的价值在于他为社会作了多少贡献,而不在于他占有了多少社会资源。社会需要卓越的管理者,但不需要每个人都成为管理者。社会需要科学家,但不需要每个人都成为科学家。如果一个社会的每个人都只想着出人头地,做人上人,占有更多的资源,这个社会能做出稳定可靠的产品吗?

有的网友说“你和周伟明究竟谁是盲人”?关于这一点,我在一篇旧文中说过,这世界上唯一的真理就是不要盲目相信真理。不要盲目跟随别人,我的经历决定我的看法,你要根据自己的经历和体验形成你自己的看法。

分享到:
评论

相关推荐

    程序员的十层楼

    标题和描述均提到了“程序员的十层楼”,这一概念主要探讨了程序员在技术能力上的层次划分,旨在通过分析不同层级所需的技术水平,比较中国与西方程序员的能力差异。文章由多核编程专家周伟明撰写,他基于自身丰富的...

    程序员的十层楼.

    所谓的“程序员的十层楼”,正是一种生动的比喻,用以描绘程序员在技术成长的各个阶段。它不仅是一张技术能力的地图,更是国与国之间技术力量角逐的缩影。 首层,乃初出茅庐之辈,人称【菜鸟】。他们带着对编程的...

    程序员十层楼

    本书《程序员十层楼》通过对程序员技术能力的细致划分,提出了一个包含十个层次的程序员技能体系,以帮助读者更清晰地了解和定位自己的技术水平。在这一体系中,作者周伟明从自身丰富的软件开发经验和对程序员职业的...

    程序员的十层楼(1程序员的十层楼(1).rar

    程序员的十层楼程序员的十层楼(1).rar程序员的十层楼(1).rar程序员的十层楼(1).rar程序员的十层楼(1).rar程序员的十层楼(1).rar

    程序员十层楼 程序员的修炼

    这篇文章“程序员十层楼:程序员的修炼”旨在描绘程序员从初学者到资深专家的成长路径,为不同阶段的程序员提供一个自我评估和提升的标准。下面将详细探讨这个成长体系中的各个层次及其所代表的知识点。 1. **入门...

    程序员的十层楼.txt

    但从标题“程序员的十层楼”推测,这份文档可能旨在通过一系列编码示例或编程规则来隐喻性地描述程序员的成长过程或者编程技能的不同层次。以下是对该文档中所涉及知识点的解读: ### 一、程序员成长的十个阶段 1....

    程序员十层境界(很经典)

    ### 程序员十层境界详解 #### 第一境界:初学者 在这个阶段,程序员刚刚踏入编程领域,对各种编程语言如C/C++、Java、JavaScript等有初步的了解。这一阶段的重点在于掌握基本的语法和编程逻辑,能够编写简单的程序...

    程序员的十层楼.doc

    以下是对“程序员的十层楼”各层次的详细解释: 1. **第1层 菜鸟**:初入编程领域的新人,掌握基本的编程语言和编程概念,能够编写简单的程序。 2. **第2层 大虾**:对一种或多种编程语言有深入理解,能够解决常见...

    程序员成长的十层楼!!!

    纵观程序员成长的十层楼,每一层都是一次自我超越的挑战,每一步的攀登都凝结着汗水和智慧。而在这条不断上升的道路上,我们需要珍惜每一次学习和成长的机会,因为成功稀有,而努力攀登的每一个人都值得尊敬。

    程序员的十层楼 网上流传 思想很有高度

    ### 程序员的十层楼:技术成长之路 #### 第一层:菜鸟阶段 - **定义**:作为程序员职业生涯的起步阶段,菜鸟通常具备基本的计算机操作技能,并且掌握了一门或多门编程语言(例如C/C++、Java、JavaScript等)的基础...

    程序员的十层楼-IT人士参考

    当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。 那么,到底中国的程序员水平比...

Global site tag (gtag.js) - Google Analytics