程序员的十层楼(1~3层)

作者: Zhouweiming 周伟明 (42 篇文章) 日期: 二月 4, 2009 在 2:25 下午

程序员的十层楼

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

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

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

第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://software.intel.com/zh-cn/blogs/)和多核论坛(http://forum.csdn.net/Intel/IntelMulti-core/)去看看相关文章,再买上几本相关的书籍学习一下。

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

也有不少谦虚的"牛人",知道自己现在还不到半桶水阶段。他们深知爬楼的游戏就像猴子上树一样,往下看是笑脸,往上看是屁股。为了多看笑脸,少看屁股,他们并没有在此停步不前,而是继续寻找到更上一层的楼梯,以便继续往上爬。

下一篇文章请看:程序员的十层楼(4~5层)

分类: 其他

 评论 (93)

2009年02月04日 14:38


英特尔® 软件网络博客 - 中文 » 程序员的十层楼(4~5层)
[...] 第1~3层,请看这里:http://software.intel.com/zh-cn/blogs/2009/02/04/1071/ [...]
2009年02月04日 14:59


英特尔® 软件网络博客 - 中文 » 程序员的十层楼(6~7层)
[...] [...] 第1~3层,请
2009年02月04日 15:06


英特尔® 软件网络博客 - 中文 » 程序员的十层楼(8~9层)
[...] 第4~5层 看这
2009年02月05日 09:44


xt
不错,很受启发!
2009年02月05日 16:40


zacry
写的很好,给我很多提示!感谢楼主!
2009年02月05日 16:43


aquan1230
很好。蛮有意思的。有高度!
2009年02月05日 17:14


有没有比菜鸟更菜的啊?
有没有比菜鸟更菜的啊?
2009年02月05日 19:50


中国还是很有希望的
2009年02月05日 20:23


国富民强
国富民穷、国弱民强,简称:国富民强
2009年02月05日 23:25

alphabase
alphabase
论述很广,很有意思,值得收藏。
2009年02月06日 10:20


saiya
从开始接触程序到现在为止,原来我只是菜鸟级!!!!哈哈哈。。。。。。。
2009年02月06日 16:40


davidhanaiyan
说起类容易做起来难呀
2009年02月06日 20:38


Windy
我想问问做BIOS的在第几层?
2009年02月07日 00:07


大大
什么东东 我看不明白?
2009年02月07日 09:42


shly
谢谢您的帮助!
2009年02月07日 21:28


wx
嗯!不错!!!!!
长知识!
2009年02月08日 09:54


当然有比菜鸟更菜的
很好很强大 深受 启发 但愿牛年我能成大牛
2009年02月08日 09:58


atan
没看的时候自己也知道 但尽量不去想
看了之后郁闷得不想都不行了
2009年02月08日 10:36


Ly
我在第二层挤一挤
2009年02月08日 10:54


[转]程序员的十层楼 « 阿莉雅集市 -ARIA Bazaar-
[...] 作者: 周伟明 原帖地址: http://software.intel.com/zh-cn/blogs/2009/02/04/1071/?cid=sw:prc csdn548 [...]
2009年02月08日 11:05


学习是硬道理
中国有高人???哪个物理引擎是中国人开发的?哪个粒子引擎是中国人开发的?开发木马的到不少。大师级的一个也没有。全是牛皮匠。
2009年02月08日 12:26


海豚湾
是的要想成为软件行业的牛人,就必须付出努力和精力去熟练的掌握多种技术!
2009年02月08日 14:26


lzy
菜鸟级的大虾。当然不敢自称大虾。不过在过2年就当之无愧了
2009年02月08日 16:29


杜宇
虾比牛肉好吃多了哦
2009年02月08日 16:36


少军
楼主,说得好!
我会努力冲向大虾的!
2009年02月08日 19:12


拜伦
就扯吧~说的不确切,抓住核心,没有这么分层的。
2009年02月08日 20:31


程序员的十层楼
[...] 作者: 周伟明 http://software.intel.com/zh-cn/blogs/2009/02/04/1071/ [...]
2009年02月08日 21:40


shijiayun
向大虾进发
2009年02月08日 22:35


if2
编程随便学学,反正也只是兴趣而已
2009年02月09日 08:20


alex
就扯吧~说的不确切,抓住核心,没有这么分层的。
2009年02月09日 09:46


英特尔® 软件网络博客 - 中文 » 程序员的十层楼 10层(上)
[...] 就扯吧~说的不确
2009年02月09日 09:51


英特尔® 软件网络博客 - 中文 » 程序员的十层楼 10层(下)
[...] 就扯吧~说的...[...] 就扯吧~说的
2009年02月09日 09:58


英特尔® 软件网络博客 - 中文 » 程序员的十层楼 11层(上帝)
[...] 就扯吧~说的....[...] 就扯吧~说的....[...] 就扯吧~说的...[...] 就扯吧~说的
2009年02月09日 15:31


请问版主是第几层?
2009年02月09日 18:08


dongdong
“原来当年创制乾坤大挪移心法的那位高人,
内力虽强,却也未到相当于九阳神功的地步,只能练到第六
层而止。他所写的第七层心法,自己已无法修练,只不过是
凭着聪明智慧,纵其想象,力求变化而已。张无忌所练不通
的那一十九句,正是那位高人单凭空想而想错了的,似是而
非,已然误入歧途。要是张无忌存着求全之心,非练到尽善
尽美不肯罢手,那么到最后关头便会走火入魔,不是疯癫痴
呆,便致全身瘫痪,甚至自绝经脉而亡。”

哈哈,共勉!
2009年02月09日 20:32


阿杜
向大牛挺进
2009年02月10日 19:54


popopo13
做为才入门的小小虾米 看了这个后感觉是碰到了前人指路般,更有信息向上一层前进
2009年02月11日 20:52


江枫
看来本人真的需要努力了。
2009年02月21日 06:23


一切皆有可能
我是菜鸟,向大虾挺进
版主说得的确不错,顶起来!
2009年02月21日 11:12


gg
编程是那么的神秘,永远有功不完的关
2009年02月22日 04:28


陆生
看来中国牛人不容易,跟着兴趣走吧!能走多远就算多远。
2009年02月22日 04:51


simon
》》为了多看笑脸,少看屁股,他们并没有在此停步不前,而是继续寻找到更上一层的楼梯,以便继续往上爬。

很形象
2009年02月22日 05:54


hanzou
"经常在网络上乱砸板砖是这个群体的最好写照"
作者是在说他自己??
2009年02月22日 20:52


命运的回转
属于菜鸟,多来逛逛,学习学习,希望对自己有帮助
2009年02月23日 18:36

seman007
seman007总分:
5
Registered User
还要加油!!
2009年02月23日 23:57


may
我以为:
1 计算机工程学、计算机科学和计算机技术应用是各学科主题。你混合了这些领域的对一个人的要求。好比纯理论物理学家、应用物理学家和物理学工 程应用工程师,这不是同一维度的成长;
2 早年国内微软的一个.NET系列书,有提起软件工程师的成长之路。我想如果就个人的软件工程师的成长来说,那个更有借鉴和参考的意义;
3 你举的那些案例,包括:微软、google、并发技术 TBB,我以为那是发展的历程上的。你不可以在历史长河上说,牛顿没有爱因斯坦厉害;
4 我没有详细的看你所有的十一级。但我想将计算机科学和计算机基础的领域来要求软件工程师是错误的,是反科学的。最后的11级,我以为是你个 人的哲学困惑,也是你写这个等级系列文章的必然的走火入魔 —— 你并没有真正的理解程序员的成长之道。
5 最后,我个人以为程序员时代已经过去了,我更愿意称谓现在的大多数programmer为软件工程师。我们的计算机理论已经彻底的分离给更 专业的人员了,至于计算机的科学应用方面,我觉得他们也不愿意称自己为程序员了。
2009年02月25日 22:50


chen
前几层还是写得很好的,谢谢。为何我的评论全被删了?
2009年02月28日 21:54


bin
我要当牛人
2009年02月28日 21:54


bin
我要当牛人
2009年02月28日 21:54


bin
我要当牛人
2009年03月02日 00:10


李双宝
看来我正向牛人迈进。
2009年03月07日 23:19


鬼影
振兴民族软件产业,各位努力啊,中国的未来就靠你们了,只是别老开发什么木马,那是犯罪的。有时间还不如开发些正当的东西,你们辛苦学到的 技术可不是拿来犯罪的。
为振兴民族软件产业而努力吧
2009年03月09日 10:51


ancker
牛人也太容易了吧! 我觉得你第二层降第一层
第三层难度再提3倍
2009年03月19日 02:22


小龙
深受启发,努力学习
2009年03月19日 06:16


看来我这个小虾米要达到更高层次的水平还得付出很多的经力。。。。。在这学习了。。
我要好好努力争取在未来的某天能够达到第三层。
2009年03月19日 09:06


孙磊磊
我在大二时学习了C语言,现在就要毕业了,不但没有从“菜鸟”升为“大虾”,反而将所学的忘得差不多了,
2009年03月19日 21:43


lyghe
楼主写得很好,几乎覆盖了计算机软件科学的所有方面。
但是在下不敢苟同楼主将它们类比成楼层。
楼主所说的各个层次,在下认为不妨把它们称作不同方向。
在下认为,现今社会是智力资源大分工的社会,各种工作都要有人来做,各种工作都有人做的非常出色,各种工作所创造的价值——经济的、社会的 、技术的、理论的——都不可或缺。
云计算方面的专家也许不并不知道怎么把图形化界面的用户友好性做得非常好。如果硬要把各个方向分出个高下,倒是和古代的社会等级观念有点儿 相像了。在下担心,楼主的文章会不会给广大的计算机软件工作者——尤其是初学者——造成不必要的心理负担。
2009年03月20日 02:16


wenqiang
过了大虾的阶段了。正在往牛人走。
2009年03月20日 20:17


孙攀浪
程序员里还有真么多门道,该是努力奋斗的时候了。。加油!!!!!
2009年03月20日 22:51


wangmi
呵呵,看了下,真的晕了,现在还在入门级中,而且是每天保持不断地复习看那些基础知识.

至于下几层的那些知识,我不知道何年何月才能看到了

技术水平高低,因人而定,各人不同,不可能人人经过努力都会成为下一个王志东

问题总是要解决的,努力是硬道理...
2009年03月21日 02:49


张钦艺
看了你的文章觉得现在自己在大学里面学的真的很少很少!
再不努力可能到毕业也最多能混个菜鸟了!
努力努力!!!
2009年03月21日 03:29


张浩
哎 , 长见识了!!
以后的路很长啊,继续努力!!!
2009年03月21日 03:56


罗宝利
看了你的文章之后挺会深啊,混个菜鸟都难啊,只能一步一步,慢慢地,稳稳的,向前走...
2009年03月21日 05:01


xqlzxsmile
很厉害嘛!
2009年03月21日 05:43


悲哀
学了四年计算机专业本科 又参加了半年专业软件培训 才发现 自己连菜鸟都不算
2009年03月21日 06:13


aa
顶一个再说
2009年03月21日 20:33


周洪
电脑程序总是针对实际需要编写的,譬如奥运会场馆各项事务管理、或者航天项目中的《嫦娥》计划……等等。这些工程需要各类层次的程序员,所 以不同层级程序员只要有大量的项目实施,他们会做出伟业的,他们中的优秀人员会脱颖而出!
2009年03月22日 01:27


lxl
这太让人振奋了,我还差的远。
2009年03月22日 05:28


wiikr
感悟不少~
2009年03月22日 08:04


ljdjd
我还是菜鸟,很受启发
2009年03月22日 18:47


聂润龙
我现在是大虾
怎么没感觉!!!
####!@!#!$$@$@$~
2009年03月22日 21:07

forever3
forever3总分:
5
Registered User
hao
2009年03月22日 22:34


guitizi
哎 看来我还是菜鸟
2009年03月23日 03:36


kiwi
sogood
2009年03月23日 05:05


wangdan1600
天啊!
菜鸟级,伤心
2009年03月23日 20:23


ddongxyc
看了 一 些 不 明 白 的 东 西 现 在 不 知 道 学 玩 一 些 简 单 的 语 言 都 做 不 出 一 个 小 程 式 那 位 大 虾 给 一 些 建 意 啊
2009年03月23日 20:48


pcfans81
我学的专业是软件,却没有机会做软件,只能做个文职,我是属于往下爬,已经到底的一类。
2009年03月23日 20:48


pcfans81
我学的专业是软件,却没有机会做软件,只能做个文职,我是属于往下爬,已经到底的一类。
2009年03月25日 04:03


Jaley
正向IT精英前进
2009年03月25日 21:06


dt
程序员的工作本来就是为了创新的。不知道作者分了这么多层让初学者望而却步是什么意图?
2009年03月26日 07:10


will
感悟~~,自己的路还很长......
2009年03月26日 21:51


LSHeeP
汗,勉强是菜鸟的生物飘过
正在幻想下面还会有怎样的境界
2009年03月27日 01:51


小火机
牛年 我要努力成小牛
2009年05月06日 09:58


qxgzr
Java技术联盟群:52968811 期待您的加盟!

群内讨论一切Java技术

想学好Java请您进群,真正的技术讨论群 !
2009年06月04日 06:26

qgdbr
qgdbr总分:
25
Registered User
编程序快2年了,一直没有接触网络编程这块~ 正在考虑要不要进入...其实 语言这东西 不用就忘了...所以 决定不学了...
后来 遇到了内存等问题....是啊 我应该多看一些书了...
努力向前!
2009年07月01日 19:01


糖醋鼻子
迎合了大多数人的心理,却扼杀了有天赋的人。个人认为,机械的分层是不负责任的,本人也为曾莽撞的总结感到愧疚。
作为程序员,永远不能忘了,经验是别人的,变成自己的才是智慧,忘掉地平线,踏踏实实的走路,你会发现你想要的其实是过程
2009年07月30日 09:39


zz
周伟明你是SB吗?别自吹自擂了,你读过几本书写过几行狗屁不通的代码就在这里显摆?别把上帝的大牙笑掉屁股笑歪了~
2009年08月10日 21:08


Meis·菜鸟
我是菜鸟,很想到了更高的一层,我就直接向大牛出发老@_@
2009年10月13日 10:50


冯光辉
真的假的啊 先弄个牛人玩玩也好啊 哈哈
2009年11月10日 07:01


whoknows
菜鸟,也有翅膀啊!
2009年11月10日 19:30

stephaniewang
stephaniewang总分:
20
Registered User
"迎合了大多数人的心理,却扼杀了有天赋的人。个人认为,机械的分层是不负责任的,本人也为曾莽撞的总结感到愧疚。
作为程序员,永远不能忘了,经验是别人的,变成自己的才是智慧,忘掉地平线,踏踏实实的走路,你会发现你想要的其实是过程"

非常赞同楼上这位的观点!经验是别人的,变成自己的才是智慧,忘掉地平线,踏踏实实的走路,你会发现你想要的其实是过程!
2009年12月15日 03:08


李晓锋
原来一直觉得自己虽然肯定算不上一流的程序员,但是怎么的也能挤进二流程序员的行列。
今天才知道其实我还没爬到第三层呢,真是受打击啊。
2009年12月21日 16:35

wupengwhylove@163.com
wupengwhylove@163.com总分:
5
Registered User
发现自己处于“大虾”入门级。还得努力啊!

 引用 (6)


 写评论  

欲获得技术支持,请访问软件支持页面.
姓名 (必填)*

电子邮件 (必填,不在本页面显示)*

您的 URL (可选)


评论*