`
awfwxf
  • 浏览: 70415 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

程序员的十层楼(菜鸟,大虾,牛人......)

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

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

以下来:1-3层

第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学家"的头衔也不足为奇。有不少爬到这层的人就以为到了楼顶了,可以眼睛往天上看了,开始目空一切起来,以为自己什么都可以做了,什么都懂了,经常在网络上乱砸板砖是这个群体的最好写照。由此也看出,国内的牛人数量仍然众多,远多于西方的牛人数量,在这层上仍然是领先的。

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

转自:http://software.intel.com/zh-cn/blogs/2009/02/04/1071/?cid=sw:prccsdn548
4
1
分享到:
评论

相关推荐

    程序员的十层楼.

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

    程序员十层楼

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

    程序员的十层楼

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

    程序员的十层楼.doc

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

    计算机软件开发行业——程序员的竞升之路感悟.pdf

    该模型分为十个层级,并额外设定了一个理想化的最高层级——“上帝”级别,用来象征着程序员职业道路上的终极追求。 #### 二、程序员技术层级划分 ##### 第一层:菜鸟 - **门槛**:较低,基本的计算机操作知识、...

    程序员的十层楼:大家都来测测你的技术层级.pdf

    【程序员的十层楼】这个概念是对程序员技术能力的一种阶梯式划分,旨在分析和比较不同层次程序员的技术水平。根据描述,这种划分主要基于个人技能、知识广度和深度,以及解决问题的能力。以下是对各层次的详细说明:...

    程序员的十个层次 你属于哪一层?

    ### 程序员的十个层次:从菜鸟到牛人的成长之路 #### 第1层:菜鸟 菜鸟作为程序员生涯的起点,门槛较低。这一阶段的程序员通常具备基本的计算机操作能力,了解一定的计算机专业知识,并能掌握至少一种编程语言(如...

    计算机技术人员的十层楼

    下面将根据描述和部分内容,详细解释计算机技术人员的三个层次:菜鸟、大虾和牛人。 第一层:菜鸟 这是程序员入门的阶段,门槛较低,主要要求掌握计算机基础知识和一门编程语言,如C/C++、Java或JavaScript。中国在...

    程序员10大境界.pdf

    书中所描绘的十层境界,从入门到精通,每一步都蕴含着程序员的汗水与智慧。对于那些怀揣梦想的程序员而言,这是一份值得深读、反复琢磨的宝贵资料。而对中国IT行业的长远发展来说,了解和解决这些层次间的差异,将是...

Global site tag (gtag.js) - Google Analytics