`

程序员特有的9个坏习惯

阅读更多

如果你是一个程序员, 或者你就读计算机相关专业, 那么你应该能理解下面这些诡异的小习惯是怎么养成的, 或者你本身就有着其中的某些习惯:

0. 程序员数数会从0开始数起.

例: 程序员吵架的时候会说: “我数三下, 你再不闭嘴我就不客气了! 零! 一! 二!” 或者列清单的时候编号会从0.开始写.

因: array[0]是数组的第一个元素.

评: 这个习惯的养成是一个艰难的过程. 多少次的越界, 多少次的循环次数错误让我们深深的记住了从0开始.

1. 程序员用肯定和否定回答选择性的问题.

例: 问 “您想喝咖啡还是喝茶?” 程序员答: “嗯.”

因: 当条件或||有一个子句值为真, 则整个语句值为真.

评: 这个习惯夸张了一点, 但这的确是程序员思维方式的通病, 用计算机的处理逻辑处理人类问题. 当然这样的回答显然是存在编程错误的, 因为对于这个问题他错误的返回了布尔型的值. 虽然高度怀疑有没有人关心这种回答的结果是怎样, 还是给出一个答案. 如果真的在程序的世界里, 服务员会优先考虑给你咖啡, 如果没有咖啡了, 才会端茶给你.

2. 程序员普遍患有或曾经患有分号结尾综合症;

例: 比如这几行;

因: 大部分程序, 特别是多数程序员的启蒙编程语言C语言是用分号结尾语句的;

评: 换行之前习惯用分号结尾, 这是程序员专属的坏习惯. 还记得编译报的各种诡异的错最后原因总是少了那一个小小的”;”吗? 这就是这个坏习惯的成因. 据说分号结尾是有典故的, 因为键盘上的分号正好在右手小拇指的位置, 比起句号之类有着得天独厚的地理优势. 当然也有不需要分号结尾的编程语言(比如Ruby还有Python), 刚用起来会因为没有分号结尾而格外纠结.

3. 程序员对”语言”的概念和普通人有差.

例: 问: “你都会哪些语言?” 普通人: “我会汉语和英语, 还会一点点法语. ” 程序员: “我会C语言, C++ 和 Java, 还会一点点Ruby. ”

因: 程序员的世界里没有母语和外语, 只有编程语言.

评: 说真的, 程序语言的语法学起来比外语更容易, 拿到一个用没学过的语言写的程序, 你多少可以看懂部分程序. 程序语言没有国界, 是各国程序员交流最好的桥梁.

4. 程序员格格外外的厌恶括号/引号不配对的情形.

例: 看到这样的内容 (举个简单的例子(我知道你懂的), 你能表示”我很淡定我不抓狂吗?

因: 各种不配对问题会导致编译错误.

评: 扫视代码, 对不配对的情况异常敏感, 瞥一眼就能发现哪里少了个右括号. 这种症状在使用那些带自动补全功能的开发环境时变得更为纠结.

5. 程序员认为 千(k) == 1024.

例: 程序员换算表:1km == 1024m, 1kg == 1024g.

因: 成因很曲折, 计算机是二进制的世界 -》1024是2的10次方 -》 英语里用kilo一词来表示 -> kilo翻译成中文是”千”, 比如千米, 千克.

评: 也许一般人会认为500, 1000是很整的数, 但程序员会觉得512, 1024是很整的数. 不要奇怪, 如果128, 256, 512这种形式看着不够整, 帮你转换成二进制: 10000000, 100000000, 1000000000…

6. 程序员惯用 == 来表示相等的意思.

例: 见5.

因: 在程序语言中, “=” 是赋值, “==” 才用来判断二者是否相等.

评: 单等和双等的区别是程序入门必修课, 也是老师爱考的考点. 如果在C语言if语句的判定条件里写了个单等, 编译能通过, 结果却往往不对, 够一个新手查上一阵子的. 当然目前的语言大都考虑到这一点, 防止了这类的误写, 但是单等和双等的差异已经深入每个程序员的内心.

7. 程序员使用”//”表示”请无视这一行文字”.

例: 餐厅中, 程序员A: “我吃鱼香肉丝盖饭, 你吃什么?”

程序员B: “宫保鸡丁盖饭.”

程序员A 在点菜单写上:

鱼香肉丝盖饭 1

宫保鸡丁盖饭 1

程序员B: “我还是要牛肉面吧!”

程序员A 更正点菜单:

鱼香肉丝盖饭 1

// 宫保鸡丁盖饭 1

牛肉面 1

因: 程序中用”//”为代码加上注释, 程序运行时会无视掉”//”开头的代码行.

评: 如果和一伙程序员在一起时被冷落了, 可以抱怨一句”喂喂喂我是被注释掉了吗?” 相信一向以幽默感丰富又有爱心著称的程序员们会关注你的.

8. 程序员有, 中文标点恐惧症.

例: 如果你注意到了, 这篇文章自始至终都在使用英文标点, 这就是最好的例子.

因: 程序中的全部符号都严格需要是英文半角标点.

评: 这个坏习惯是有中国特色的, 中国程序员特有的. 任何一名优秀的我国程序员都应该可以作到区别中文标点和英文标点. 比如, 和, 还有 ’和 ‘. 真的, 当年初学编程的时候, 诸如 “error C2018: unknown character ’0xa3′” 的错误看得还不够多吗!

就是这样一群人, 如果你慢吞吞的用电脑他们会急躁的抢过键盘熟练的使用各种快捷键, 他们会对着小孩子讲计算机的三原色是红绿蓝而不是红黄蓝, 他们描述大小距离更偏向于以像素作单位, 陪女朋友看电影看到电影院座位上稀稀落落的人就想做磁盘碎片整理…抱怨归抱怨, 这不也正是他们的可爱之处吗!

分享到:
评论
6 楼 qwaz 2011-06-09  
作为一个非资深程序员,我除了写代码的时候数数都是从1开始的
5 楼 hbiao68 2011-06-01  
有趣,幽默
4 楼 haohao-xuexi02 2011-02-12  
呵呵。
3 楼 dch1287 2010-08-02  
几乎全部亮了。。
2 楼 xiaobojava 2010-07-24  
挺有意思
1 楼 ixu 2010-07-22  
挺有意思:)

相关推荐

    高级程序员的45个好习惯

    在当今这个快速变化的软件开发领域,高级程序员的成功不仅取决于他们掌握的技术技能,还取决于他们的工作习惯。良好的习惯可以帮助程序员更高效地应对项目中的挑战,保证开发过程的质量和效率。《高级程序员的45个好...

    【高清完整pdf】高效程序员的45个习惯 敏捷开发修炼之道

    本书名为《高效程序员的45个习惯 敏捷开发修炼之道》,由Venkat Subramaniam和Andy Hunt两位作者共同撰写。书中所提到的45个习惯,不仅涉及软件开发过程、编程和调试工作,还包括了开发者的个人态度、项目和团队管理...

    本文详细列出了程序员的7个坏习惯以及解决方法,每个程序员都应该

    ### 程序员的七个致命坏习惯及解决之道 #### 一、代码自恋:除了我的代码,其它都是垃圾 在编程世界中,自视甚高常常导致沟通障碍与团队合作破裂。许多程序员陷入“我的代码最棒”的误区,忽视了代码评审与团队...

    优秀程序员的十个习惯

    【优秀程序员的十个习惯】 1. 持续学习与跟进新技术:作为优秀程序员,保持对新知识的渴望至关重要。不断学习新的编程语言、框架和工具,关注行业动态,参与专业社区讨论,如CSDN、ITPUB、CHINAUNIX、digg.com等,...

    一个优秀的程序员的十个习惯

    以下是对标题和描述中提到的十个程序员习惯的详细解释: 1. **学无止境**:持续学习是优秀程序员的基石。随着技术的快速发展,必须不断关注新出现的语言、框架和编程实践,通过阅读专业文章、参加在线讨论和社区...

    程序员的45个良好习惯

    标题中的“程序员的45个良好习惯”是一个旨在提升编程技能和团队协作效率的指南,描述...总的来说,这45个习惯旨在全方位地塑造一个专业、高效、团队协作良好的程序员形象,帮助他们在编程生涯中不断进步,实现卓越。

    高效程序员的45个习惯英文完整版

    高效程序员的45个习惯 英文完整版 V.Subramaniam, A.Hunt - Practices of an Agile Developer - Working in the Real World. 2006.pdf

    优秀程序员的45个习惯

    优秀程序员的45个好习惯,看看总有好处的

    高效程序员的10个习惯

    高效程序员的10个习惯,学习高效的编程方法。

    优秀程序员的45个习惯.rar

    优秀程序员的45个习惯.rar ok good

    600个程序员常用的单词和词汇

    600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员常用的单词和词汇600个程序员...

    高效程序员45个习惯

    高效程序员45个习惯,为你的个人拓展提供发展方向

    程序员记事本,供程序员保存经常用到的代码

    程序员记事本应运而生,它不仅仅是一个简单的文本存储工具,更是一个代码知识的宝库,一个团队协作的平台,甚至是一个程序员个人成长的见证者。 程序员记事本的设计初衷是为了帮助程序员解决工作中遇到的问题,记录...

    程序员必须掌握的600个单词

    程序员必须掌握的600个单词程序员必须掌握的600个单词程序员必须掌握的600个单词程序员必须掌握的600个单词程序员必须掌握的600个单词程序员必须掌握的600个单词

    高效程序员应该养成的七个习惯

    以下将详细介绍高效程序员应该养成的七个习惯,这些习惯对于程序员的工作效率和质量提升有着至关重要的作用。 首先,理解需求是高效程序员工作的基础。一个程序员必须明确客户的需求,并将这些需求转化为实际的功能...

Global site tag (gtag.js) - Google Analytics