最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

程序员眼中最有价值的 10 条开发经验

作者:Oliver Jumpertz

  • 2021-08-23
  • 本文字数:3255 字

    阅读完需:约 11 分钟

程序员眼中最有价值的10条开发经验

本文最初发布于 Oliver Jumpertz 的个人博客,经原作者授权由 InfoQ 中文站翻译并分享。


到现在,我已经做了超过 21 年开发,可以说,我生命中超过一半的时间都在编程,那既是我的职业,也成了我的习惯。


下面是我在开发过程中学到的 10 条最有价值的经验。


你永远不可能什么都知道


尤其是在开始的时候,我以为我什么都能学会,在开发生涯的大部分时间里,我都是这样想的。但是,每次我学了什么新东西,就打开了一个全新的世界,里面有不同的概念和技术。


那似乎很有吸引力,你很愿意尝试,希望把什么都学会,但这是一个没有终点的旅程。如果要学的话,总是有其他的库、框架以及其他很酷的东西可以学。


因为似乎永远无法达成自己的目标,所以最终你的热情会慢慢冷却。最好是立足于你最擅长的东西,然后因需而学,即在真正需要的时候才学习新东西。这可以让你保持清醒,维持学习的动力。


你还可以把这一点应用在任何其他的领域。不是什么都知道才能达成预期的结果。利用这一点来打造自己的优势,在需要的时候学习。


好的团队可以让你的能力呈指数增长,而非线性增长


独立工作很好,但也会把你局限在自己的能力范围内。


但在一个好的团队中,交谈和讨论可以在很大程度上影响你的思维过程。问题变得很容解决。根据我的经验,这种效果通常是呈指数的而非线性。


不过,这也有个限值,团队太大了也不行。根据我的经验,这个限值取决于参与的人员。


站在个人的角度来说,尽量让自己身边的都是一些很容易相处的人。你会发现,工作完成得比以前快,甚至也更快乐。

编写的代码应该便于阅读


有一段时间,我觉得自己很聪明,追求编写高度优化的代码,运行速度越快越好。然而,很长一段时间之后,当我回过头来看这些代码时,我全然不知道那会儿做了什么。在开始真正的工作之前,我总是要花很大一块时间来回顾代码。更糟糕的是:99% 的情况下,那些优化都是不必要的。


代码首先应该便于人阅读和理解。如果你认为特定的代码路径可能存在性能瓶颈,就测试它。在有疑问的路径上添加度量执行时间的指标,然后进行分析。你经常会发现,你有疑问的代码实际上并没有问题。更多的时候,你会发现真正的问题其实是完全不同的东西。


如果有些代码真有问题,请尽量添加注释,说明为什么优化这段代码。如果你觉得需要说明自己做了什么优化,做就是了。你可能经常会听到人们说,你永远都不应该陈述代码做了“什么”。我的观点是:如果你无法让代码更容易理解了,而且知道其他开发人员需要你的帮助才能理解代码,那么添加注释即可。


你可以听从反对这种方法的人,把更多时间和金钱花在未来的问题上,你也可以忽略他们,确保每个人都有机会参与进来做开发。团队是有独立性的。便宜行事。

耐心是你最好的朋友


曾经,我就没什么耐心,现在,我有时候仍然受此困扰。


我经常要花时间修复一个 Bug 或完成一个特性。经常,学习新东西的时间会超出预期。

如果你觉得总要赶时间,那么你应该问问自己,为什么会有这种感觉。


是你自己的原因吗?那就停下来。你可以明天或后天完成。然后,下次处理类似的问题时,速度会更快。

如果是因为你的雇主,那么应该想想这家公司是否适合你。


有许多管理者认为,软件交付越快越好。他们设定不切实际的最后期限,对开发人员的期望过高。那些管理者真是不懂软件是如何开发出来的。


有时候,你会遇到全新的东西。你得费点功夫才能想出办法。随着你经验越来越丰富,你会越来越擅长处理此类情况。


试着保持耐心,不要把自己置于压力之下。当你能保持冷静,整理思路,并形成想法时,你的工作会更出色。而且,可以肯定,这对你的心理健康也是有益的。


不给自己压力,可以说是地球上最难的事情了,你总是免不了会这样做。那没什么问题。你只要尽力不要那样做就行了。时间长了,那会对你造成伤害。

持续性是关键


持续不断地做某件事可以帮助你成为专家。不是一次性投入 20 个小时,而是每天投入 15 分钟或 1 个小时。


不断的重复可以让你越来越擅长做某件事。开始的时候,你会经常查资料,逐渐地,你查的次数会越来越少。你的大脑慢慢地习得了相应的模式并保存了下来。

总是有比你优秀的人你可以向他学习


技术领域如此宽广,你无法把什么都学会。


其他开发人员学习的东西和你不同。在某些事情上,他们就有了知识优势。将此转化为你自己的优势!

你同事可能比你更擅长后端、CSS 或更底层的事情,而你也有自己的优势。你可以向他们学习,他们也可以向你学习。


这绝不是你应该嫉妒或放在心上的事。可以和别人建立联系来丰富自己的知识,这是很好的事情。你可以从别人多年的经验中受益,借此增长自己的知识。而且,你还可以从他人的失败中汲取教训,这样你就不会再犯同样的错误。


社交网络很重要


走出去,和人建立联系。现如今,这特别重要。


我曾经以为,一份出色的简历就可以为我打开所有的大门,但我错了。


在不认识你的时候,人们会根据一张纸来评价你。但是,在人们认识了你之后,他们可能已经了解了你的优势和不足。这使得你获取下一份工作或合同容易了许多。它会不断地为你带来学习、工作和互动的机会。

经常休息可以让你更高效


如果没有遇到困难,你可能会一直编码或工作而没有注意到时间的流逝,但你的大脑需要经常休息。

休息有助于大脑恢复活力,处理先前摄入的信息。做些完全不同的事情,等等你的大脑。可以去喝杯咖啡,聊聊天,但至少要离开办公桌。


在休息之前,你可能已经注意到自己的效率越来越低。当你休息完回来时,你发现效率又回来了。你有可以高效地工作了,直到下次休息。


曾经,我并不在意休息,因为我想完成自己的工作。事实证明,每隔一段时间休息一下大脑可以让我更快地完成工作。


有一条很好的经验法则是,每小时至少休息 5 分钟,四个小时后可以休息更长时间,最多 30 分钟。更好的做法是:听从你的身体,据此调整休息时间。


如果你开始觉得累了,效率下降了,或者注意力不集中了,那么就休息一下。

如果你希望在自己的职业生涯中更进一步,就需要有很好的人缘


在我职业生涯的初期,我以为,只要我付出足够的努力就可以获得回报。但事实证明,事情并非如此,至少在我看来是这样。没有人过来给我提供晋升机会或为我加薪。我觉得自己只是在无人注意的情况下继续工作。


当我可以大声说出自己对工作的看法,并开始与同事和管理者互动时,我的事业有了起色。如果一个问题在某种程度上适合我,那么我肯定就可以分得该项任务。在某些事情上,我成了名人,经常有人找我寻求帮助,我升职了。我在这里就不罗列早期取得的诸多成绩了。反正我的经理已经知道了。


为什么会这样?因为我经常与我的同事和经理谈工作。我从不吹牛。我如实陈述,很乐意帮助同事。私下里,我也经常和人们交流,增进彼此间的了解,建立起了很好的关系。


至少对于我来说,这很有效。你的经历可能有所不同,因为那和公司及其文化关系密切,但可能也值得一试。

大多数公司都不是你希望的样子


当我终于有机会从事专业工作时,我寄予了过高的期望。我想象着自己和顶级的工程师、技术专家一起解决令人望而生畏的问题。事实证明,我错了。


不要误解我的意思,我周围的工程师很棒,但只是和我想象的不一样。和我们共事的技术专家近乎无聊。问题也没有那么难。


我了解到,所有工程师都会犯错,也没有人什么都知道。毕竟,他们也是人。而技术专家通常恰恰就是那些解决我们所面临的问题的人。


技术越枯燥,就越能帮我们解决某些特定的问题。


开发软件就是为了解决问题。其中有一些会更令人厌烦。并不是每一名开发者都一直在开发将要改变世界的软件。通常,一个为人们的日常生活提供便利的小前端,或是将文件从 A 移动到 B 的 API,就是你赚钱的抓手。


一定要记住,并不是每家公司都有 FAANG 的规模。即使有那种规模,要解决的问题有时也同样令人厌烦。


还有一点很重要:外面有许多和你一样的开发者。你可以发挥你的影响力,并非所有同事都和你想的那样是顶级的。他们就是普通的开发者,工作做得非常好,而且和你懂的一样多。


如果你希望读到更多类似这样的文章,请在 TwitterLinkedIn 上关注我。


原文链接:


https://blog.oliverjumpertz.dev/the-10-most-valuable-lessons-i-learned-as-a-developer

2021-08-23 17:016369
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 335.3 次阅读, 收获喜欢 1795 次。

关注

评论 2 条评论

发布
用户头像
说的非常好!
2021-08-24 16:14
回复
用户头像
说的蛮好的。
2021-08-24 09:22
回复
没有更多了
发现更多内容

500行代码代码手写docker-将rootfs设置为只读镜像

蓝胖子的编程梦

Docker 云原生 k8s #k8s Docker 镜像

如何在上架App之前设置证书并上传应用

雪奈椰子

软件测试 | 测试计划目标

测吧(北京)科技有限公司

测试

跪了!Alibaba内部优质Springboot笔记:两大项目实战+源码解析

做梦都在改BUG

Java spring 微服务 Spring Boot 框架

太香了!Alibaba内部架构师进阶指南,理论+实践双飞

做梦都在改BUG

Java 架构

太牛了!腾讯T9耗时69天整理出最全架构师进阶核心知识点笔记

做梦都在改BUG

Java

更快速、更高效的键盘操作方式尽在Superkey Mac版~

真大的脸盆

Mac Mac 软件 键盘增强软件

用友与临港集团签署战略合作协议

用友BIP

国资国企数智化转型

国内半导体分立器件逐步向高端应用市场推进,未来可期

华秋电子

软件测试 | 软件需求的层次

测吧(北京)科技有限公司

测试

如何将千亿文件放进一个文件系统,EuroSys'23 CFS 论文背后的故事

Baidu AICLOUD

文件存储 元数据

惊喜!华秋DFM软件升级,新功能让你爱不释手

华秋电子

专业解读财务共享实现财务数智化转型的有效路径

用友BIP

财务共享

软件测试 | 不合格需求分析的风险

测吧(北京)科技有限公司

测试

池州控股集团财务共享项目启动啦!

用友BIP

财务共享

如何通过财务共享推进财务精细化管理

用友BIP

财务共享

开发敏捷高效 | 云原生应用开发与运维新范式

CODING DevOps

DevOps 云原生 CODING DevOps 开发运维 敏捷高效

厦门狄耐克:助推智慧医疗,需要夯实自身的技术底座

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

软件测试的误解有哪些?

测吧(北京)科技有限公司

测试

低代码平台简介(10家国产化低代码平台详细介绍)

优秀

低代码开发平台 低代码平台

软件测试 | 模块化与模块独立性

测吧(北京)科技有限公司

测试

浅析财务共享各阶段面临的挑战

用友BIP

财务共享

四川师范大学何云:事项法会计从五大方面助力企业创造价值

用友BIP

智能会计 价值财务 事项法会计

JVM—解析运行期优化与JIT编译器

做梦都在改BUG

Java JVM JIT

秒杀系统常见问题—如何避免库存超卖?

做梦都在改BUG

秒杀系统 电商超卖

软件测试的分类

测吧(北京)科技有限公司

测试

软件测试生命周期

测吧(北京)科技有限公司

测试

深入浅出微服务:40个微服务架构实战案例(Dubbo+Springcloud)

做梦都在改BUG

Java 微服务 Spring Cloud

用友协办国有资本投资运营公司第八次圆桌会议, 展示数智国资发展新路径

用友BIP

国资国企数智化转型

华为云CodeArts Snap 智能编程助手PyCharm插件安装与使用指南

华为云PaaS服务小智

编码 插件 智能编程

5000 字手把手实战|Kubernetes+极狐GitLab CI,获得极致 CI/CD 体验

极狐GitLab

Kubernetes DevOps 微服务 k8s CI/CD

程序员眼中最有价值的10条开发经验_语言 & 开发_InfoQ精选文章