程序员犯的非技术错误(Top 5)

转载 2012年03月21日 18:02:16

对于程序开发者来说,有两种技术需要我们掌握,一个是技术上的能力,另一个是非技术上的能力。不幸的是,许多程序员过多地关注了技术上的能力,而忽略了非技术上的能力的培养,因此,我们的程序员们经常会有一些很不好的习惯,这里我们例举了程序员们最常犯的5个非技术的错误,与大家共勉。

1.- 缺乏团队纪律

“Discipline is the bridge between goals and accomplishment.” Jim Rohn.

纪律是一个最有价值的技能,不仅仅只是在软件开发领域,同样在其它领域也是一样的。但对于现实来说,我们很难找到即有才华又有纪律的人。这正如足球队一样,非洲的球员们才华相当的出众,可惜他们总是独自为阵,团队纪律性不足,所以可以有好的成绩,但却无法赢得最后的胜利;而德国队的队员个人技能平平,但其有很强大的团队纪律性,所以,总是能打入最后的决赛并获得冠军。有人说过,个人英雄并不可怕,而有强大纪律性的团队才让人可怕。这正是日本这个民族的可怕之处。况且,软件开发从来都不是一个人可以完成的事情,所以团队工作中的纪律性会是非常重要的。

Steve Pavlina 强调了自律中5个因素:“承担, 毅力, 努力, 勤奋, 和坚持” 这里,我们强烈推荐你读一读Steve的 关于自律的文章

下面是我们觉得程序应该有的比较良好的习惯。

  • 每天都有自己的to do list
  • 在一个时间内只做一个事
  • 把事情做对了
  • 事情没有完全完成时不要轻易结束
  • 慢点总比道歉好,道歉总比不做好

2.- 过度自负

我们的经验告诉我们,过度的自负的人一般是意识不到自己的自负,下面是一些过度自负的特征,希望你可以从中检测一下自己是否过度自负了。

  • 觉得自己是最牛的程序员
  • 总是打断谈话
  • 你要求Code Reivew不是要检查代码,而是向大家炫耀你的代码

在网上有太多的文章关于程序员的自负的问题,这里有两篇,你可以看看:一篇是Mike Bernat的 Egoless programming(无自负编程) 还有一个是stackoverflow.com 上的一个贴子

3.- 沟通不畅

“如果我要说十分钟,我需要一周做准备;如果说15分钟,我需要3天做准备;半个小时,我需要两天;如果说一个小时,我现在就准备好了。” Woodrow Wilson

人类的沟通是我们最主要的活动。成为一个好的沟通者是一件很难的事情,我们不断地和别人交换关于设计,编码,文章的意见,并且我们每天都在试图说服别人我们自己的设计和想法会更好,更有道理……

然后,好的沟通者是那些当他们正在解释一些事情的时候,他们的解释是下面这个样子的:

  • 专注。不跑题,没有废话。
  • 清晰. 很容易听懂。
  • 简明. 加一点就觉得多,少一点都觉得不够。

要有一个好的沟通技巧,我们的建议如下:

  • 如果你觉得你沟通方面不够好的话,请事先准备你要表达的东西,努力做到专注,清晰和简明。
  • 在交谈中,先听,后想,最后再说。
  • 永远从对方的角度思考问题。

4.- 忘了用户

“如果我们不关心我们的用户……那么别人会”

你的存在,你工作的意思只有一个原因——你的用户。我们在很多时间都会忘了这个事情。经常,我们在工作当中,技术会取代用户而占据了主要的位置,我们可以花费数月的时间来创建一个程序框架,但一个程序框架不会给用户代来任何的价值,我们不是说程序框架不重要,而是说,对于用户的需求来说,这是其次重要的东西。如果离开了用户的需求,我们所有的技术,算法或是精妙的设计将会变得什么也不是。

5.- 不懂工作的轻重缓急

程序员总是喜欢去研究一些新的或自己感兴趣的东西,但对于软件工程来说,我们更需要知道所有事情的轻重缓急,要学会如何了解事情的优先级,这样才会让我们的工作事半功倍,而我们的工作也会更有效。比如,当用户的站点出现问题的时候,有些时候,我们的程序员过试地关注于问题的重现和原因,而忘记了用户的站点正在流血,无法进行生产。所以,一般来说,最重要的事情首先是恢复用户站点,然后才是去重现和调查问题。在我们的日常工作中,我们要处理很多事情,只有了解到了所有事情的轻重缓急,处理最重要最紧急的事情,我们才能够更好的安排自己的工作,才能够更好的完成我们的事情。不要以为这是一件很简单的事情,这需要我们不断地和别人沟通来了解事情的轻重缓急,事实证明,如果我们不懂工作中的轻重缓急,本来只有一件紧急的事情,如果处理不当,最后可能会演变成多件紧急事情,其它本来不紧急的事,后来也会变得很紧急,最终程序员们顾此失彼,苦不堪言。希望大家切记。


相关文章推荐

程序员犯的非技术错误

对于程序开发者来说,有两种技术需要我们掌握,一个是技术上的能力,另一个是非技术上的能力。不幸的是,许多程序员过多地关注了技术上的能力,而忽略了非技术上的能力的培养,因此,我们的程序员们经常会有一些很不...

Top 10 Mistakes Java Developers Make | Java程序员最常见最容易犯的10个错误

#1.Array 转换成ArrayList 为了将Array转换成ArrayList,程序员会经常这样做: List list = Arrays.asList(arr); Arrays.asList(...

Java中的最常犯的错误Top10

1. 数组转ArrayList为了实现把一个数组转换成一个ArrayList,很多java程序员会使用如下的代码:List list = Arrays.asList(arr); Arrays.asLi...

最常犯的 HTML 标识错误 Top 100

国外的一个网站 W3CLove ,最近对在其网站上进行的 45 万的网页验证进行统计,下面是最频繁的错误和警告列表。 W3CLove是一个用来验证网页编写是否规范的在线网站,不过用它来测试 osch...
  • e_wsq
  • e_wsq
  • 2012年06月19日 14:08
  • 950

如何提升程序员的非技术才能

研发企业的核心资产是人力资源,人力资源管理除了关注“组织结构、岗位职责、绩效评估、专业培训”这些常规内容之外,还要设法提升研发人员的非技术才能,使现有人力资源发挥更大的效用。本文作者结合自己多年的实践...

程序员非技术面试题

程序员非技术面试题。。65

VisionMobile看Web App发展:HTML5兴起的背后是产业竞争而非技术驱动

VisionMobile是移动互联网业界非常著名的第三方分析机构,它的博文基本每月一篇,见解深刻,质量很高。关于HTML5以及Web App发展,就有多篇博文有深入探讨。 年初,Vision M...
  • ydj9931
  • ydj9931
  • 2011年11月30日 18:23
  • 609

C++程序员容易犯的十个C#错误

  • 2013年06月03日 16:11
  • 48KB
  • 下载

Java程序员 最常犯的10个错误

1.将数组转化为列表 将数组转化为一个列表时,程序员们经常这样做: List list = Arrays.asList(arr); Arrays.asList()会返回一个ArrayLi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序员犯的非技术错误(Top 5)
举报原因:
原因补充:

(最多只允许输入30个字)