`
senton
  • 浏览: 205770 次
  • 性别: Icon_minigender_1
  • 来自: 紫禁城
社区版块
存档分类
最新评论

程序员的十层楼 (第四、五层)

阅读更多

程序员的十层楼 (第一、二、三层):
http://blog.sina.com.cn/s/blog_496316280100e998.html
程序员的十层楼 (第四、五层):
http://blog.sina.com.cn/s/blog_496316280100e99d.html
程序员的十层楼 (第六、七层):
http://blog.sina.com.cn/s/blog_496316280100e99g.html
程序员的十层楼 (第八、九层):
http://blog.sina.com.cn/s/blog_496316280100e99m.html
程序员的十层楼 (第十层):
http://blog.sina.com.cn/s/blog_496316280100e99n.html
程序员的十层楼 (第十一层):
http://blog.sina.com.cn/s/blog_496316280100e99q.html 

 

第4层 大牛

    从第3层爬到第4层可不像上面说过的那几层一样容易,要成为大牛的话,你必须要能做牛人们做不了的事情,解决牛人们解决不了问题。比如牛人们通常都不懂写操作系统,不会写编译器,不懂得TCP/IP协议的底层实现,如果你有能力将其中的任何一个实现得象模象样的话,那么你就从牛人升级为"大牛"了。

    当然,由于各个专业领域的差别,这里举操作系统、编译器、TCP/IP协议只是作为例子,并不代表成为"大牛"一定需要掌握这些知识,以时下热门的多核编程来说,如果你能比牛人们更深入地掌握其中的各种思想原理,能更加自如的运用,并有能力去实现一个象开源项目TBB库一样的东西,也可以成为"大牛",又或者你能写出一个类似Apache一样的服务器,或者写出一个数据库,都可以成为"大牛"。

    要成为"大牛"并不是一件简单的事情,需要付出比牛人们多得多的努力,一般来说,至少要看过200~400本左右的专业书籍并好好掌握它,除此之外,还得经常关注网络和期刊杂志上的各种最新信息。

    当"牛人"晋升为"大牛",让"牛人们"发现有比他们更牛的人时,对"牛人"们的心灵的震撼是可想而知的。由于牛人们的数量庞大,并且牛人对大虾和菜鸟阶层有言传身教的影响,所以大牛们通常能获得非常高的社会知名度,几乎可以用"引无数菜鸟、大虾、牛人竞折腰"来形容,看看前面提过的Linus Torvalds等大牛,应该知道此言不虚。

    虽然成为"大牛"的条件看起来似乎很高似的,但是这层楼并不是很难爬的一层,只要通过一定的努力,素质不是很差,还是有许多"牛人"可以爬到这一层的。由此可知,"大牛"这个楼层的人数其实并不像想像的那么少,例如比尔·盖茨之类的人好像也是属于这一层的。

    由于"大牛"这层的人数不少,所以也很难统计除到底是中国的"大牛"数量多还是西方的大牛数量多?我估计应该是个旗鼓相当的数量,或者中国的"大牛"们会更多一些。

    看到这里,可能会有很多人会以为我在这里说瞎话,Linus Torvalds写出了著名的Linux操作系统,我国并没有人写出过类似的东西啊,我国的"大牛"怎么能和西方的比呢? 不知大家注意到没有,Linus Torvalds只是写出了一个"象模象样"的操作系统雏形,Linux后来真正发展成闻名全球的开源操作系统期间,完全是因为许多支持开源的商业公司如 IBM等,派出了许多比Linus Torvalds更高楼层的幕后英雄在里面把它开发出来的。

    可能有些菜鸟认为Linus Torvalds是程序员中的上帝,不妨说个小故事:

        Linus,Richard Stallman和Don Knuth(高德纳)一同参加一个会议。

        Linus 说:"上帝说我创造了世界上最优秀的操作系统。"

        Richard Stallman自然不甘示弱地说:"上帝说我创造了世界上最好用的编译器。"

        Don Knuth一脸疑惑的说:"等等,等等,我什么时候说过这些话?"

    由此可以看出,Linus Torvalds的技术水平并不像想像中那么高,只是"牛人"和"大虾"觉得"大牛"比他们更牛吧了。在我国,有一些当时还处于"大虾"层的人物,也能写出介绍如何写操作系统的书,并且书写得非常出色,而且写出了一个有那么一点点象模象样的操作系统来。我想中国的"大牛"们是不会比西方差的,之所以没有人写出类似的商业产品来,完全是社会环境的原因,并不是技术能力达不到的原因。

    "大牛"们之所以成为大牛,主要的原因是因为把"牛人"给盖了下去,并不是他们自己觉得如何牛。也许有很多菜鸟、大虾甚至牛人觉得"大牛"这层已经到顶了,但大多数"大牛"估计应该是有自知之明的,他们知道自己现在还没有爬到半山腰,也就勉强能算个半桶水的水平,其中有些爬到这层没有累趴下,仍然能量充沛,并且又有志者,还是会继续往更上一层楼爬的。

    看到这里,也许有些菜鸟、大虾、牛人想不明白了,还有比"大牛"们更高的楼层,那会是什么样的楼层?下面就来看看第5层楼的奥妙。

第5层 专家

    当大牛们真正动手做一个操作系统或者类似的其他软件时,他们就会发现自己的基本功仍然有很多的不足。以内存管理为例,如果直接抄袭Linux或者其他开源操作系统的内存管理算法,会被人看不起的,如果自动动手实现一个内存管理算法,他会发现现在有关内存管理方法的算法数量众多,自己并没有全部学过和实践过,不知道到底该用那种内存管理算法。

    看到这里,可能有些人已经明白第5层楼的奥妙了,那就是需要做基础研究,当然在计算机里,最重要的就是"计算"二字,程序员要做基础研究,主要的内容就是研究非数值"计算"。

    非数值计算可是一个非常庞大的领域,不仅时下热门的"多核计算"与"云计算"属于非数值计算范畴,就是软件需求、设计、测试、调试、评估、质量控制、软件工程等本质上也属于非数值计算的范畴,甚至芯片硬件设计也同样牵涉到非数值计算。如果你还没有真正领悟"计算"二字的含义,那么你就没有机会进到这层楼来。

    可能有人仍然没有明白为什么比尔·盖茨被划在了大牛层,没有进到这层来。虽然比尔·盖茨大学未毕业,学历不够,但是家有藏书2万余册,进入软件这个行业比绝大部分人都早,撇开他的商业才能不谈,即使只看他的技术水平,也可以算得上是学富五车,顶上几个普通的计算机软件博士之和是没有问题的,比起 Linus Torvalds之类的"大牛"们应该技高一筹才对,怎么还进不了这层楼呢?

    非常遗憾的是,从Windows操作系统的实现来看,其对计算的理解是很肤浅的,如果把Google对计算方面的理解比做大学生,比尔·盖茨只能算做一个初中生,所以比尔·盖茨永远只能做个大牛人,成不了"专家"。

    看到这里,也许国内的大牛们要高兴起来了,原来比尔·盖茨也只和我等在同一个层次,只要再升一层就可以超越比尔·盖茨了。不过爬到这层可没有从"牛人"升为"大牛"那么简单,人家比尔·盖茨都家有2万多册书,让你看个500~1000本以上的专业书籍并掌握好它应该要求不高吧。当然,这并不是主要的条件,更重要的是,需要到专业的学术站点去学习了,到ACM,IEEE,Elsevier,SpringerLink,SIAM等地方去下载论文应该成为你的定期功课,使用Google搜索引擎中的学术搜索更是应该成为你的日常必修课。此外,你还得经常关注是否有与你研究相关的开源项目冒出来,例如当听到有TBB这样针对多核的开源项目时,你应该第一时间到Google里输入"TBB"搜索一下,将其源代码下载下来好好研究一番,这样也许你的一只脚已经快迈进了这层楼的门槛。

    当你象我上面说的那样去做了以后,随着时间的推移,总会有某天,你发现,在很多小的领域里,你已经学不到什么新东西了,所有最新出来的研究成果你几乎都知道。此时你会发现你比在做"牛人"和"大牛"时的水平不知高出了多少,但是你一点也"牛"不起来,因为你学的知识和思想都是别人提出来的,你自己并没有多少自己的知识和思想分享给别人,所以你还得继续往楼上爬才行。

    我不知道国内的"专家"到底有多少,不过有一点可以肯定的是,如果把那些专门蒙大家的"砖家"也算上的话,我们的砖家比西方的要多得多。
分享到:
评论

相关推荐

    程序员的十层楼

    在IT行业中,程序员被视为一座不断攀升的“十层楼”,每一层都代表了程序员的不同阶段和技能水平。这个概念形象地描绘了程序员的成长路径,激励着我们不断学习和提升自己。下面,我们将详细探讨这十层楼的具体内容,...

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

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

    程序员道路的十个层次

    第四层:工程师 工程师阶段的程序员具备系统设计能力,能够参与或主导小型项目的开发。他们熟悉软件工程流程,懂得如何在团队中协作,能有效地进行版本控制和项目管理。 第五层:架构师 架构师负责整个系统的架构...

    程序员的十个层次

    #### 第四层:高级工程师 高级工程师不仅技术精湛,还能在团队中担任领导角色,指导初级和中级工程师的成长。他们在项目管理方面也有丰富的经验,能够确保项目的顺利进行。此时,掌握并发编程、分布式系统设计等...

    程序员考试复习资料,程序员

    路由器、网桥和中继器分别工作在 OSI 的第三层、第二层和第一层。 六、计算机硬件与运算逻辑 机器数的补码和原码表示中,对零的表示可能不唯一。在 4 位有符号定点补码数据表示中,状态寄存器的 Z、N、V 标志位可以...

    程序员简历优化指南.pdf

    4. **软技能**:沟通能力、团队协作、项目管理等。 三、工作经历 1. **项目经验**:详细描述过往项目,包括项目目标、职责、使用的技术、实现的效果。 2. **成果展示**:如项目上线时间、用户量、性能提升等具体...

    程序员角度深入理解计算机系统

    ### 知识点一:计算机系统的程序员视角概览 **标题**:“程序员角度深入理解计算机系统” **描述**:“本书名为《计算机系统:程序员视角》(Computer Systems: A Programmer’s Perspective),强调用较少的资源...

    C语言高级程序员编程指南

    这本pdg格式的书籍共计十章,内容涵盖了325页的知识点,大小为3.72M,适合那些希望在C语言编程领域更上一层楼的程序员们。 首先,第一章通常会介绍C语言的历史和发展,以及其在现代软件开发中的地位。C语言因其高效...

    程序员编程艺术第一~二十七章集锦与总结(教你如何编程)(by_July)定稿版.pdf

    - **第四章**:现场编写类似`strstr/strcpy/strpbrk`的函数 - **第五章**:寻找满足条件的两个或多个数 - **第六章**:亲和数问题 - **第七章**:求连续子数组的最大和 - **第八章**:从头至尾漫谈虚函数 - **...

    黑马程序员Android视频教程

    - **系统架构**:Android系统架构可以分为四层:Linux内核层、硬件抽象层、应用程序框架层以及应用程序层。 #### 二、Android开发环境搭建 - **JDK安装**:Java Development Kit是Android应用开发的基础,需要安装...

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

    - **人才基数**:中国在程序员的初级阶段(第一层)和中级阶段(第二层)拥有明显的人数优势。 - **技术水平**:虽然整体技术水平可能与西方存在差距,但中国不乏达到甚至超过西方高水平的程序员。 - **行业现状**:...

    2022年云南省地区网页程序员职位薪酬调查报告.pdf

    3. P75(第七十五百分位数):这一数值为111,220元,意味着75%的网页程序员年薪在101,544元到111,220元之间,表明大多数有经验的网页程序员的薪酬处于这个区间。 4. P90(第九十分位数):是高收入者的标志,90%的...

    面向程序员的数据挖掘指南1

    接下来的章节逐步深入到分类问题,如第四章的分类算法,第五章的分类效果评估(如十折交叉验证、留一法和Kappa检验)以及kNN算法,这些都是数据挖掘中常用的方法。第六至八章分别探讨了朴素贝叶斯分类、非结构化文本...

    中文版Android程序员向导

    #### 第四章:浏览Android SDK 1. **SDK组件**:详细介绍SDK中的关键组件,如API文档、示例代码、模拟器等资源,帮助开发者全面掌握SDK的使用。 2. **APIs探索**:深入剖析Android API的分类和功能,如视图、布局、...

    2022年新疆地区网页程序员职位薪酬调查报告.pdf

    报告列出了P25(第二十五百分位数)、P50(中位数,即一半人员的薪资高于此数值)、P75(第七十五百分位数)以及P90(第九十分位数)四个关键数据点,分别对应于57,348元、57,082元、75,334元和84,452元。...

    程序员羊皮卷

    #### 十、程序员与猎头 - **利用猎头资源:** 合理利用猎头资源可以帮助个人更快地找到合适的工作机会。 - **避免猎头陷阱:** 谨慎对待猎头提供的信息,并确保对方是可信的合作伙伴。 #### 十一、职场秘籍——...

Global site tag (gtag.js) - Google Analytics