荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: huhaiming (一生只爱她), 信区: Program
标  题: 修炼一名程序员的职业水准2(林庆忠__署名原创)
发信站: 荔园晨风BBS站 (2005年04月08日09:00:58 星期五), 站内信件

【 以下文字转载自 CIE 讨论区 】
发信人: dreamway (美洲豹), 信区: CIE
标  题: [转帖]修炼一名程序员的职业水准(林庆忠__署名原创)[2]
发信站: 荔园晨风BBS站 (Thu Apr  7 23:19:42 2005) , 站内信件

二、在实践中提高:成为一名高水平的Coder
好了,你毕业了,在校功课都不错,也找了一个专业对口的工作,你想大展鸿图了,可是别
急,你的翅膀还不够硬,不信我们说来看看。通常,你在工作中都会用到某一种单位/公司
固定的操作系统和编程语言开发环境,比如Windows、UNIX、LINUX等操作系统,又比如用VC
、VB、PB、Delph、JAVA、Motif/XWindow、 QT、OpenGL、OpenInventor等编程语言和开发
环境,我们在后面把它们合称为开发环境。就在校学习的有关开发环境的知识而言,大概你
距工作需要的差距是不小的,当某个操作系统和编程语言环境成为你的饭碗时,就不应也不
能用通过课程/认证考试之类的眼光和要求来评价你的能力,即使你能考 100分。你需要深
入地学习该操作系统和编程语言环境的各类开发手册的所有内容,你会说大多数你都用不上
,其实你既对又不对,对的是单从使用的角度而言,你确实用不上开发手册的大多数内容,
比如庞大的VC开发类库和复杂的开发环境,你在实际工作中能用到的不到总数的1/10或1/5
,不对的地方在于,你用到的部分不是孤立存在的,它们是整个体系中的一部分,只有对整
个体系有了一个较完整的了解,才能得心应手、随心所欲地用好你用到的部分,你才算初步
具备在这种开发环境下进行Coding的职业水准(还远不够程序员的职业水准呢),而这只是刚
开始。如何才能真正掌握一种开发环境的全面的知识呢,最原始的办法就是读开发指南/教
程、参考手册,一般来讲,学习开发指南/教程时,你如果是一个认真的人,都会完成5/10~
7/10左右内容的学习和练习,如果你想成为职业选手,就应该完成9/10以上内容的学习和练
习。参考手册不同,大多数所谓的“程序员”们只是用到了才翻翻,这差的太远了,你应该
象读开发指南/教程一样,每个环节都要读,比如VC,参考手册中的每个类,类的每个函数
,都要读上几遍,它们往往是一小伙一小伙地纠缠在一起使用的,开始时读得你毫无头绪、
心烦意乱,不要紧,还有一手呢,如果你开发环境安装的全面,它们往往都有开发商做的de
mo例子可看,你就进入另一个境界了,开始时你关注demo中的具体技术,后来你发现这些de
mo的程序写的都还算不错,结构简单但合理,如果你真的用心,就一定能发现一些个别的de
mo是极品,它所展现的程序逻辑结构是你设计不出来的,你现在有点更关心它的程序设计构
架,甚于对你原始目的(某种相关的技术/技巧)的关注,这时的你,开始了从一名Coder向一
名 Programmer的转变,你会忍不住要看看开发商提供的源程序,比如.h和.cpp,通常你会
找到include路径下所有的.h程序,你才知道,哇!好多好多东东在参考手册中都没提到,
你要学的太多了,没时间顾及其它的业余爱好了,现在知道为什么程序员是年轻人的职业了
吧,你要有足够多的时间才行,即使你的智商有160。如果你走到这一步,在你工作的团队
中,已经是经常有人向你请教技术问题,经常有人请求你帮忙debug,你已是公认的“高手
” 了,别得意,因为你仍然是个Coder,为什么这么说呢,你想想,你已深入了解了这个开
发环境中的各种技能,知道一名Coder如何用好这些东西,可是你能设计的出提供给Coder们
用的东西吗?唔……,你想了想,可能还不太行。对了,就是这样,你还是一名小我境界的
程序员呢,本质是个Coder,当然已是一名高水平的Coder了,然而你需要进一步登堂入室才
能成为一名真正的程序员。让我们继续吧,通常你都是从精通一种编程环境开始的,假设你
已经较为精通在Windows下用VC开发软件了,这时在技术和技巧方面你将面临一小一大两个
挑战,第一个小挑战是如果公司/单位改换了开发环境,比如用 LINUX下的QT交互语言工具
进行开发,你不过是把前面掌握VC的过程再来一遍,由于在主观上经历了VC工具的学习过程
,在客观上各种开发环境都有太多相似的方面,这回你掌握的应该较快。要小心,在这时第
一次诱惑之门打开了,因为你感觉良好,看!这回这么快,我就这么好地掌握了新的开发环
境,你开始关注其它暂时还用不到的同类环境,比如VB、Delph、JAVA,如饥似渴地掌握各
种开发工具,证明自己的学习能力和价值,但你忘了一点,你仍然是个 Coder,只不过是一
个在好多开发环境下都能编程的Coder,就像你生活在中国,因而精通了汉语,工作需要你
又掌握了英语,然后你就来了劲,把俄语、日语、阿拉伯语、拉丁语,等等等等,都学习个
遍,我只能说,有点BT。你忘了自己是个职业人,同一类的东西工作中用得到才需学习,太
多太多的Coder们喜欢在一起比较和炫耀自己会掌握了几种开发工具,不信你看看招聘时的
求职书就知道了,sigh!他们中绝大多数人永远都只能停留在这个层次上,心浮气躁,一生
都再也当不成真正的程序员了。总结一下,其实你在这时需要的是对自己掌握新开发环境的
能力的自信,而不是一遍遍地重复来证明自己。第二个大挑战就是你明白了只掌握VC是不够
的,你发现自己有点浅薄,有很多东东你会用但你不太懂,很多方面支持VC编程的知识你都
没掌握,比如操作系统的源码、网络协议知识、Windows 的注册表、进程和线程的基础知识
、硬件驱动方面的知识、ActiveX、Windows 庞大的 API,又是一个等等等等,这些基础知
识的学习和掌握可是要花费大量时间的,你再一次深切地感到时间太不够用了,因为这时的
你大概有许多俗务缠身了,所以有点沮丧,还不用提IT业每天不知有多少新东西在发布,KA
O,永远都跟不上,越拉越远了。哎!别气馁,振作一点,你还是忘记了自己是个职业人,
既然好多东东在工作中你永远都没机会用,那么干嘛要学呢?用什么才学什么,最多预测到
马上要用什么,先一步学什么好了,要知道没有人是真正的、无所不精的全科大夫,除非你
是神,但如果你还在耐着性子看这篇文章,你肯定是个人嘛。OK,一般工作后三五年,你经
历了上述过程,经受了诱惑和考验,终于明白了一个道理:你要的是强劲的学习知识的能力
,是对某种软件知识/技能的有深度的精通,一种摸到它的根的深度,而不是已掌握的技能
的种类和数量。这时无论谁用他掌握了多少种你不会的技能来吓唬你都没用,你对他的层次
只有蔑视。通过几年的学习和工作,要记住最重要的一点,永远最重要:对自己学习 IT知
识能力的自信,一个程序员一生都要不停地进行高强度的学习,用心问问自己,有没有这个
自信?别用虚荣心来骗自己哦,如果没有的话,那就不必花费你宝贵的时间向下看了,作者
在此感谢你有耐心看到这里,现在建议你关闭这篇文章,趁着年轻,当机立断转行吧!

--
做了过河卒子,唯有拼命向前。
※ 来源:.荔园晨风BBS站 http://bbs.szu.edu.cn [FROM: 218.17.74.45]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.95.1]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店