程序员的十层楼

SINCE1978 2009-05-08 08:50:42
加精
自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。

那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道程序员有多少种技术层级,每个层级需要什么样的技术水平,然后再比较中国和西方在各个技术层级的人数,就可以知道到底有没有差距,差距有多大。

当然,对于如何划分程序员的技术层级,不同公司或不同人会有不同的划分标准,下面的划分仅代表个人的观点,如有不当之处,还请砸板砖予以纠正。

第1层 菜鸟

第1层楼属于地板层,迈进这层楼的门槛是很低的。基本上懂计算机的基本操作,了解计算机专业的一些基础知识,掌握一门基本的编程语言如C/C++,或者Java,或者JavaScript,...,均可入门迈进这层。

在这层上,中国有着绝对的优势,除了从计算机专业毕业的众多人数外,还有大量的通信、自动化、数学等相关专业的人士进入这一行,此外还有众多的其他专业转行的人士,人数绝对比西方多出甚多。并且还有一个优势就是我们这层人员的平均智商比西方肯定高。

没有多少人愿意一辈子做菜鸟,因为做"菜鸟"的滋味实在是不咋的,整天被老大们吆喝着去装装机器,搭建一下测试环境,或者对照着别人写好的测试用例做一些黑盒测试,好一点的可以被安排去写一点测试代码。当然如果运气"好"的话,碰到了国内的一些作坊式的公司,也有机会去写一些正式的代码。

所以,菜鸟们总是在努力学习,希望爬更高的一层楼去。

第2层 大虾

从第1层爬到第2层相对容易一些,以C/C++程序员为例,只要熟练掌握C/C++编程语言,掌握C标准库和常用的各种数据结构算法,掌握STL的基本实现和使用方法,掌握多线程编程基础知识,掌握一种开发环境,再对各种操作系统的API都去使用一下,搞网络编程的当然对socket编程要好好掌握一下,然后再学习一些面向对象的设计知识和设计模式等,学习一些测试、软件工程和质量控制的基本知识,大部分人经过2~3年的努力,都可以爬到第2层,晋升为"大虾"。

中国的"大虾"数量和"菜鸟"数量估计不会少多少,所以这层上仍然远领先于西方。

大虾们通常还是有些自知之明,知道自己只能实现一些简单的功能,做不了大的东西,有时候还会遇到一些疑难问题给卡住,所以他们对那些大牛级的人物通常是非常崇拜的,国外的如Robert C. Martin、Linus Torvalds,国内的如求伯君、王志东等通常是他们崇拜的对象。其中的有些人希望有一天也能达到这些大牛级人物的水平,所以他们继续往楼上爬去。

第3层 牛人

由于"大虾"们经常被一些疑难问题给卡住,所以有了"大虾"们只好继续学习,他们需要将原来所学的知识进一步熟练掌握,比如以熟练掌握C++编程语言为例,除了学一些基础性的C++书籍如《C++ Primer》,《Effective C++》,《Think in C++》,《Exception C++》等之外,更重要的是需要了解C++编译器的原理和实现机制,了解操作系统中的内部机制如内存管理、进程和线程的管理机制,了解处理器的基础知识和代码优化的方法,此外还需要更深入地学习更多的数据结构与算法,掌握更深入的测试和调试知识以及质量管理和控制方法,对各种设计方法有更好的理解等。

学习上面说的这些知识不是一挥而就的,不看个三五十本书并掌握它是做不到的。以数据结构算法来说,至少要看个5~10本这方面的著作;以软件设计来说,光懂结构化设计、面向对象设计和一些设计模式是不够的,还要了解软件架构设计、交互设计、面向方面的设计、面向使用的设计、面向数据结构算法的设计、情感化设计等,否则是很难进到这个楼层的。

当然除了上面说的知识外,大虾们还需要去学习各种经验和技巧。当然这点难不倒他们,现在出版的书籍众多,网络上的技术文章更是不胜数,然后再去各种专业论坛里泡一泡,把这些书籍和文章中的各种经验、技能、技巧掌握下来,再去学习一些知名的开源项目如Apache或Linux操作系统的源代码实现等。此时对付一般的疑难问题通常都不在话下,菜鸟和大虾们会觉得你很"牛",你也就爬到了第3层,晋升为"牛人"了。

看了上面所讲的要求,可能有些大虾要晕过去了,成为牛人要学这么多东西啊!要求是不是太高了?其实要求一点也不高,这么点东西都掌握不了的话,怎么能让别人觉得你"牛"呢?

需要提一下的是,进入多核时代后,从第2层爬到第3层增加了一道多核编程的门槛。当然要迈过这道门槛并不难,已经有很多前辈高人迈进了这道门槛,只要循着他们的足迹前进就可以了。想迈进这道门槛者不妨去学习一下TBB开源项目的源代码(链接:http://www.threadingbuildingblocks.org/),然后上Intel的博客(http://softwareblogs-zho.intel.com/)和多核论坛(https://forum.csdn.net/Intel/IntelMulti-core/)去看看相关文章,再买上几本相关的书籍学习一下。

在国内, 一旦成为"牛人",通常可以到许多知名的公司里去,运气好者可以挂上一个架构师的头衔,甚至挂上一个"首席架构师"或者"首席xx学家"的头衔也不足为奇。有不少爬到这层的人就以为到了楼顶了,可以眼睛往天上看了,开始目空一切起来,以为自己什么都可以做了,什么都懂了,经常在网络上乱砸板砖是这个群体的最好写照。由此也看出,国内的牛人数量仍然众多,远多于西方的牛人数量,在这层上仍然是领先的。

也有不少谦虚的"牛人",知道自己现在还不到半桶水阶段。他们深知爬楼的游戏就像猴子上树一样,往下看是笑脸,往上看是屁股。为了多看笑脸,少看屁股,他们并没有在此停步不前,而是继续寻找到更上一层的楼梯,以便继续往上爬。
...全文
8036 228 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
228 条回复
切换为时间正序
请发表友善的回复…
发表回复
沪下九头鸟 2011-08-29
  • 打赏
  • 举报
回复
这就是传说中的殊途同归么 这还是程序员么 蛋疼的人 我只要能有个工作有饭吃有地住有老婆 有父母不就够了 想那么多干嘛
super_chris 2010-12-23
  • 打赏
  • 举报
回复
重出江湖吧此贴!
laneagle 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 tassadar1979 的回复:]

--------------------------------------------------------------------------------
中学阶段

10 PRINT \"HELLO WORLD\"
20 END
---------------------------------------------------------------------------……
[/Quote]
最后一层 烈士!
h8312 2009-11-18
  • 打赏
  • 举报
回复
了解了不少人物到是真的!!!学习了
Kevin_L_Ke 2009-11-17
  • 打赏
  • 举报
回复
ding
lunuol 2009-11-13
  • 打赏
  • 举报
回复
楼主文章在关于it技术方面的分层还是有意义的,但是到了科学、哲学层面就露出了致命的弱点(9层、10层、11层)。从文中明显感受到作者对于科学过分崇拜,仿佛科学法力无边;至于哲学,似不太懂,所以所谓大哲就完全是故弄玄虚,最后不得不请出大家久违了的上帝来压阵。

首先,我问你:是人类创造了科学还是科学创造了人类?

说的是科学,不是科学研究的对象——物质运动。如果你要回答是科学创造了人类,那就没必要谈下去了,或者用楼主的话说是我们处在不同的逻辑体系里。如果认为人类创造了科学那我们就可以继续谈。既然是人类创造了科学,那么科学就是人类认识能力的子集,科学家也是人类的子集。以子集描述超集,以子集规制超集,以子集预测超集,就用文中崇拜的逻辑也是通不过的。明确地说,就是文章用现有的物理定律来预测整个宇宙。要知道,现有的物理定律仅仅是人类过去几千年的认识成果。甚至是过去几千年少数人的认识成果。比如,文章要人回到过去的时间,这样的事情根本没有观察到过,而这样的实验还要宇宙遵守你那个经典物理学中的一些定律,什么要空气分子给你让出空间来,真的是荒谬的。

文章大谈特谈的宿命论的依据就是“由于粒子运动是按照物理定律进行的”,须知,你现在这些物理定律仅仅是有限观察所总结出来的。什么“在一个时间点上宇宙有一个确定的运动状态”,这些话反映出作者根本就没有谈哲学的基础,还处于哲学的“扫盲级”。所以我没法现在就跟你谈哲学。

最后说一点吧,对科学不要过分崇拜,否则就是迷信科学。如果那样,科学就走到了反面——迷信,当然是被庸俗的思想带进去的。科学是人类的作品、助手,不是上帝的作品,不是超越人类的,不是上帝!
xiaoye 2009-11-13
  • 打赏
  • 举报
回复
有点偏激,不过还是可以学习学习的
lt42287949 2009-11-13
  • 打赏
  • 举报
回复
tfxg 2009-11-13
  • 打赏
  • 举报
回复
佛祖
xiaochengxun 2009-11-13
  • 打赏
  • 举报
回复
hao
NeedHelper 2009-10-26
  • 打赏
  • 举报
回复
搞鸟,明天继续混饭~~~
saiche05 2009-10-26
  • 打赏
  • 举报
回复
精彩绝伦。

精彩杰伦。
super_chris 2009-10-25
  • 打赏
  • 举报
回复
如果上帝指的是一种超越我们认知的能力的话,那么祂是可能存在的。
unjing 2009-10-25
  • 打赏
  • 举报
回复
顶个
wangtingguang 2009-10-25
  • 打赏
  • 举报
回复
想那么多干什么啊,
最后都是死路一条,
最后地球也完蛋了。
历史名流也完蛋。
一切都完蛋了。
活一天
算一天。
super_chris 2009-10-24
  • 打赏
  • 举报
回复
[Quote=引用 205 楼 idealguy 的回复:]
严重扯淡!

个人认为程序员的楼层编到大师或学者一层即可。因为按照前面的描述,后面的几层似乎既和编程无关,也不用从菜鸟一层一层爬过来。

每个科学领域,如数学、物理学,都有自己的菜鸟、牛人...大师等层次。文中所说的最高几层的人实际上就是这些领域的学者和大师,而不是程序员大师的更高级。

科学家们应该是相关科学领域的大牛、学者和大师(大师应该比学者层次高,是有成就的学者)

所谓的大哲应该是哲学领域的大师。学者学的人大多根本不懂编程,也没有读过200~500本计算机和编程的书。

杨福家教授曾说过,中国的大学缺少的不是大楼,而是大师。可见,大师是最高级。

如果程序员的大师又研究起哲学来了,似乎还要从哲学的某一层次开始重新学起来,至于能否成为哲学的大师——大哲,也要看他的造化了。
[/Quote]
成为大哲不一定要懂编程,作者的意思是走编程这条路也可以成为大哲的,甚至上帝
super_chris 2009-10-24
  • 打赏
  • 举报
回复
第一次完整读完此文,应该说前半部分让我受益匪浅,后半部分给了我一次非凡的思想游历。
很爽的说!
maxxfire 2009-10-24
  • 打赏
  • 举报
回复
洗洗睡吧。。
只要在地球上,即使成了神,也是要吃饭的,也是有七情六欲的,也是有痛苦的。。
dollfacedboyfriend 2009-10-23
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 springbell 的回复:]
引用 33 楼 victor8200 的回复:
我要背着那重重的壳呀,一步一步往上爬!!


顺便背着我吧,我看你爬
[/Quote]
再背我一个,等你爬到11层,我就13层了!
ggq106 2009-10-23
  • 打赏
  • 举报
回复
牛啊
加载更多回复(208)

662

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧