程序员的每一步,你现在处于哪一步?

作者 : 开心源码 本文共3478个字,预计阅读时间需要9分钟 发布时间: 2022-05-12 共127人阅读

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

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

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

第1层 菜鸟

第1层楼属于地板层,迈进这层楼的门槛是很低的。基本上懂计算机的基本操作,理解计算机专业的少量基础知识,掌握一门基本的编程语言如C/C++,或者者Java,或者者Java,…,均可入门迈进这层。

在这层上,中国有着绝对的优势,除了从计算机专业毕业的众多人数外,还有大量的通信、自动化、数学等相关专业的人士进入这一行,此外还有众多的其余专业转行的人士,人数绝比照西方多出甚多。并且还有一个优势就是我们这层人员的平均智商比西方一定高。

第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层,晋升为”牛人”了。

第4层 大牛

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

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

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

第5层 专家

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

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

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

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

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

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

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

最后:假如你想成为一个优秀的程序员。那么就快来学习吧。

新手福利:那么你想成为一个优秀的程序员嘛?专注于Web前台技术学习交流零基础到项目实战,每天有老师会直播讲解实战项目,答疑解惑,学习与快乐同在。欢迎各位感兴趣的的小伙伴。今年年初我花了一个月整理了一份最适合2019年学习的web前台实战以及基础教程干货,从最零基础入门到深入的都有整理,这里是小白聚集地,送给每一位想学编程小伙伴。

福利领取方式:欢迎加入探讨QQ群:956766604

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 程序员的每一步,你现在处于哪一步?

发表回复