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

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

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

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

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

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

程序员的“荣”与“耻”之我见相关推荐

  1. C++为什么空格无法输出_那些C/C++程序员该具备的32个编程修养习惯!

    阅读本文可能需要较长时间. 1.版权和版本 好的程序员会给自己的每个函数,每个文件,都注上版权和版本. 对于C/C++的文件,文件头应该有类似这样的注释: /********************* ...

  2. C/C++程序员的编程修养

    关注.星标公众号,不错过精彩内容 作者:陈浩 转自:嵌入式云IOT技术圈 什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是.对于一些技术细节来说和底层的技术, ...

  3. C/C++开发程序员应有的素养

    C/C++开发程序员应有的素养 文章来源说明 什么是好的程序员? 1.版权和版本 2.缩进.空格.换行.空行.对齐 3.程序注释 4.函数的[in][out]参数 5.对系统调用的返回进行判定 6.i ...

  4. 论一个程序员的编程修养(你品,你细品)

    论一个程序员的编程修养 转自:陈浩 芯片之家 作者:陈浩 来源:嵌入式云IOT技术圈 什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是.对于一些技术细节来说和 ...

  5. 从二十年开源经历出发,70 后大龄程序员谈成长、困境与突围

    在新年前夕的全员总结大会上,涛思数据的一位 70 后研发老将收获了一份名为"最具开源精神奖"的奖项,这不仅是对他在 2021 年基于 TDengine Database 所做出的开 ...

  6. 和程序员谈个恋爱真心不容易,不过我从不后悔

    文|洪生鹏 单身的时候总想方设法地解决单身的问题,可等到恋爱时,才知道原来恋爱也不容易,并没有之前想的那么幸福呢. 前段时间,好不容易追上一名程序员,本以为可以好好好好谈恋爱,可有时下班回家了,准备休 ...

  7. 程序员日常开发的八荣八耻!

    点击关注公众号,Java干货及时送达 今天来讲讲程序员日常开发的八荣八耻.还挺有意思的,给大家分享一下,哈哈~ 1. 以接口兼容为荣,以接口裸奔为耻 以接口兼容为荣,怎么理解呢? 很多bug都是因为修 ...

  8. 程序员版本的八荣八耻~

    前言 大家好. 最近整理了一个关于程序员日常开发版本的八荣八耻,还挺有意思的.给大家分享一下,哈哈~ 1. 以接口兼容为荣,以接口裸奔为耻 以接口兼容为荣,怎么理解呢? 很多bug都是因为修改了对外旧 ...

  9. 【今晚9点】:对话袁荣喜——一名C程序员的打怪之路

    点击上方"LiveVideoStack"关注我们 从一名应用物理专业的本科生,到电商平台架构师,教育平台音视频直播技术负责人,经历了在线教培行业红利,曾一己之力拯救教育平台,但终究 ...

最新文章

  1. Hardware Error 内存报错
  2. pyrosim有Linux版本吗,烟气流动分析软件Pyrosim版本 2020.4.092
  3. wifi协议栈_一文读懂米家部分智能硬件:米家Zigbee及WiFi模块拆解分析
  4. 计算机图形学_2020图灵奖重磅发布!两位计算机图形学先驱获奖
  5. django建表报错
  6. 佳能7200cdn打印自检_家用打印机如何挑选? 家用打印机性价比较高的有哪些?...
  7. Ubuntu18.04安装
  8. maven 添加支持编译jdk1.7
  9. 塞班系统微信连接不上服务器,充满情怀的塞班系统:手机QQ、微信将无法登陆使用...
  10. java实现学生、老师信息管理系统
  11. 前端开发应知网站(强烈推荐!)
  12. 帆软客户画像分析与客户价值模型
  13. 让微积分穿梭于工作与学习之间(7):我自认为牛逼的成果之三:直接用定义求正切函数的导数
  14. 多态 继承 封装 打印输出长方形 正方形 圆形的周长和面积
  15. 【Android Gradle 插件】Splits 配置 ③ ( Splits#density{} 脚本块配置 | 根据屏幕像素密度进行分包 | DensitySplitOptions 配置简介 )
  16. 游戏策划入门(5)——开始绘制系统的结构流程图
  17. 点云配准之NDT算法
  18. 常见互联网slb方案
  19. python3使用付费代理和ip池的维护
  20. vacuum命令详解

热门文章

  1. ABB机器人6.13版手册下载
  2. Cause: java.sql.SQLExceptioValue ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp
  3. 利用VBA在Excel中批量画图
  4. 浏览器的CSS Hacks
  5. PS将图片的背景填充变为无色
  6. 王者苹果服务器转安卓系统,王者荣耀苹果用户可以转?王者荣耀苹果用户转安卓的方法教程...
  7. 【天坑】BLAST比对序列时遭受的痛苦
  8. 「Python入门」Python代码规范(风格)
  9. 什么是思维导图?有哪些好用的思维导图工具
  10. 常见电机分类和驱动原理动画