您的位置:首页 > 职场人生

程序员的十层楼

2010-06-25 10:49 218 查看
第1层菜鸟

第1 层楼属于地板层,迈进这层楼的门槛是比较低的,大家都知道软件编程上手容易深造难。一般来说懂计算机的基本操作, 了解计算机专业的一些基础知识, 熟悉一门基本的编程语言如C/C++ 或Java, 或者JavaScript……均可迈进这层。

第2层大虾
从第1层爬到第2层相对容易一些。以C/C++ 程序员为例,只要熟练掌握C/C++ 编程语言,掌握C标准库和常用的各种数据结构算法,掌握STL的基本实现和使用方法,掌握多线程编程基础知识,掌握一种开发环境,再对各种操作系统的API 都去使用一下,搞网络编程的当然对socket 编程要好好掌握一下,然后再学习一些面向对象的设计知识和设计模式等,学习一些测试、软件工程和质量控制的基本知识,大部分人经过2 ~ 3 年的努力,都可以爬到第2层,晋升为弯腰弓背在代码行中爬行的“大虾”。

第3层牛人

由于“大虾”们经常被一些疑难问题给卡住,所以“大虾”们只好继续学习,他们需要将原来所学的知识进一步熟练掌握。比如以熟练掌握C++
编程语言为例,除了学一些基础性的C++书籍如《C++ Primer》,《EffectiveC++》,《Thinking in C++》,《ExceptionC++》等之外,更重要的是需要了解C++编译器的原理和实现机制,了解操作系统中的内部机制,如内存管理、进程和线程的管理机制,了解处理器
的基础知识和代码优化的方法,此外还需要更深入地学习更多的数据结构与算法,掌握更深入的测试和调试知识以及质量管理和控制方法,对各种设计方法有更好的理解等。学习上面说的这些知识不是一挥而就的,不看个三五十本书并掌握它,那是做不到的。以数据结构算法来说,至少要看5 ~ 10本这方面的著作;以软件设计来说,光懂结构化设计、面向对象设计和一些设计模式是不够的,还要了解软件架构设计、交互设计、面向方面的设计、面向使用的设计、面向数据结构算法的设计、情感化设计等,否则是很难进到这个楼层的。

第4层大牛

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

第5层专家

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

第6层学者

当“专家”们想继续往上一层楼爬时,他们几乎一眼就可以看到楼梯的入口,不过令他们吃惊的是,楼梯入口处竖了一道高高的门槛,上面写着“创新”二字。不幸的是,大多数人在爬到第5 层楼时已经体能消耗过度,无力翻过这道门槛。有少数体能充足者,可以轻易翻越这道门槛,但这也并不意味着体力消耗过度者就无法翻越,因为你只是暂时还没有掌握恢复体能的方法而已,当掌握了恢复体能的方法,将体能恢复后,你就可以轻易地翻越这道门槛了。

第7层大师

从第6层楼爬到第7层楼,并没有多少捷径可走,主要看你有没有足够的能量。你如果能像Hoare一样设计出一个快速排序的算法;或者像EugeneW. Myers 一样设计出了一个用编辑图的最短路径模型来解决diff 问题的算法;或者像M.J.D. Powell 一样提出了一个能够处理非线性规划问题的SQP方法;或者你发现基于比较的排序算法,它的复杂度下界为O(NLogN);或者你发现用栈可以将递归的算法变成非递归的;或者你设计出一个红黑树或者AVL树之类的查找结构;或者你设计出一个像C++或Java 一样的语言;或者你发明了UML……,那么你就爬到了第7层,晋升为“大师”了。

第8层科学家

第9层大科学家

第10层大哲
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: