《程序员成长路线》之新手看高手

1.10 新手看高手

入门之前,很多程序员心里有一个高手情结。通过书籍、媒体、传说渲染,他们认为IT行业是一个高手林立的行业,好像这些高手创造了这个行业的奇迹。这些高手可能是国外的,也可能是中国的。这个高手可能是一个具体的人,也可能抽象于某些著名软件背后看不见的程序员。只知其名,不闻其声,这个时候的高手是一种无所不能的神,一种虚幻,是令程序员崇拜的偶像。

到了工作岗位之后,这种高手情结更加严重,由于新手发现自身技术水平有限,而内心想尽快摆脱这种状况,使得很多新手对高手感觉更加恐惧和渴望。我发现在IT行业中,中国程序员认为外国的程序员是高手;网下的程序员认为网上的是高手;搞硬件的人认为搞软件的是高手,搞软件的认为搞硬件是高手;搞应用程序的认为搞系统的是高手;搞界面设计的认为程序员是高手,程序员认为搞界面设计的是高手;年轻的人认为年长的是高手,年长的认为年轻的是高手;企业内的程序员认为企业的外部程序员是高手;客户单位内部的程序员认为软件公司是高手,软件公司的程序员认为客户单位内部的程序员是高手等。所有这些高手都是建立在程序员本身对某个领域无知或掌握不精的基础上。因此,高手的多少是和程序员的水平成反比的,如果程序员水平高,那他眼中的高手就会少;如果水平低,那他的眼中的高手就会多。所以,不同程序员对待高手的标准应该是不同的。

高手情结是新手的正常心理现象,它反映了程序员对未知领域的向往,说明程序员还有远大的理想,还有激情,还有奋斗的目标。关于高手,我想新手应该关注以下几个方面。

1.向身边的高手学习

身边的高手,一般是新手的第一个师傅,也就是第一个培养他的那个人。这个人对新手来说是一个决定其技术命运的人。程序员很多人可以忘记,但是第一份工作,第一次带他的人是很难忘记的。假定这个师傅带他的时间有一年以上,我想从这个程序员身上一定能够看到其师傅的某些影子。比如说,这个师傅喜欢的语言,这个师傅喜欢的编程格式等,都能在新手身上找到。

作为新手来说,除了要向他的师傅学习之外,也要把身边的同事看做高手,要向他们学习,只要单位或团队范围内有比自己强的,不管这个人是早于自己进入这个单位一天,哪怕只是一个函数、一个语句、一个调用、一个算法都值得去讨教和学习。这个时候学习是很实在的,是能解决具体问题的。

向身边的高手学习,就是要充分利用身边的优势,可以面对面地接受别人的技术传授。新手千万不要顾及面子,或不好意思,或怕麻烦别人,能请教的就赶快请教,学习是硬道理。向别人请教不仅仅是去弄懂某个问题或解决某个问题,更重要的是培养与人沟通和建立良好人际关系的习惯。

新手千万不要有那种有人会主动帮助自己的幻想,一方面是大家工作都很忙,另一方面很多程序员不习惯于主动帮助新手。

要注意身边的高手并不是所有问题都能解答的,遇到这种情况,新手不要吃惊,很多“伪高手”就是在这个时候被揭开其伪装的。对于他们,新手要怀有宽容的心态,应坦然面对,不要深究,这个人不能解答,那就去请教另一个人。新手要记住,你请教的不是高手,而是解决问题。因此,向其请教的人是否是高手并不重要。

新手千万不要太迷信不可触及的高手,因为迷信了也没有用,而且也不会对你的实际工作有什么帮助,而应该把对那些高手崇拜的时间和精力用在身边的工作上,这可能更有成效。只有当自己有了一定进步之后,确定了自己发展方向之后,我们才有本钱和资格向外部高手学习。

2.学习高手的技术

(1)软件制作流程

我记得很多新手并不会安装操作系统、不会安装开发环境、不会配置网络、不会新建项目、不会新建程序、不会编写程序、不会运行程序、不会调试程序、不会制作安装盘等。即使会也只是知其然,而不知其所以然。而一般的程序员对此驾轻就熟,而且没有太多变化,相对机械,新手死记硬背就行了。因此,新手首先要把编程的流程搞清楚。把流程搞清楚之后,我们就可以把精力放在编写程序上了。

(2)语言的掌握

在程序的编写方面,新手常常遇到的就是语法问题,如语句使用不当、变量问题、格式问题、备注问题、命名问题、函数调用问题、参数问题等,这些问题就不那么简单了,不同的程序员会给出不同的解决方案。当解决这些问题之后,只能说是新手刚刚学会编程的工具而已,接下来就要学习如何运用这些工具来开发项目了。

(3)开发项目

这个时候新手就会遇到需求问题、功能问题、处理流程问题、数据结构问题、算法问题、可靠性问题、边界处理问题等,针对这些问题,不同的程序员更是有不同的观点和看法,所以,新手要多听不同的解决方案,通过比较来加深对这些问题的认识。

(4)高级技术

以上就是满足开发的基本要求了,但是,能运行的程序并不是一个好程序,只是站在一个项目的角度上来看技术,也不是最好的技术。因此,新手要更进一步提高自己的技术水平,还要在程序的架构、接口、参数、共享、安全、效率、交互等与程序密切相关的问题上进行探讨和研究,而在这方面有所建树的程序员已经不多见了。所以,新手要多留意,自己也要多积累,在这些方面多下工夫。

3.学习高手的方法

具体的问题是永远解决不完的,尤其是编程。遇到的问题可以说是千奇百怪,无所不有,因此,新手不能把全部的精力放在学习解决问题上。新手要在学习具体问题的解决方法前提下,更要学习高手们是如何解决这类问题的。通过方法的学习,可以使新手有很大的进步。例如,高手向新手讲解一个具体程序的调试方法。新手除了掌握这个程序的调试方法之外,还要学会跳出具体程序,掌握好调试基本流程、主要调试命令和注意事项。只有这样,当新手再次遇到调试问题的时候,就可以不用再找高手指导了,可以用这种方法自己来处理了。

高手的另一特点就是站得高,看得远,一般新手的问题,他们都很轻松摆平,所以,新手也要在平时看问题时,尽量地跳到具体问题之外,站在更高的层次上看待具体问题。

4.学习高手的激情

高手除了技术水平高、工作方法好之外,还有一点是新手要学习的,那就是他们的激情、坚持、专注。高手之所以是高手,一定付出比常人更多的劳动和辛苦。而这种付出并不像工作那样是强制的,往往是他们心甘情愿的,而且乐在其中。新手可能对老程序员没日没夜地连续工作感到不可思议,但是一旦他们也这样做了,他们同样也会感受到那种付出后获得成功的喜悦。

在遇到困难的时候,新手要向高手学习那种永不放弃的精神,不战胜困难就绝不罢休。高手之所以是一个高手,那是在某个领域,他能比别人有更大发言权,因为他比别人更了解这个领域的客观规律,这个规律是他长期专注和研究的结果。因此,新手遇到各种问题时,要沉下心来,注意观察问题中的细节,不放过任何疑点。只有这样,新手对问题的理解就会比别人更加深入。

5.不迷信高手

其实,现实中并不存在完美的高手,高手总会存在这样或那样的缺陷。新手不要对高手一味盲从,编程好,不一定界面设计好;编程好,不一定设计好。所以,新手要有自己判断是非的能力。例如,高手让新手按照某种要求编写程序,而这种要求本身就可能存在问题。当新手发现这个问题时,就应该停止编程,找出问题的原因所在,最好能找出解决方法,向高手说明情况,争取高手的理解和支持。这样高手就能看到新手的进步。而新手也可以在自己发现的新方法的过程中找到自我价值。

虽然我们是新手,但是,面对高手我们无须恐惧,我们会发现,随着时间推移,自己看到的高手会越来越少。这说明自己的技术水平在不断提高,当有一天有人开始请教你问题的时候,尽管你不处在高手的最前列,但是,你已经步入了高手行列。其实,面对高手就是面对未来的自己。

posted @ 2016-01-15 13:46  姩澕  阅读(172)  评论(0编辑  收藏  举报