打算走上程序员的道路了,却逐渐发现自己身上很多怪癖,晚上无聊搜了下关于程序员的怪癖,发现还有人做了总结。有网友博文这样写:做了n年的程序员,也和各种形形色色的程序员合作了n年,回顾总结,发现不管程序员性格是外向的还是内向的,是多话的还是沉默寡言的,他们或多或少都有怪癖,区别只在于怪癖的严重程度。

盘点下来。我还真的占了不少。下面就是网友总结的,这里不再提链接了,因为也不知道具体谁总结的了。

1. 别人写的代码总是比自己差,我情愿重写也不要用别人的。这个现象不用多阐述,如果你是程序员,应该深有感悟。如果你还觉得感悟不深刻,你就看看你公司代码里面是不是有类似于多个版本的诸如thread pool啊,object pool啊。

【总结】:如果有现成的允许使用的经过测试的代码或程序库,并且有人维护或维护成本可以接受,程序员应该尽量使用现有代码和库来节省时间和开发测试成本。这点我还是可以接受。

2. 喜欢把代码写的越简短越好,用的语法越偏僻越好,别人越难看懂越好。最高层次就是:一行代码,n个功能,别人都不懂,只有作者他自己懂。随后,这个便成了炫耀的资本,到处说:“来,你过来看,知道这行代码是干什么的吗?恩,就知道你不知道,哈哈。”我每次都是这样诅咒这些程序员的:“下次希望你去维护别人写的这种代码”

【总结】:晦涩的代码,维护成本会非常高。有时候,我情愿牺牲一些性能,也要写易懂的代码。所以,好的代码不但要实现功能,更要好维护。我对好维护的定义标准就是:A写的代码让B能很轻易的理解和修改。这样的程序员个人认为不会有太大进步的。

3. 以为越接近机器码的语言,就是高级的有技术含量的编程语言。在他们眼里,直接写01010110才是最高技术,实在记不住,才用汇编。汇编还记不住,那才就用c/cpp。java/C#一点技术含量也没有。我想说,你们这个想法让那些写html+javascript的情何以堪啊,我说,你们怎么不用刀去刻硬盘啊,那个最直接啊。实在不行,你用汇编写个网页我瞅瞅啊,那个我才佩服你呢。

【总结】语言本身没有好坏之分,只是工具而已。好的程序员就是需要能在各种不同的情况下选择适合的语言。

4. 程序结构大于一切,客户需求可以放在一边。我碰到有些程序员,真是极其注重程序的结构设计,当然这个没有错,我也相当认可,但是你知道的,客户那需求可是一直要改啊改的,而且有一些是出乎当初我们预料的改动,但客户才不管呢,反正按时按需完成就是了。但是,碰到有些程序员,好说歹说,他死活不肯改,说改了会影响程序结构啊,设计就很难看之类的。说实话,我也很认同,确实对结构有影响,但是我们得搞清楚谁是衣食父母啊,是客户啊,不是结构!所以,我很想对这类程序员说:有本事你看着程序结构就饱了,别吃饭啊。

【总结】IT只是个工具。如果你造出来一个工具,即使再好看,再完美,如果达不到使用要求,那就什么也不是。

5. 对程序性能有时候很神经质。我记得有一次,我们需要写一个桌面应用程序,有个程序员和我讨论了很长时间到底应该用系统lock还是自己写一个基于计数器的lock(这里我不得不说,那些程序员都是很好的程序员,理论知识很丰富深刻,以上海西南某高校居多)。我承认,基于计数器的lock确实比较高效,因为不用使程序陷入内核态。但是,对于一个本身就是慢速的用户桌面应用,有必要自己实现一个高效lock吗?自己实现,增加了开发测试成本,而且还增加了很多bug几率。如果把这些时间花在改进用户UI上,那不是远比为了快那么几十毫秒来的更有价值吗?

【总结】:我们的时间和精力是有限的,所以有些事情,即使是对的,但是我们也不去做。因为如果我们把有限的时间和精力放在其他方面,我们可以收获更多。这个就是所谓的性价比吧。

小子日常开发似乎也或多或少的囊括了以上的怪病特征。不过没工作那么就,还凑合了。但是最值得一提的是,小子有一点跟很多程序员不同,就是喜欢电脑上的东西存放整齐,看到很多程序员的电脑里面文件乱七八糟的,真的很难受,我总是喜欢把自己需要用的软件、工具完美安装,文件存放整齐,就算开发时桌面上存的乱点。每天总会把东西规规整整的放进文件夹,也不知道这算不算是怪癖。还有就是每次电脑出现问题,我就要重新安装所有之前安装过的需要用的软件。通常情况下,因为程序过多,就这样通宵下来不睡了,就像以前用vs的时候,在我那老爷机上安装一次至少两个小时,不得不慢啊。

程序员一直给人印象是:性格怪异,智商高,粘着椅子,敲着电脑。我要说的是,这个都是误解。其实现实中的程序员大多数是很开朗的,和其他人没什么两样。但程序员有时候工作是非常辛苦的,可以为了修一个bug而通宵达旦,对生活和健康影响都很大。所以,我祝每个程序员都幸福健康。

在这里,小子也祝各类程序员能尽其所能的发挥自己能力,收获财富。最好不要让过多的怪癖逐渐蔓延啦。