程序员的“荣”与“耻”之我见

         从网上面看了诸多资料,搜集到这个程序员“八荣八耻”。经过个人的思考与概括,已基本成型。具体如下:

以动手实践为荣,以分数排名为耻。
以算法分析为荣,以胡编乱写为耻。
以打印日志为荣,以出错不报为耻。
以多态应用为荣,以分支判断为耻。

以代码重用为荣,以复制粘贴为耻。
以专业英语为荣,以四六级证为耻。

以定义常量为荣,以魔鬼数字为耻。
以总结思考为荣,以不求甚解为耻。

 


先别忙反对或赞成,我们来顺应潮流细细分析一下!

1.以动手实践为荣,以分数排名为耻。这个意思很明了,就是说要淡化理论考试的排名次,抓学分等一系列无现实意义的攀比活动!当然也不是说理论不重要,只是他向我们传达了这样一个信息——理论要在实践中得到升华,实践要在理论中得到应用!这个过程是相辅相成的,只有多动手,多改错,多总结,才能实现这个“以动手实践为荣”目标。试想,不经过这个过程,不劳而获就成为编程高手,那么事情如此发生,岂不伤天害理?不过,老天总是理智的,努力的人尽可放心,现今社会早已拒绝白吃干饭的人!

2.以算法分析为荣,以胡编乱写为耻。记得有个招聘人员在面试程序员的时候说过这样的话,如果某人胆敢在简历上写明“熟悉数据结构”,那么我也不为难他,就让他写一个二叉树三种遍历过程的算法,其他编程语言技能无需考核!个人认为,这个考官有水平档次!数据结构与算法,编译原理,离散数学这三个学科是软件界最难掌握的了,熟悉它们的其中一个远远比学习编程语言来得困难,而这类人才也是程序员中的“战斗机”!有些人在做程序时,态度也很端正,兢兢业业,吃苦耐劳,可是效果极其有限!殊不知胡编乱写是效率低下的一个表现,理智的人应该想想算法。即使不能想出多么优秀的算法,但思考的过程经常会使人融会贯通,一个小小的思维亮点就有很可能把你与一般人区别开来。想想看,用JSP,ASP,VB等做出“***管理系统”的人一抓一大把,挑都挑得眼花缭乱,如何找到适合企业的人才呢,用“算法分析”这个条件来选拔,应该不为过吧?想精通并不容易,但是如果有意识向这方面深入,可以断定,你的水平高过一般人不成问题!

3.以打印日志为荣,以出错不报为耻。从我的经历来看,以前经常犯这种错误!这种错误不是那种极为严重的错误,而是一些隐蔽的,难以察觉的错误!比如说,做一个小系统,程序已经启动,可以正常运行,但是控制台会报一些错误,而你发现这些错误也并没有给系统的使用带来什么不良影响,就把它给忽略掉了。然而,这就是不少系统在后期运行时的造成性能不稳定的诸多因素之一。因为前期未发现,时间长,慢慢地曝露出来了,由于此时系统已经成型,这时候修补起来估计要花费代价的!这么说来不如未雨绸缪喽,何时发现,何时打印错误日志,尽早的修改,完善,你说是吧?

4.以多态应用为荣,以分支判断为耻。多态的好处不言而喻。它提升了代码的可扩展性,我们可以在少量修改甚至不修改原有代码的基础上,轻松加入新的功能,使代码更加健壮,易于维护。在设计模式中对于多态的应用比比皆是,面向对象设计(OOD)中有一个最根本的原则叫做“开放–关闭”原则(Open-Closed Principle OCP),意思是指对添加开放,对修改关闭。比如说,已经有了一个Animal(动物)类,现在需要添加Bird(鸟),那么最好定义一个Bird类,让他继承Animal,然后通过new 进行实例化即可。我们所做的就是添加新的类,而对原来的结构没有做任何的修改,这样代码的可扩展性就非常好了!因为我们遵循了“开放-关闭”原则 —— 添加而不是修改。前面这个例子中还有一个地方需要说明,Animal 这个类,实际上应该定义为一个抽象类,里面的有些方法,事实上不需要实现,也没法实现。咱们共同探讨啊,Animal(动物) 的叫声如何,你能想象出 Animal(动物) 是怎么叫的吗,声调多高?显然,这个方法应该定义为一个抽象方法,留给它的子类去实现,它自己不需要实现,那么一旦这个类中有一个方法抽象的,那么这个类就应该定义为抽象类。如果不采用多态性,而是不停地进行if_else,switch-case重复操作,那么带来的麻烦是可想而知的,万一少判断一个怎么办?万一忘写了break怎么办?这些还都是小事,错了可以改。重要的是他没有统一的“标准”,程序员之间,你用你的,他用他的,从头判断到尾,结果造成严重程序“不兼容”、“不共存”,程序代码紊乱不齐,这个是不是会影响团队开发的效率呢?

5.以代码重用为荣,以复制粘贴为耻。程序员的基础条件之一代码重用!这个不多讲,大家都明白!

6.以专业英语为荣,以六级证书为耻。这个估计要引发争论了。有人反问,四六级都没过关,谈何专业英语呢?我想解释的是,四六级固然能反映一个人英语的水平,但也不是说四六级过了关就能够在计算机专业英语领域为所欲为的。我的一个老同学,他过了四级,但是六级没考过,刚开始我也就以为他的水平一般而已,后来才发现他的词汇量大得惊人,很多专业深邃的词汇他都知道,看懂一篇正常的计算机英语科普文章还是很从容的。六级落榜是因为他不太会考试,听力不好,心态不稳而已,大可不必怀疑自己的书面翻译能力。还有不少同学都过了六级,但是我发现他的词汇量也不过如此,正常编程用到的很多词汇,都未必能正确的把握!这就从一个侧面说明,四六级考试只是形式而已,能过当然很好,不能过也不要强求自己。毕竟,我们不是考试大师,我们需要的是专业英语,而这些泛泛英语只是万里长城的一块砖。既定的目标是能够应付多数的计算机英语书籍、科普文章就行!

     与其花了大量时间考形式六级,我感觉倒不如买一本专业英语词典和一本普通英汉词典,经常遇到陌生的单词就拿过来扫描几眼,时间长了这就积累成为专业财富了,这就是前辈所说的“不积跬步,无以至千里;不积细流,无以成江海”。

7.以定义常量为荣,以魔鬼数字为耻。时常看见很多同学(说来惭愧,自己也包括在内)在自己的程序中无序地使用大量数据,这些魔鬼数字经常给修改、扩展带来极大不便。数量少还能应付,那要是大量的数据怎么办呢?一个个修改吗?你有耐心吗?即使有耐心,你能保证细心吗?不好说吧!所以,编写程序时,如果需要,那么要尽量定义常量,这就在修改,扩展等方面带来很大的便利!当然,我也在不断拓展此方面的技能!

8.以总结思考为荣,以不求甚解为耻。这一点大家都能看出他的重要性!勤于总结,善于分析,这是对程序员的要求之一。由于软件技术发展日新月异,谁也不可能在极短的时间内学会大量技术,这就要求我们要总结以往的技术经验,拿过来可以为新的知识做铺垫,做导向,达到以不变应万变!而不是像有些程序员那样会了就扔一边去,下次做项目还得拿过来copy & paste & update & debug,严重拖累项目进度。这种治学态度注定一个如此的程序员很难有所作为的,现实情况可以佐证我的观点。

以上就是我对这个“程序员八荣八耻”的一些看法。固然每个人不可能做到所有的“荣”,但是我们可以摒弃大部分的“耻”,这样“荣”多“耻”少,日积月累,汗水凝结成智慧,技术升华为经验,你还用担心你的发展会滞后于平均水平吗?

一家之言,难免片面,欢迎批评指正,以求共同交流,取其精华!

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/palosky/archive/2009/07/02/4317328.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值