新闻  |   论坛  |   博客  |   在线研讨会
程序员高手是怎样炼成的?
lionwq | 2008-01-08 14:05:17    阅读:6497   发布文章

阅读提示:本文列出了程序员成为高手的必要条件,包括:迷恋+热情、在项目中磨练与成长、数不胜数的加班、正确的学习方法、失败--->打击--->努力--->成功--->成就感、敢想+能说+会写、善于利用各种资源和细节决定高手。您同意作者的观点吗?
首先声明,偶不是高手,以免引起不必要的冷嘲热讽,呵呵。

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

高手是一个哗众取宠的词汇,世上本来并没有高手,说的人多了也就有了高手,我看程序员只有老少之分,并无高低之分,比如偶就是一个老程序员,因此作为程序员,我们追求的应该是写出有用有价值的软件产品,呵呵,废话少说,切入正题吧!

1. 迷恋 + 热情

爱因斯坦同学说:兴趣是最好的老师,这就是说一个人一旦对某事物有了浓厚的兴趣,就会主动去求知、去探索、去实践,并在求知、探索、实践中产生愉快的情绪和体验,并不断地激发学习的动力,这种说法很美妙,众所周知,程序员是一种有点乏味有点枯燥有点辛苦的技术工作,要能坚持下去,并能做得很好,没有迷恋没有热情是很难很难的,偶就很迷恋,迷恋C++,迷恋computer,迷恋network,偶迷恋for、if、while、case等等就如同歌手迷恋五线谱的小蝌蚪一样,我觉得程序代码真是无所不能,简简单单的几行代码就能实现丰富多彩的功能,你难道不觉得很NB吗?呵呵,因此,作为一名老程序员,我建议年轻的程序员们一定要对coding保持迷恋保持热情,那样我们才有可能做得更好。

2. 在项目中磨练与成长

很多朋友经常问:他看了很多书,也做了较多的练习,但感觉水平并没有得到提高,这是为什么?呵呵,我觉得每个人不同,有些程序员通过看书,也能学到很多东东,但我个人觉得最好的提高方法,还是要参与到某一项目中去锻炼,从设计到开发到测试到维护一整套的磨练流程,项目是有周期的,有周期就有压力,有压力才能不分昼夜地去学习与实现,学习的效果也会很显著与深刻。

3. 数不胜数的加班

偶这里所讲的加班并不单指工作上的OT(即overtime),而更多的是学习上的OT,偶认为程序员学习的黄金时间在毕业后的前三年,这三年你如果有一个好的环境好的团队好的上司,再加上你的勤奋努力,三年后你将有一个质的飞跃,当然如果不幸,环境不好,团队不好,上司不好,那就只能靠你自已了,我的哲学是:人的一生70%靠自已,因此你要有坚持不懈的精神,保持一颗积极上进的心,偶的那三年基本上每天都在公司里呆到22点,即使回宿舍也是看书学习,偶比较笨,但可贵的是偶知道“笨鸟先飞”、“勤能补拙”诸如此类的大道理。没有人愿意平平庸庸地度过这一生,你努力了,你就成功了。

4. 正确的学习方法

也有很多朋友问学习方法,这是很让偶头痛的问题,其实我之前的文章中也有总结我的学方法:“简单总结一下我的学习方法,笔者是按以下的顺序来学习的:C/C++ ――> SDK ――> MFC ――>COM/DCOM/ATL/COM+,当然这个顺序的前提是你已经具备了一定的数学,数据结构及算法,操作系统等基础知识,学好C++是很关键的,尤其要理解清楚OOP思想,养成以面向对象方法去思考问题解决问题的习惯;学习SDK的目的主要是理解Windows OS的内部机制比如内存管理,多任务及多线程等,特别要透彻地理解Windows的消息机制;有了前面的知识,学起MFC就容易了,有些网友经常与我聊,说他看了一年多的书,也写一些程序,但对MFC还是一头雾水,我想主要的原因还是学习不够系统性,很多知识及经验是循序渐进的,千万不要幻想一步登天,要有持之以恒的学习及实践精神。” 我并不敢说,我的方法是正确的,只能说对我而言是合适的,作为老一辈的程序员,我们有幸学过与写过很多纯windows的程序,我依然记得当年用vc++1.5写的程序,都是用SDK,要写的代码很多很多,那是个美好的年代,我怀念它。

5. 失败--->打击--->努力--->成功--->成就感

刚刚做程序员时,由于技术水平有限,经验也欠缺,因此经常会犯一些错误,也写了很多失败的程序,然后被上司骂得狗血淋头,那时非常地有挫折感,决定奋发图强,后来慢慢地长大,能写一些成功的程序,受到一些表扬,那成就感真是爽呆了!这种过程经历得越多越好,我们的抗压能力会不断地提高,脸皮也会越来越厚,呵呵,因此,奉劝各位程序员如果你暂时遇到挫折与失败,不要灰心丧气,不要退缩,而要奋起直追,学好了,以后再去骂其它的初级程序员,呵呵,开玩笑的。

6. 敢想+能说+会写

中国的教育体制造就了太多太多的五好青年,循规蹈矩,逆来顺受,前怕狼后怕虎,缺乏创新意识,这个社会什么都不缺,就缺敢想敢做的人。

能说对于程序员来讲,确实是要求过高,但如果你想走上较高的层次,偶认为这一点是很重要的,因此我们需要寻找各种各样的机会来锻炼这方面的能力。

会写就是能写出漂亮的方案文档,能针对不同的客户写出不同的文档,比如技术文档,商务文档,销售文档等。

7. 善于利用各种资源

这一点不用多说了,现在的资源很丰富,善于运用各种帮助文档,另外,互联网上的资料应有尽有,要学会GOOGLE与使用。

8. 细节决定高手

老子说了:天下难事,必做于易;天下大事,必做于细。这句话精辟地指出了想成就一番大事业,必须从简单的事情做起,从细微之处入手。随着现代社会分工的越来越细和专业化程度的越来越高,一个要求精细化的管理和生活时代已经到来,亲爱的程序员朋友,请你注意了,编程越来越容易了,可恶的微软与比哥一天到晚都在想如何让我们变得更傻,越来越依赖于他们的工具,在未来,也许什么人都能很容易地做个程序员,到那时,如何来评价你的能力?-----细节,这个行业,最终和最高的竞争层面就是细节的竞争。因此建议您把小事情做到位,养成良好的习惯,具体点说:就是写好每一份注释,在提交文档之前要一而再再而三地检查,代码要简洁干净,每一个算法都要高效,把胡子剃干净,别扣错钮扣,穿整洁的衣服,讲话注意文明礼貌,红灯停绿灯行,不随地丢垃圾.......呵呵,离题了。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
szyth  2008-05-05 19:19:52 

感谢LZ!

lionwq  2008-01-15 12:18:11 

多谢提点 :) 文章是转帖,我现在已经在做嵌入式linux的驱动了。

[ 匿名]  2008-01-14 21:57:49 

看来楼主现在还是在Windows下开发啊, 要想成为高手的话,还是去玩下Linux吧。 在Windows下始终不知道计算机是怎么运作的。

淡泊以明志 宁静以致远
推荐文章
最近访客