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

也就是说,优秀的程序员和糟糕的程序员之间的区别不一定在于编码技能。事实上在于更基础的东西:比如不良习惯。不论生活还是工作中,不良习惯都很难移除。

也就是说,开发人员在编码时经常会沾染不良习惯,最终会阻碍其充分发挥潜能。虽然某些习惯可以帮助提升工作效率,但是一些习惯(比如打字时用薄荷擦脸)会对商业活动和个人生活产生不良影响。

人们通常意识不到自己的坏习惯,而我们所需的就是他人来揭示这些习惯之所在。就如人生一般,编程没有硬性规定,有时你会取得胜利。

下面就来探讨哪些是需要尽快改正的不良习惯。

1. 我的代码就是最好的。每当我攀登时,都会有一只叫做‘自我'的狗尾随着。弗里德里希·尼采

所有团队需要的皆是态度谦和,求知若渴,和聪明伶俐的人:谦和中虽有些许自我,但更多地关注队友而不是自己;求知若渴指有强烈的职业道德感,这意味着程序员要有愿尽其所能完成任务的决心;聪明伶俐不仅仅体现在智力上,也体现在内在特性上。

别随意评判他人的代码,在聚光灯下不够完美的也可能是你自己的代码。尽可能客观和专业地进行观察,而不要评判。保持谦虚,向周围的人学习。

时刻谨记:自我是工作的障碍。如若开始时便坚信自己是伟大的,那这将是创造力枯竭之时。当你认为没有什么东西可学时,学习的大门便会关闭。

2. 我可以立刻解决这个问题。成功没有捷径。Angela Duckworth

但帮自己一个忙吧。允许自己跳脱生活的禁锢。花费所有时间用牙刷擦洗每个角落有些偏离重点了。采取捷径并不意味着捷径就能通向最终结果。

捷径非常具有诱惑力,每个人都曾经这样做过。实际上有些情况抄近道是必要的,但总体而言,走捷径很危险,极度危险,应该规避。错误的捷径可能会节省几个小时的时间,但更可能导致数月的痛苦并对名誉造成负面影响。

走捷径和自由生活并不是真正意义上的自由。


3. 我可以记得一切。我不需要做记录。文档记录就像性生活;当向好的时候,它非常非常好,当向坏的时候,它也总比没有好。Dick Brandon

文档记录像是编程的蓖麻油。管理人员认为这对程序员有好处,程序员十分讨厌它!

但伟大的开发者,使其成为日常生活的固有部分。

他们意识到,与任何业务功能无异,软件开发团队总是处于不断变化之中。程序员可能会换工作,从一个部门转移到另一个部门或退休。最糟糕的情形如,疾病,受伤或死亡可能会在最意料不到的情况下将你边缘化。

代码也会变老。开发人员如果长达一年或更长时间没有接触代码,可能会很容易忘记如何编码。

以下情况如,访问设计文档,API规则,手册页和代码注释都可能意味着发货产品和截止日期之间的差异。

这种态度使他们成为团队的一份宝贵财富。你不会因为故意不记录任何东西而变得“不可替代”。而你最终只会成为你团队“不可挽回的”责任。

4. 不是我!如果一个人勇于承认错误,那么错误总是可以原谅的。李小龙

也许上述陈述不能只限于轻描淡写的说。它是真正伟大的开发者最重要的品质之一。

我们总能找借口......就像说在正常情况下我们永远不会犯错误,老实说这很难让人信服。

糟糕的开发人员责怪客户“没有正确使用”产品。他们没能承担起整个产品和错误的责任。但是有一点可以确信的是,当他人失误时,谁应当承担错误每个人都心知肚明。

推脱责任到底能得到什么?什么都得不到。

健康的态度是你可以说:“是的,对不起,现在我们需要这样做来解决这个问题,是我的错”。这能帮助建立声誉,并且更易得到同事们的谅解。

越早承认错误,就越有时间来学习并纠正错误。就那么简单!!!

5. 你的“完成”未完待续。不要让用户提供系统已知的信息。Rick Lemons

如果把编程比喻成性,就会有很多不被满足的计算机。你可以不进去,半途而废然后入睡。我发现你努力解决的一个概念是“完成”的概念。

请记住,完成意味着:根据用户的要求进行测试和批准。程序员认为的完成并非真正的完成。

一个优秀的开发人员渴望学习新事物。他们努力了解建筑的每一个组成部分如何协同工作以及它们处于什么状态;质疑解决问题所需的设计和想法,也了解良好的用户体验所需的要素。

另一方面,糟糕的开发者会十分依赖他们钟爱的技术。他们认为单一方法或过程是“理想的”,用户体验和不同情形永远不应该推动决策。他们将项目不断带到满足自己偏好的情况上。

像这样的糟糕的开发者行为就像在中国商店的公牛。终其只会浪费时间,浪费努力,也有损声誉。

有没有一个词能高度概括以上内容呢?


态度。

无论何时,拥有良好的态度都能胜过多年的经验。

仅仅工作是不够的,必须要有正确的工作态度,而非合适的技能,正确的态度重要得多。

在工作中拥有良好,积极的态度和积极的思考能够反映出工作性质,并使你成为一名更富有成效的员工。这决定了你项目的完成程度,也决定了其他人对你的看法。良好的态度是可以传染的,尤其是在工作场合。

糟糕的程序员并不愚蠢,只是……相关推荐

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

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

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

    十个行为把你变成糟糕的程序员 http://developer.51cto.com/art/201107/276255.htm 程序员当然也是分级别的,不是所有的程序员都是一个合格或是优秀的程序员.建 ...

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

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

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

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

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

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

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

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

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

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

  8. 糟糕程序员的一些迹象与补救方案

    英文 | https://javascript.plainenglish.io/signs-that-you-are-a-bad-programmer-dc1c647827d6 不要误会我的意思,我不 ...

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

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

最新文章

  1. Linux ps aux指令詳解--转
  2. Android保存自定义路径的图片的一些问题
  3. 在CDS(Core Data Services)中使用DCL(Data Control Language)
  4. iPhone 7卖点不多出货量下降?剧透分析师又发报告
  5. webase crud查看所有表_Laravel-Gii 可视化代码生成工具 CRUD +GUI
  6. SystemVerilog例子---traffic light
  7. Docker图形化工具Portainer
  8. CPU Cache Line:CPU缓存行/缓存块
  9. SAP License:把握好集成测试大关,ERP就成功了一大半
  10. 如何从JavaScript中删除数组中的元素?
  11. 易筋SpringBoot 2.1 | 第廿四篇:SpringBoot访问Docker中的MongoDB
  12. 软件设计师考试历年试题汇总
  13. 密码学(五):数字签名和证书
  14. 深度学习中处理类别不平衡问题主流方法总结
  15. java 图片 大小_在JAVA中调整图片大小
  16. thinkpad触控笔怎么用_联想yoga720触控笔怎么用
  17. ios点击推送闪退_iOS 13.4 Beta 4 发布,闪退问题修复
  18. Trizol法提取RNA实验步骤
  19. 旋转矩阵变换左右手系
  20. 微信小程序 错题记事本 111111

热门文章

  1. 离散数学【笔记】{谓词逻辑、公式的解释、等价关系、前束范式、推理形式和推理规则、综合推理方法}
  2. php将微信绑定到账号上,微信通帐户绑定
  3. 揭秘“风水界”你不得不知的那些事
  4. 计算机网络参考模型(OSI讲解)
  5. 【计算机网络】计算机网络定义
  6. Android--Binder机制
  7. c语言if函数的应用
  8. JavaScript高级语法之解释器(Interpreter)
  9. IV转换电路 IV放大 跨阻放大器 光电信号放大器 原理图及PCB设计分析
  10. 【STM32CubeMX学习】SPI读写W25Q16