QCon 全球软件开发大会(北京站)门票 9 折倒计时 4 天,点击立减 ¥880 了解详情
写点什么

低效程序员的 5 个坏习惯

2019 年 8 月 28 日

低效程序员的5个坏习惯

有些程序员比其他程序员更优秀。事实上,程序员群体也符合一个普遍的统计分布规律:只有少数人真的是聪明绝顶,有一些人很优秀,而大多数人至少算是能力尚可,有一些人几乎没啥能耐,还有一些人真的糟糕透顶。



这也就是说,一个优秀的程序员和一个糟糕的程序员,它们之间的差别并不一定是编码技能。事实上,这个差异存在于一些更基本的东西中,即个人的坏习惯。众所周知,人们在生活和工作中的确很难改掉坏习惯。


也就是说,我们开发人员常常会养成一些坏习惯,同时又时时被那些麻烦的代码所打击,这些因素加在一起,最终阻碍了我们发挥自己的全部潜能。虽然有些习惯可以帮助我们加快工作速度,但也有些习惯(比如我在打字的时候往自己脸上涂薄荷油……)只会给我们的工作和个人生活带来麻烦。


通常,我们并未察觉自己有这些坏习惯,我们需要的是有其他人来为我们指明这些问题。就像生活一样,编程也没有固定不变的严格规则。有时候,人们即兴发挥反而能意外获得成功。所以,让我们来谈谈程序员应该尽快改掉的一些编程坏习惯。


一、我的代码是最好的

尼采有一句名言:“每当我向上攀爬的时候,总有一只叫‘自负’的狗紧随身后。”


所有团队都欢迎的那种人,它的特征是:谦逊有礼、求知若渴、聪明睿智。谦逊有礼就是放下自负,更多地去关注队友而不是自己。求知若渴意味着他们有强烈的职业道德意识,有决心一定把事情做好,并尽自己所能做出一份贡献。聪明睿智,无关智商的高低,而是内在人格的聪慧。


不要随意去批评别人的代码,因为说不准什么时候就轮到你的代码放在聚光灯下被大家审视。请试着做出客观专业的观察,但不要轻易做出评判。请务必谦虚,试着向周围的人学习。


永远记住,你的自负会成为你工作的障碍。如果你开始盲目地相信自己的伟大,那就意味着你的创造力开始消失。当你开始认为自己无所不知,没有什么可学的时候,你的学习自然就停止了。


二、我立刻就能修好

Angela Duckworth(美国心理学家)曾经说过:“通往真正的卓越并没有捷径。”


奉劝你还是为自己着想吧,充分利用生活中的每一秒时间。如果你把所有的时间都花在用牙刷去擦洗无关紧要的边边角角上,那只能说你没有抓住生活的重点。欲速则不达,走捷径往往并不意味着能更快地得到最终结果。


走捷径确实很诱人,可能每个人都这么做过。实际上有些情况是必要的,但总得来说,走捷径是危险的,真的非常危险,所以应该尽可能避免。一条走错的捷径可能会为你节省几个小时,但可能会带来长达数月的麻烦和额外的名誉损失。


请认真对待我的建议。我明白了走捷径和不劳而获并不是真正的不用付出任何代价。


三、我记性很好,不需要文档

Dick Brandon 有句见解正好给这个观点当头一棒:“文档就像性,当它质量好的时候,它真的是妙不可言,当它质量差的时候,也聊胜于无。”



文档就像是编程的蓖麻油。管理人员们认为它对程序员不无裨益,但程序员们却总是对它心生厌恶!


话虽如此,那些优秀的开发人员往往将文档视作日常工作不可分割的一部分。


因为优秀的程序员会意识到,与任何其他业务功能一样,软件开发团队总是处于变化中。比如,程序员可能会换工作,从一个部门转到另一个部门,甚至退休。在最坏的情况下,疾病、受伤或死亡都可能会在你最意想不到的时刻让成员突然离队。


此外,代码也会逐渐“衰老”的。如果开发人员一年或更长时间没有接触一段代码的话,他们也很容易就忘记自己的代码当初是如何工作的。


在任何这些场景中,访问设计文档、API 规范、说明手册和代码注释都可能成为项目的制胜关键,决定着最终是成功交付产品还是错失最终期限。


这种态度也使得这些优秀程序员成为团队的宝贵资产。一个程序员不会因为故意不记录任何东西而变得“不可替代”,相反地,这样的程序员最终会成为团队“不可弥补”的负担。


四、这不是我干的!

李小龙有句话说得很对:“只要有勇气承认错误,错误总是可以被原谅的。”


也许上面这句话并不是放之四海而皆准,但这确实是一个真正伟大的开发人员最重要的特征之一。


我们总是找得到借口……这就好像我们说在正常情况下我们永远不会犯错,老实说,这很难让人真正信服。


糟糕的开发人员常常会责怪客户没有“正确地”使用产品。一个糟糕的程序员无法做到对整个产品和 bug 全身心投入和承担应有的责任。相反地,当其他人出了一个 bug 时,他们会确保每个人都清楚地知道这个 bug 该由谁负责。


而将责任归咎于别人到底能获得什么呢?其实根本什么都得不到。


如果有一个健康的态度,我们可能会这样说:“是的,对不起,现在我们需要做这件事来解决这个问题,这是我的错”。这样的处理方式将帮助你打造一个良好的声誉,也会让你的同事对你高看一眼。你越早承认错误,你就有越多的时间去学习和改正错误。事情真的就是这么简单!


五、你的“完成”其实并未真正完成

Rick Lemons(美国 IT 人士)有句话说得好:“不要让用户提供系统已经知道的信息。”


如果把编程比作性,那么一定会有很多并不满意的电脑。你可以不做,或做了一半就睡着了。好吧,我发现你正在纠结的一个概念是怎么才算“完成”。


记住,“完成”的意思是,根据用户的需求完成了测试和所有相关审查。并不是你觉得“完成“了就真的完成了。


一个优秀的开发人员总是渴望学习新东西。他们努力地去理解系统架构的所有部分是如何协同工作,以及它们处于何种状态。他们会去质疑特性背后的设计和思想,以找到更好的解决方案。他们明白什么是好的用户体验


而另一方面,一个糟糕的开发人员会依附于他们喜欢的技术。他们认为单一的方法或流程才是“理想的”,用户体验和实际情况永远不应该去驱动决策。他们将不必要的依赖关系引入到项目中,以满足他们自己的偏好。


这样糟糕的开发者,其行为就像一头闯进瓷器店的公牛。最终只是浪费时间、消耗精力和损失声誉罢了。


最后的想法

那么,能概括以上所有坏习惯的一个词是什么呢?这个简单的答案是:态度。


拥有良好的态度比拥有多年的经验更重要。仅仅工作是不够的,你必须有端正的工作态度,而不是拥有正确的技能,端正的态度远比技能更为重要。


在工作中,端正积极的态度和乐观的想法将会反映在你所做的事情中,并使你成为一名更有效率的员工。这决定你会怎样去完成你的项目,以及影响其他人对你的看法。良好的工作态度是有感染力的,会带动整个工作场所的气氛。


正如 Zig Ziglar(美国作家、演讲家)所总结的那样:“决定你高度的不是你的天资,而是你的态度。”


作者介绍:


Ravi Shankar Rajan,公司总部位于印度孟买,IT 项目经理。他还是一位狂热的博主、俳句诗人、考古学家和历史狂人,也是一个多产作家,写作主题从人工智能到爱情,十分广泛。


英文原文:


https://towardsdatascience.com/5-bad-habits-of-absolutely-ineffective-programmers-e74b74add9ca


2019 年 8 月 28 日 12:004524
用户头像

发布了 63 篇内容, 共 36.6 次阅读, 收获喜欢 114 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

企业如何预防短信验证码被别人盗用

香芋味的猫丶

短信防刷 短信轰炸机 短信验证码 短信防轰炸 短信防火墙

WiFi6 与 5G 的异同分析

石君

5G wifi 28天写作

K线成交量管理系统开发、成交量管理系统开发

W13902449729

K线成交量管理系统开发 成交量管理系统开发

细节!3部分讲明白HotSpot:运行时+编译器+垃圾回收器

996小迁

Java 架构 虚拟机 hotspot

nodejs事件和事件循环详解

程序那些事

nodejs 异步编程 程序那些事 事件和事件循环 nodejs event

在函数计算中到底该不该使用 VPC?

donghui

Serverless

阿里面试官纯手打:金九银十跳槽必会Java核心知识点笔记整理

Java架构之路

Java 程序员 架构 面试 编程语言

阿里资深架构师整理出来的一份Java核心知识点分享给大家.pdf

Crud的程序员

Java 架构 java程序员

盘点2020|征文大赛获奖名单公布

InfoQ写作平台官方

活动专区 盘点2020

为什么建议没事不要随便用工厂模式创建对象?

码农架构

Java 学习 设计模式

DeFi流动性挖矿管理系统开发|去中心化金融借贷系统开发

W13902449729

去中心化金融借贷系统开发 DeFi流动性管理系统开发

超强Android进阶路线知识图谱:Kotlin可能带来的一个深坑,持续更新中

欢喜学安卓

android 程序员 面试 移动开发

厉害了!来看看这份超全面的《Android面试题及解析》,一线互联网公司面经总结

欢喜学安卓

android 程序员 面试 移动开发

持续集成对IT团队和企业分别有哪些好处?

禅道项目管理

DevOps 运维 开发 CI/CD

四面字节跳动,虽一路坎坷但拿到offer,我的面试经验分享(Java研发)

Java成神之路

Java 程序员 架构 面试 编程语言

恕我直言!有了这份MySQL学习文档,你收藏夹里的其他MySQL学习资料都可以扔了

Java成神之路

Java 程序员 架构 面试 编程语言

阿里2021年首次公开五份Java并发编程全彩小册:模型+原理+应用+模式+面试题五管齐下

Java架构追梦

Java 学习 架构 面试 并发编程

区块链大趋势

CECBC区块链专委会

数字经济

案例研究之聊聊 QLExpress 源码 (六)

小诚信驿站

28天写作 QLExpress源码 聊聊源码

中美上市软件公司对比中的投资启示

ToB行业头条

五分钟快速掌握Maven的核心概念

Java架构师迁哥

牛批!腾讯大佬整理出的这份“spring boot”核心笔记,从入门到实战,差距不止一点点!

Java成神之路

Java 程序员 架构 面试 编程语言

并发阻塞队列(BlockingQueue)— 生产者消费者模式核心部件

码农架构

Java 架构 jdk 设计模式

2021年编排将成为DevSecOps关键推动者

啸天

DevSecOps 应用安全 开发安全

Linux I/O 原理和 Zero-copy 技术全面揭秘

赖猫

c++ Linux linux编程 服务器开发 I/O

Java 程序经验小结:类层次优于标签类

后台技术汇

28天写作

工作11年,从阿里P8出来,头发也没了,人也虚了,就剩下这份笔记了!

Java架构之路

Java 程序员 架构 面试 编程语言

区块链发展应以密码应用创新为根基

CECBC区块链专委会

区块链 密码学

字节内部MySQL宝典意外流出!极致经典,堪称数据库的天花板

比伯

Java 编程 架构 面试 程序人生

现货合约量化交易系统开发搭建

薇電13242772558

数字货币 策略模式

“区块链+数字身份”,道路坎坷前途光明

CECBC区块链专委会

数字技术

边缘计算隔离技术的挑战与实践

边缘计算隔离技术的挑战与实践

低效程序员的5个坏习惯-InfoQ