十个行为把你变成糟糕的程序员

http://developer.51cto.com/art/201107/276255.htm

程序员当然也是分级别的,不是所有的程序员都是一个合格或是优秀的程序员。建议大家可以看看这三篇文章,《介绍PHP程序员最易犯10种错误》、《15个注意事项决定程序员的未来》和《程序员深思 八种级别八种人生》。下面介绍十个不好的行为。

1) 情绪化的思维

如果你开始使用不同颜色的眼光来看待这个世界的话,那么你可能会成为一个很糟糕的程序员。情绪化的思维或态度很有可能会把自己变成一个怪物。相信你 经常可以看到很多很糟糕的程序会使用下面的这些语句:

我的程序不可能有这种问题。

Java就是shit。

我最恨的就是使用UML做设计。

需求怎么老在变,没办干了。

受不了这些人,他们到底懂不懂啊。

这些带着情绪化的思维和态度,不但可以让你成为一个很糟糕的程序员,甚至可以影响你的前途。因为,情绪化通常都是魔鬼,会让你做出错误的判断和决定,错误 码率的判断和决定直接决定了你的人生。

2) 怀疑别人

糟糕的程序总是说:“我的代码一定是正确的,我怀疑编译器有问题”,“我这应该没有问题吧,STL库怎么这么难用啊”。我曾经见过有程序员这样使用 STL类:map,当他发现这样放入字符串后却取不出来,觉得那是STL库的BUG,然后自己写了一个map!我的天啊!

某些时候,过早的下结论是一个很不好的习惯,任何事情都有其原因,只有知道了原因,你才能知道是谁的问题。一般来说,总是自己出的问题。

3) 过多关注实现,陷入问题细节

有些时候,当我们面对一个问题或是一个需求的时候,糟糕的程序员总是会马上去找一个解决方案或是实现,这是一个很不好的习惯。设计模式告诉我们, “喜欢接口,而不是实现”就是告诉我们,认清问题的本质和特性要比如何实现更重要。

对于一个客户的问题来说,首先应该想到的是如何先让用户正常工作,如何恢复正在“流血”的系统,而不是把用户放在一边而去分析问题的原因和解决方 案。

对于解决一个bug来说,重现bug,了解原来程序的意图是首先重要的事,而不是马上去修改代码,否则必然会引入更多的BUG。

对于一个需求来说,我们需要了解的需求后面的商业背景,usecase和真实意图,而不是去讨论如何实现。只有了解了用户的真实意图,实际使用的方式和案例,你才能真正如果去做设计。

糟糕的程序总是容易陷入细节,争论于如何实现和实现难题,以及问题的根本原因,而忽略了比这些更重要的东西。只有看懂了整个地图,我们才知道要怎么去走。

4) 使用并不熟悉的代码

糟糕的程序员最好的朋友是 Ctrl-C 和 Ctrl-V,有些时候,他们并不知道代码的确切含义,就开始使用它,有证据表明,由拷贝粘贴引发的bug占了绝大多数。因为,代码总是只能在特定的环境下才能正常地 工作,如果代码的上下文改变了,很有可能使得代码产生很多你不知道的行为,当你连代码都控制不住了,你还能编出什么好的程序呢?

5) 拼命工作而不是聪明的工作

对于糟糕的程序员,我们总是能看到他们拼命地修正他们的bug,总是花非常多时间并重复地完成某一工作。而好的程序可能会花双倍的时间来准备一个有 效的开发环境,工具,以及在开发的时候花双倍甚至10倍的时间来避免一些错误。好的程序员总是会利用一切工具或手段来让自己的工作变得更有效率,总是为在 开发的时候尽可能得不出错。后期出错的成本将会是巨大的,而且那时改正错误的压力也是巨大的。

所以,糟糕的程序通常会让自己进入一种恶性循环,他们看上去 总是疲惫的,总是很辛苦的,所以更没有时间来改善,越没有时间来改善,就有越多的问题。所以,拼命工作有些时候可能表明你不是一个好的程序员。

6) 总是在等待、找借口以及抱怨

当需求不明确的时候,当环境不是很满意的时候,他们总是在等待别人的改善。出现问题的时候,总是在找借口,或是抱怨这也不好,那也不好,所以自己当 然就没有做好。糟糕的程序员总是希望自己的所处的环境是最好的,有明确的需求,有非常不错的开发环境,有足够的时间,有不错的QA,还有很强的teamleader,以及体贴自己的经理,有足够的培训,有良好的讨论,有别人强有力的支持……,这是一种“饭来张口,衣来伸手”的态度,这个世界本来就不完 美,一个团队需要所有人去奋斗,况且,如果什么都变得完美了,那么,你的价值何在吗?driving instead of waiting,leading instead of following.

7) 滋生办公室政治

有句话叫“丑女多作怪”,意思是说如果一个自己没有真实的能力的话,那么他一定会在其它方面作文章。糟糕的程序员也是这样,如果他们程序编不好的 话,比不过别人的话,他们通常会去靠指责别人,推脱责任,或是排挤有能力的人,等等不正常的手段来保全自己。所以,糟糕的程序通常伴随着办公室政治。

8 ) 说得多做得少

糟糕的程序员总是觉得自己什么都懂,他们并不会觉得自己的认识和知识都是有限的。这就是所谓的夸夸其谈,是的,什么都做不好的程序员能靠什么混日子 呢?就是吹啊吹啊。

另一个表现方式是他们在评论起别人的程序或是设计,总是能挑出一堆毛病,但自己的程序写得也很烂。总是批评抱怨,而没有任何有建设性的意见,或是提 出可行的解决方案。

这些糟糕的程序员,总是喜欢以批评别人的程序而达到显示自己的优秀。

9) 顽固

当你给出一打证据说明那里有一个更好的方案,那里有一个更好的方向的时候,他们总是会倔强的认为他们自己的做法才是最好的。一个我亲身经历的事例就 是,当我看到一个新来的程序员在解决一个问题的时候走到了错误的方向上时,我提醒他,你可能走错了,应该是另外那边,并且我证明了给他看还有一个更为简单 的方法,有。然而,这位程序员却告诉我,“那是我的方法,我一定要把之走下去,不然我会非常难受”,于是,在三天后的代码评审中,在经过顽固地解释以及一 片质疑声中,他不得不采用了我最先告诉他的那个方法。

这些程序员,从来不会去想,也不会去找人讨论还有没有更好的方法,而是坚持自己的想法,那怕是条死路都一往直前,不撞南墙永不回头。

10) 写“聪明”的代码

他们写出来的代码需要别的同事查看程序语言参考手册,或是其程序的逻辑或是风格看上去相当时髦,但却非常难读。代码本应该简洁和易读,而他们喜欢在 代码中表现自己,并尝试另类的东西,以显示自己的才气。是的,只有能力有问题的程序员才需要借助这样的显示。

记得以前的一个经历,一位英语很不错的程序员加入公司,本来对我们这些英语二把刀来说,我们喜欢看到的是简单和易读的英文文档,然后,那位老兄为了 展示他的英语如何牛,使用了很多GRE中比较生僻的短语和词汇。让大家阅读得很艰苦。最有讽刺意味的是,有一位native的美国人后来在其邮件中询问他 某个单词的意思。呵呵。

转载于:https://blog.51cto.com/hoytluo/619252

十个行为把你变成糟糕的程序员相关推荐

  1. 十个让你变成糟糕的程序员的行为

    转载:http://coolshell.cn/articles/1081.html 之前本站发表过<优秀程序员的十个习惯>以及<程序员需要具备的基本技能>,那是我们需要去学习和 ...

  2. 十个糟糕的程序员的行为

    原文:http://cocre.com/?p=1081 之前本站发表过<优秀程序员的十个习惯>以及<程序员需要具备的基本技能>,那是我们需要去学习和培养的.这里,我们主要讨论十 ...

  3. 用什么心态对待水平糟糕的程序员[不靠谱的程序员、思路紊乱的程序员]?

    这些年遇到了很多糟糕的程序员,其实真正是写程序料的人,普通IT公司大概只占1/3左右吧,其实有2/3的人都太适合当程序员,还不如早点儿改行该干啥就干啥了,其中有1/10的人往往是相对比较糟糕的. 01 ...

  4. 优秀的程序员VS糟糕的程序员

    优秀的程序员和一般的程序员差别在哪里?怎么才能成为优秀的程序员?我们选择了这个职业就要把他做好! 优秀的程序员: 1.逻辑能力很强,这也是解决问题的关键. 2.分析能力.可以很好的解决复杂问题. 3. ...

  5. 糟糕的程序员并不愚蠢,只是……

    总有些程序员更为出色.事实上,据某一统计数据显示:他们之中少部分人着实优异,有部分还不错,大多数至少能胜任程序员的工作,而一些人几乎不能胜任,一些则令人敬而远之. 也就是说,优秀的程序员和糟糕的程序员 ...

  6. 如何成为一名糟糕的程序员?

    今天我想和你聊一聊优秀程序员的基本素养. 我想你肯定遇到过这样一类程序员:他们无论是写代码,还是写文档,又或是和别人沟通,都显得特别专业.每次遇到这类人,我都在想,他们到底是怎么做到的? 随着工作时间 ...

  7. server 2008 mysql 报错 0xc000007b_这十个MySQL经典错误,99%的程序员一定遇到过!你呢?...

    今天就给大家列举 MySQL 数据库中,最经典的十大错误案例,并附有处理问题的解决思路和方法,希望能给刚入行,或数据库爱好者一些帮助,今后再遇到任何报错,我们都可以很淡定地去处理.学习任何一门技术的同 ...

  8. 程序员十个糟糕的行为

    注:本文的出处并不清楚!!!原文为网上收集! 这里,我们主要讨论十个糟糕程序员的特征,主要是需要让我们去避免和小心的.     1) 情绪化的思维     如果你开始使用不同颜色的眼光来看待这个世界的 ...

  9. 程序员的十个糟糕的行为

    1) 情绪化的思维 如果你开始使用不同颜色的眼光来看待这个世界的话,那么你可能会成为一个很糟糕的程序员.情绪化的思维或态度很有可能会把自己变成一个怪物.相信你经常可以看到很多很糟糕的程序会使用下面的这 ...

最新文章

  1. 性能优化:Sql语句中HINT不起作用
  2. file_get_contents设置响应时间timeout的方法
  3. Python中的四种交换数值的方法
  4. 如何胜任一个小型公司的技术总监?我的感想
  5. linux diff命令_Linux diff命令示例
  6. api es7 删除所有数据_Elasticsearch7.1中文文档-第四章-API约定
  7. 舞台音效控制软件_舞台音乐控制软件下载
  8. 使用realsense t265测试svo2.0视觉里程计
  9. 金融壹账通第一季营收10亿 沈崇锋:推进双重主要上市
  10. 知乎热议最丑陋的数学公式:「四次方程求根」高票当选
  11. 用c++语言写1加到100,C++ 语言实现1加到100(初学者)
  12. ubuntu切换python版本解决语法不匹配问题(SyntaxError: invalid syntax)
  13. 北京工作居住证续签注意的问题
  14. Coursera | Python for Everybody专项课程
  15. 单价飙升至3299!是飞天茅台的两倍,茅台的葡萄酒果真有酱香味?
  16. 世界最大射电望远镜(Arecibo)用于探测地外文明
  17. Debian安装redis
  18. 可视化场景内任意绘制多边形并测量面积
  19. 触目惊心!2017年化工行业事故203起死亡238人!附重大事件回顾
  20. 如何在Android上显示wmf的文件

热门文章

  1. 外行人都能看懂的SpringCloud,错过了血亏!
  2. Performance comparison Raw device VS Ext2 VS Ext3 VS OCFS
  3. DotNetNuke: System.Security.Cryptography.CryptographicException: Bad Data
  4. 每日两句英语-7/7/2009
  5. 关于socket和 jsp的几个问题
  6. CSS属性中Display与Visibility
  7. GridView常用总结
  8. 动态规划备忘录方法递归方法
  9. 对象数组 NullPointerException异常--将图C++ 改为java版
  10. 建立STM32的工程步骤(版本1)