`

程序员层次

阅读更多

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

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

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

分享到:
评论

相关推荐

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

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

    Open PHIGS:PHIGS(程序员的层次交互式图形系统)-开源

    PHIGS是用于渲染3D计算机图形的API标准。 在1990年代,OpenGL成为了一种更受专业人员欢迎的3D API,并且至今仍在使用。 PHIGS仍将在电影行业中广泛使用。 Open PHIGS使用OpenGL渲染图形,而不是将其自己的抽象层实现...

    程序员道路的十个层次

    《程序员道路的十个层次》是一份深度探讨程序员职业生涯发展的文档,旨在帮助程序员明确自我定位,规划职业路径。这篇文档从入门新手到顶尖专家,详细描绘了程序员在技术成长过程中的十个不同阶段,每个阶段都有其...

    程序员的八重境界

    文章不仅对程序员的各种层次进行了细致入化的划分,还鼓励每个从业者明确自己的目标与定位,追求属于自己的那份价值。 #### 八重境界详解 ##### 第一重:Bad Programmer - 糟糕透顶 **定义:**这一层指那些完全...

    程序员的十个层次

    ### 程序员的十个层次 在IT行业中,程序员的职业发展路径往往被分为不同的层次。这些层次不仅代表了技术水平的高低,也反映了对技术理解的深度与广度。本文将根据给定的信息,深入探讨程序员职业成长的不同阶段及其...

    程序员的十个层次.zip

    【程序员的十个层次】 在IT行业中,程序员是构建软件世界的基石。他们通过编写代码将抽象的概念转化为实际的应用。为了更好地理解和评价程序员的能力,业界通常会将程序员分为不同的层次。以下是对程序员十个层次的...

    apollo_3d_1.ply

    1992年,国际标准化组织又将NURBS纳入到规定独立于设备的交互图形编程接口的国际标准PHIGS(程序员层次交互图形系统)中,作为PHIGS Plus的扩充部分。Bezier、有理Bezier、均匀B样条和非均匀B样条都被统一到NURBS中...

    程序员的十层楼

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

    程序员的经验.doc

    通过多层次的测试,可以确保软件的健壮性和稳定性,从而降低发布后的风险。 时间管理是程序员职业生活中的又一个挑战。在项目进度的估算上,程序员需要坚持实事求是的原则,以免在用户压力下妥协,导致进度过于紧张...

    程序员必读书推荐

    书中不仅涵盖了编程技术,更强调了软件开发中的其他方面,比如架构设计,帮助程序员提升到更高的层次。 《计算机程序的构造和解释》是一本对于那些希望深入理解程序设计的程序员来说十分重要的书籍。它不仅仅教授了...

    程序员十层楼

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

    程序员的数学4:图论入门.pptx

    DFS通过递归方式深入图的结构,先探索尽可能深的分支,而BFS则按层次顺序访问节点,从起始节点开始一层层向外扩展。这两种算法在解决实际问题时应用广泛,如路径搜索、网络爬虫等。 在图论的实际应用中,最小生成树...

    程序员的思维修炼

    本书由著名的图灵出版社出版,作者很可能是资深的IT领域专家或者技术作家,他们凭借丰富的经验,将那些难以言传的编程思维和逻辑传授给读者,帮助程序员从更高的层次理解技术,提升其解决复杂问题的能力。...

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

    这一层次的程序员不仅仅是掌握了一门或多门语言,更重要的是具备了系统架构的能力。他们能够设计出高效稳定的软件系统,并且对于操作系统、网络通信协议(如TCP/IP)等有着深刻的理解。架构师的角色往往要求他们在...

    程序员分成几种不同的境界

    这一层次的程序员往往热衷于追逐最新的编程语言和框架,喜欢通过解决小型练习来提升技术。然而,他们可能缺乏与实际业务需求对接的能力,忽视了市场和用户的真正需求,因此在大型项目中可能显得力不从心。 四流...

Global site tag (gtag.js) - Google Analytics