高手是怎样练成的1

1.2.1  高手成长的六个阶段

程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界。即使是这样的高手,那也都是无知者的自封。

我认为,一个程序员的成长可分为如下六个阶段。

Ø         第一阶段

此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。

Ø         第二阶段

此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32的API函数)以及所对应语言的自身的库函数。到达这个阶段后,也就相当于可以进行真实散打对练了,可以真正地在实践中做些应用。

Ø         第三阶段

此阶段能深入地了解某个平台系统的底层,已经具有了初级的内功的能力,也就是“手中有剑,心中无剑”。

Ø         第四阶级

此阶段能直接在平台上进行比较深层次的开发。基本上,能达到这个层次就可以说是进入了高层次。这时进入了高级内功的修炼。比如能进行VxD或操作系统的内核的修改。

这时已经不再有语言的束缚,语言只是一种工具,即使要用自己不会的语言进行开发,也只是简单地熟悉一下,就手到擒来,完全不像是第一阶段的时候学习语言的那种情况。一般来说,从第三阶段过渡到第四阶段是比较困难的。为什么会难呢?这就是因为很多人的思想转变不过来。

Ø         第五阶级

此阶段就已经不再局限于简单的技术上的问题了,而是能从全局上把握和设计一个比较大的系统体系结构,从内核到外层界面。可以说是“手中无剑,心中有剑”。到了这个阶段以后,能对市面上的任何软件进行剖析,并能按自己的要求进行设计,就算是MS Word这样的大型软件,只要有充足的时间,也一定会设计出来。

Ø         第六阶级

此阶段也是最高的境界,达到“无招胜有招”。这时候,任何问题就纯粹变成了一个思路的问题,不是用什么代码就能表示的。也就是“手中无剑,心中也无剑”。

此时,对于练功的人来说,他已不用再去学什么少林拳,只是在旁看一下少林拳的对战,就能把此拳拿来就用。这就是真正的大师级的人物。这时,Win 32或Linux在你眼里是没有什么差别的。

每一个阶段再向上发展时都要按一定的方法。第一、第二个阶段通过自学就可以完成,只要多用心去研究,耐心地去学习。

要想从第二个阶段过渡到第三个阶段,就要有一个好的学习环境。例如有一个高手带领或公司里有一个好的练手环境。经过二、三年的积累就能达到第三个阶段。但是,有些人到达第三个阶段后,常常就很难有境界上的突破了。他们这时会产生一种观念,认为软件无非如此,认为自己已无所不能。其实,这时如果遇到大的或难些的软件,他们往往还是无从下手。

现在我们国家大部分程序员都是在第二、三级之间。他们大多都是通过自学成才的,不过这样的程序员一般在软件公司也能独当一面,完成一些软件的模块。

但是,也还有一大堆处在第一阶段的程序员,他们一般就能玩玩VB,做程序时,去找一堆控件集成一个软件。

现在一种流行的说法是,中国软件人才现在是一个橄榄型的人才结构,有大量的中等水平的程序员,而初级和高级程序员比较少。而我认为,现在中国绝大多数都是初级的程序员,中级程序员很少,高级的就更少了。所以,现在的人才结构是“方塔”形,这是一种断层的不良结构。而真正成熟的软件人才结构应该是平滑的三角形结构。这样,初级、中级、高级程序员才能充分地各施所长。三种人才结构对比如图1.1所示。

时间: 2024-10-12 21:14:48

高手是怎样练成的1的相关文章

高手是怎样练成的(3)

因为计算机技术没有任何时候是突变的.它的今年和去年相差不会很大,但是回过头来看三年以前的情况,和现在的距离就很大.所以说,如果你每年都跟着技术进步的话,你的压力就很小,因为你时刻都能掌握最新的技术.但是,如果你落下来,别说十年,就是三年,你就赶不上了. 如果你一旦赶不上,就会觉得非常吃力:如果你赶不上,你就会迷失方向:如果你迷失了方向,你就觉得计算机没有味道,越做越没劲.当你还只是有个思路的时候,别人的产品都做出来了,因为你的水平跟别人相差太远,人家早就想到的问题,你现在才开始认识.水平越高,他

高手是怎么样练成的19

 da={1:0} def solve(n):  res=0  #print '----'  for i in range(2,n+1):   #print "n:%d,i:%d" % (n,i)   if (n%i==0):    #print "i:",i    if da.has_key(n/i):     res+=da[n/i]     #print "i:%d,da[n/i]:%d,res:%d" % (i,da[n/i],res)

主程序员的练成──引言

虽然是引言,但也很重要. 程序员如何成长?这个话题百度有大约170万个相关结果,介绍了不少从菜鸟到老鸟的经验,但如何成长为主程序员(以下简称主程),网上的"帮助文档"不完善,也缺少实践指南.本系列文章主题就是说说主程如何练成.为什么用"练"这个字,因为主程的很多技能光知道怎么做远远不够,还需要在实践中不断"训练"才能运用好.只有不断训练才能从知到行,从"知道"成长为"做到". 团队在任命主程时,大多会挑选经

标准口语就是这样疯狂得练成地

口语是这样练成地: 1.看一部有兴趣的电影,(180分钟到三个小时不等) 2.到处宣传此影片主角的迷人程度,陶醉其中,向亲朋好友强烈推荐,精彩片段重温,引导大家一起看,自己从旁讲解,并乐此不疲.(视业绩而定) 3.疯狂搜索其剧本,(一个晚上或一个下午) 4.下载剧本,(宽带几分钟) 5.整理剧本,(三到五个小时) 6.打印剧本,(几分钟,打印店离你家较远之类情况不在考虑范围之内) 7.看剧本,大声朗读,好东西啊!(三十分钟左右,长了嗓子受不了,地点最好选在阳台,以免打扰同学或亲人工作休息) 8.

主程序员的练成:HTTP协议和二进制协议的对比

在上一篇<主程序员的练成:TCP.消息分包和协议设计>中谈了协议设计的一些话题,这里补充聊聊HTTP协议和二进制协议的对比. HTTP协议是一种文本协议,也是一种Name-Based协议,就从这两方面来说. 文本协议 vs 二进制协议 文本协议的特点: 便于人 易于阅读.理解.调试.构造 解析复杂.冗余多 需要考虑字符转义 二进制协议的特点: 便于机器 Name-Based vs Position-Based Name-Based协议的特点: 协议字段都用Name标识 协议字段与位置无关 协议

主程序员的练成:CGI和FastCGI

消息经过网络传输,到达了服务器端,最常见的服务器是Web服务器,做PHP的同学都知道FastCGI模式的PHP比普通PHP更高效,这篇就聊聊其中的原理. 古老但常见的CGI Web服务器能解析HTTP请求,返回静态资源(HTML页.图片等),但要输出动态内容,必须得PHP/C#/Ruby/Java/Python/C/C++这些外部程序来实现. 早期有个技术叫CGI(Common Gateway Interface,通用网关接口),是用于Web服务器和外部程序之间传输数据的一种标准.一个简单的CG

主程序员的练成:TCP、消息分包和协议设计

在<主程序员的练成:IP.DNS和CDN>中,一次网络请求经过DNS解析知道了目的IP,现在就要发出网络包,这里我们说一说TCP的相关话题. TCP是一种流式协议 讲网络编程的教科书一般都会对TCP的可靠传输,api用法做详细说明,但对于TCP是一种流式协议讲解的不多,但这背后隐藏着很重要的一个知识点.先做个名词定义方便交流,这里的"消息"是指应用层的一个完整的协议包. 流式协议的特点是什么?就像流水连续不断那样,消息之间没有边界.例如send了3条消息,分别是100字节.

[转]程序员高手是怎样炼成的?

估计很多的朋友在很小的时候就看过奥斯特洛夫斯基同学的<钢铁是怎样炼成的>,偶小时候在农村混,看的最多是各式各样的牛屎以及长得极象牛屎的山头,这些所谓的名著偶直到大学才有机会拜读,但说实话,偶是个俗人,还是更喜欢看一些痞子写的文字或带COLOR的BOOKS.偶之所以写这么个主题,主要是太多的朋友给偶发EMAIL或在VCHOME.NET提问,偶其实也与大家一样为生活而奔波,因此没有时间一一作答,在这作一次回答,还望海涵. 高手是一个哗众取宠的词汇,世上本来并没有高手,说的人多了也就有了高手,我看程

论Spark高手是怎样炼成的

SPARK J大数据的处理怎么能变快一点,答案是请用spark,因为它是基于内存的,可以有效减少数据的落地次数.Spark性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数据仓库.流处理和图计算等多种计算范式,是罕见的全能选手. Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理.图技术.机器学习.NoSQL查询等方面的所有核心问题,具有完善的生态系统,这直接奠定了其一统云计算大数据领域的霸主地位. 伴随Spark技术的普及推广,对专业人才的需求日益增加.Spark专业人才在未