2022年程序员的层楼 .pdf
《2022年程序员的层楼 .pdf》由会员分享,可在线阅读,更多相关《2022年程序员的层楼 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序员的十层楼自西方文艺复兴以来, 中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落后于西方, 有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道程序员有多少种技术层级, 每个层级需要什么样的技术水平,然后再比较中国和西方在各个技术层级的人数,就可以知道到底有没有差距,差距有多大。当然,对于如何划分程序员的技术层级,不同公司或不同人会有不同的划分标准,下
2、面的划分仅代表个人的观点,如有不当之处,还请砸板砖予以纠正。第 1 层 菜鸟第 1 层楼属于地板层, 迈进这层楼的门槛是很低的。 基本上懂计算机的基本操作,了解计算机专业的一些基础知识,掌握一门基本的编程语言如C/C+,或者 Java ,或者 JavaScript ,.,均可入门迈进这层。在这层上,中国有着绝对的优势, 除了从计算机专业毕业的众多人数外,还有大量的通信、 自动化、数学等相关专业的人士进入这一行,此外还有众多的其他专业转行的人士, 人数绝对比西方多出甚多。 并且还有一个优势就是我们这层人员的平均智商比西方肯定高。没有多少人愿意一辈子做菜鸟,因为做菜鸟的滋味实在是不咋的,整天被老大
3、们吆喝着去装装机器, 搭建一下测试环境, 或者对照着别人写好的测试用例做一些黑盒测试,好一点的可以被安排去写一点测试代码。当然如果运气好的话,碰到了国内的一些作坊式的公司,也有机会去写一些正式的代码。所以,菜鸟们总是在努力学习,希望爬更高的一层楼去。第 2 层 大虾从第 1 层爬到第 2 层相对容易一些,以C/C+程序员为例,只要熟练掌握C/C+编程语言,掌握C 标准库和常用的各种数据结构算法,掌握STL 的基本实现和使用方法, 掌握多线程编程基础知识, 掌握一种开发环境, 再对各种操作系统的 API 都去使用一下,搞网络编程的当然对socket 编程要好好掌握一下,然后再学习一些面向对象的设
4、计知识和设计模式等,学习一些测试、 软件工程和质量控制的基本知识,大部分人经过23 年的努力,都可以爬到第2 层,晋升为大虾。中国的 大虾数量和菜鸟数量估计不会少多少,所以这层上仍然远领先于名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 10 页 - - - - - - - - - 西方。大虾们通常还是有些自知之明, 知道自己只能实现一些简单的功能,做不了大的东西,有时候还会遇到一些疑难问题给卡住,所以他们对那些大牛级的人物通常是非常崇拜的, 国外的如 Robert C.
5、 Martin、 Linus Torvalds, 国内的如求伯君、王志东等通常是他们崇拜的对象。 其中的有些人希望有一天也能达到这些大牛级人物的水平,所以他们继续往楼上爬去。第 3 层 牛人由于 大虾 们经常被一些疑难问题给卡住,所以有了大虾 们只好继续学习,他们需要将原来所学的知识进一步熟练掌握,比如以熟练掌握 C+编程语言为例,除了学一些基础性的C+书籍如 C+ Primer , Effective C+ , Think in C+ , Exception C+等之外,更重要的是需要了解C+编译器的原理和实现机制,了解操作系统中的内部机制如内存管理、进程和线程的管理机制, 了解处理器的基础
6、知识和代码优化的方法,此外还需要更深入地学习更多的数据结构与算法,掌握更深入的测试和调试知识以及质量管理和控制方法,对各种设计方法有更好的理解等。学习上面说的这些知识不是一挥而就的,不看个三五十本书并掌握它是做不到的。以数据结构算法来说, 至少要看个 510 本这方面的著作; 以软件设计来说,光懂结构化设计、 面向对象设计和一些设计模式是不够的,还要了解软件架构设计、交互设计、面向方面的设计、面向使用的设计、面向数据结构算法的设计、情感化设计等,否则是很难进到这个楼层的。当然除了上面说的知识外, 大虾们还需要去学习各种经验和技巧。当然这点难不倒他们, 现在出版的书籍众多, 网络上的技术文章更是
7、不胜数,然后再去各种专业论坛里泡一泡,把这些书籍和文章中的各种经验、技能、技巧掌握下来,再去学习一些知名的开源项目如Apache或 Linux 操作系统的源代码实现等。此时对付一般的疑难问题通常都不在话下,菜鸟和大虾们会觉得你很牛,你也就爬到了第 3 层,晋升为 牛人了。看了上面所讲的要求, 可能有些大虾要晕过去了, 成为牛人要学这么多东西啊!要求是不是太高了?其实要求一点也不高,这么点东西都掌握不了的话,怎么能让别人觉得你 牛呢?需要提一下的是, 进入多核时代后, 从第 2 层爬到第 3 层增加了一道多核编程的门槛。当然要迈过这道门槛并不难,已经有很多前辈高人迈进了这道门槛,只要循着他们的足
8、迹前进就可以了。想迈进这道门槛者不妨去学习一下TBB 开源项目的源代码 (链接: http:/www.threadingbuildingblocks.org/),然后上 Intel 的博客(http:/softwareblogs- )去看看相关文章,再买上几本相关的书籍学习一下。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 10 页 - - - - - - - - - 在国内,一旦成为 牛人,通常可以到许多知名的公司里去,运气好者可以挂上一个架构师的头衔,甚至挂上一个首
9、席架构师 或者首席 xx 学家的头衔也不足为奇。有不少爬到这层的人就以为到了楼顶了,可以眼睛往天上看了,开始目空一切起来, 以为自己什么都可以做了, 什么都懂了, 经常在网络上乱砸板砖是这个群体的最好写照。 由此也看出, 国内的牛人数量仍然众多, 远多于西方的牛人数量,在这层上仍然是领先的。也有不少谦虚的 牛人,知道自己现在还不到半桶水阶段。他们深知爬楼的游戏就像猴子上树一样,往下看是笑脸,往上看是屁股。为了多看笑脸,少看屁股,他们并没有在此停步不前, 而是继续寻找到更上一层的楼梯,以便继续往上爬。第 4 层 大牛从第 3 层爬到第 4 层可不像上面说过的那几层一样容易,要成为大牛的话,你必须
10、要能做牛人们做不了的事情,解决牛人们解决不了问题。 比如牛人们通常都不懂写操作系统,不会写编译器,不懂得TCP/IP 协议的底层实现,如果你有能力将其中的任何一个实现得象模象样的话,那么你就从牛人升级为大牛了。当然,由于各个专业领域的差别,这里举操作系统、编译器、TCP/IP 协议只是作为例子,并不代表成为大牛一定需要掌握这些知识,以时下热门的多核编程来说,如果你能比牛人们更深入地掌握其中的各种思想原理,能更加自如的运用,并有能力去实现一个象开源项目TBB 库一样的东西,也可以成为 大牛,又或者你能写出一个类似Apache一样的服务器,或者写出一个数据库,都可以成为大牛。要成为 大牛并不是一件
11、简单的事情,需要付出比牛人们多得多的努力,一般来说,至少要看过 200400本左右的专业书籍并好好掌握它,除此之外, 还得经常关注网络和期刊杂志上的各种最新信息。当牛人晋升为 大牛 ,让牛人们 发现有比他们更牛的人时,对牛人们的心灵的震撼是可想而知的。 由于牛人们的数量庞大, 并且牛人对大虾和菜鸟阶层有言传身教的影响, 所以大牛们通常能获得非常高的社会知名度,几乎可以用引无数菜鸟、大虾、牛人竞折腰来形容,看看前面提过的Linus Torvalds等大牛,应该知道此言不虚。虽然成为 大牛的条件看起来似乎很高似的, 但是这层楼并不是很难爬的一层,只要通过一定的努力, 素质不是很差, 还是有许多 牛
12、人可以爬到这一层的。由此可知, 大牛 这个楼层的人数其实并不像想像的那么少,例如比尔盖茨之类的人好像也是属于这一层的。由于大牛这层的人数不少,所以也很难统计除到底是中国的大牛数量多还是西方的大牛数量多?我估计应该是个旗鼓相当的数量,或者中国的大牛 们会更多一些。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 10 页 - - - - - - - - - 看到这里,可能会有很多人会以为我在这里说瞎话,Linus Torvalds 写出了著名的 Linux 操作系统,我国并没
13、有人写出过类似的东西啊,我国的大牛怎么能和西方的比呢 ? 不知大家注意到没有, Linus Torvalds只是写出了一个 象模象样的操作系统雏形, Linux 后来真正发展成闻名全球的开源操作系统期间,完全是因为许多支持开源的商业公司如IBM 等,派出了许多比 Linus Torvalds 更高楼层的幕后英雄在里面把它开发出来的。可能有些菜鸟认为Linus Torvalds是程序员中的上帝,不妨说个小故事:Linus,Richard Stallman和 Don Knuth(高德纳)一同参加一个会议。Linus 说:上帝说我创造了世界上最优秀的操作系统。 Richard Stallman自然不
14、甘示弱地说: 上帝说我创造了世界上最好用的编译器。 Don Knuth 一脸疑惑的说: 等等,等等,我什么时候说过这些话? 由此可以看出, Linus Torvalds 的技术水平并不像想像中那么高,只是牛人和大虾觉得大牛比他们更牛吧了。在我国, 有一些当时还处于 大虾层的人物,也能写出介绍如何写操作系统的书,并且书写得非常出色, 而且写出了一个有那么一点点象模象样的操作系统来。我想中国的大牛们是不会比西方差的,之所以没有人写出类似的商业产品来,完全是社会环境的原因, 并不是技术能力达不到的原因。大牛们之所以成为大牛,主要的原因是因为把牛人给盖了下去,并不是他们自己觉得如何牛。也许有很多菜鸟、
15、大虾甚至牛人觉得大牛这层已经到顶了,但大多数 大牛估计应该是有自知之明的,他们知道自己现在还没有爬到半山腰,也就勉强能算个半桶水的水平,其中有些爬到这层没有累趴下,仍然能量充沛,并且又有志者,还是会继续往更上一层楼爬的。看到这里,也许有些菜鸟、大虾、牛人想不明白了,还有比大牛们更高的楼层,那会是什么样的楼层?下面就来看看第5 层楼的奥妙。第 5 层 专家当大牛们真正动手做一个操作系统或者类似的其他软件时,他们就会发现自己的基本功仍然有很多的不足。以内存管理为例, 如果直接抄袭 Linux 或者其他开源操作系统的内存管理算法, 会被人看不起的, 如果自动动手实现一个内存管理算法,他会发现现在有关
16、内存管理方法的算法数量众多,自己并没有全部学过和实践过,不知道到底该用那种内存管理算法。看到这里,可能有些人已经明白第5 层楼的奥妙了,那就是需要做基础研究,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 10 页 - - - - - - - - - 当然在计算机里,最重要的就是计算二字,程序员要做基础研究,主要的内容就是研究非数值 计算。非数值计算可是一个非常庞大的领域,不仅时下热门的多核计算 与云计算属于非数值计算范畴,就是软件需求、设计、测试、调试、评估、质量控制、
17、软件工程等本质上也属于非数值计算的范畴,甚至芯片硬件设计也同样牵涉到非数值计算。如果你还没有真正领悟计算二字的含义,那么你就没有机会进到这层楼来。可能有人仍然没有明白为什么比尔 盖茨被划在了大牛层, 没有进到这层来。虽然比尔盖茨大学未毕业,学历不够,但是家有藏书2 万余册,进入软件这个行业比绝大部分人都早, 撇开他的商业才能不谈, 即使只看他的技术水平, 也可以算得上是学富五车, 顶上几个普通的计算机软件博士之和是没有问题的,比起Linus Torvalds之类的 大牛们应该技高一筹才对,怎么还进不了这层楼呢?非常遗憾的是,从Windows 操作系统的实现来看,其对计算的理解是很肤浅的,如果把
18、Google 对计算方面的理解比做大学生,比尔盖茨只能算做一个初中生,所以比尔盖茨永远只能做个大牛人,成不了专家。看到这里,也许国内的大牛们要高兴起来了,原来比尔 盖茨也只和我等在同一个层次,只要再升一层就可以超越比尔盖茨了。不过爬到这层可没有从牛人 升为 大牛 那么简单,人家比尔盖茨都家有2 万多册书,让你看个5001000 本以上的专业书籍并掌握好它应该要求不高吧。当然,这并不是主要的条件,更重要的是,需要到专业的学术站点去学习了, 到 ACM , IEEE, Elsevier,SpringerLink,SIAM 等地方去下载论文应该成为你的定期功课,使用Google搜索引擎中的学术搜索更
19、是应该成为你的日常必修课。此外,你还得经常关注是否有与你研究相关的开源项目冒出来,例如当听到有TBB 这样针对多核的开源项目时,你应该第一时间到Google 里输入 TBB 搜索一下,将其源代码下载下来好好研究一番,这样也许你的一只脚已经快迈进了这层楼的门槛。当你象我上面说的那样去做了以后, 随着时间的推移, 总会有某天,你发现,在很多小的领域里, 你已经学不到什么新东西了, 所有最新出来的研究成果你几乎都知道。此时你会发现你比在做牛人和大牛 时的水平不知高出了多少,但是你一点也 牛不起来,因为你学的知识和思想都是别人提出来的,你自己并没有多少自己的知识和思想分享给别人,所以你还得继续往楼上爬
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年程序员的层楼 2022 程序员
限制150内