写点什么

程序员眼中最有价值的 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:016961
用户头像
万佳 前InfoQ编辑

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

关注

评论 2 条评论

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

低代码是什么?看这篇就够了

高端章鱼哥

软件开发 低代码

龙蜥携手平头哥完成算能 SG2042 平台支持,推动 RISC-V 持续向高性能应用演进

OpenAnolis小助手

芯片 risc-v 龙蜥社区 平头哥 2023 RISC-V 中国峰会

充满信心地发布您的代币:我们专业的 IDO 代币启动板开发服务

区块链软件开发推广运营

数字藏品开发 dapp开发 区块链开发 链游开发 NFT开发

Apache IoTDB 确定参与 2023 OSCAR 开源产业大会开源集市!

Apache IoTDB

C++中虚继承时的构造函数

芯动大师

CloudEon V1.2.0版本发布!

CloudEon开源

大数据

Apache Doris 2.0.1 & 1.2.7 版本正式发布!

SelectDB

数据库 大数据 优化 apache 社区

优雅编码!Java与MongoDB的创新数据库架构

树上有只程序猿

Java mongodb 优雅编码

如何选择可靠的海外住宅代理ip?稳定性测试必不可少

摘星星的猫

Text Workflow for mac(文本工作流程) 1.6.5中文激活版

mac

苹果mac Windows软件 Text Workflow

接入 NVIDIA A100、吞吐量提高 10 倍!Milvus GPU 版本使用指南

Zilliz

nvidia 非结构化数据 Milvus Zilliz 向量数据库

ipp swap质押挖矿模式系统开发方案

V\TG【ch3nguang】

挖矿矿池系统开发案例

产业,到底需要什么大模型?

脑极体

产业大模型

DevOps |研发效能之环境、程序、配置、SQL变更管理

laofo

DevOps cicd 研发效能 持续交付 平台工程

华为云Astro低代码三侠「踢馆」 ,学员:也带带我!

YG科技

ARTS 打卡第 27 天

自由

ARTS 打卡计划

喜讯!极限科技再次中标中国移动云 Elasticsearch 自研版技术开发服务项目!

极限实验室

elasticsear 极限科技 中国移动云

查询性能提升10倍!喜马拉雅广告倒排索引设计实践

喜马拉雅技术团队

lucene 性能优化 倒排索引 喜马拉雅

ARTS 薪火重启之第四周

渣渣辉

坚持自主创新 IoTDB,天谋科技 CTO 乔嘉林获优秀软件工程师

Apache IoTDB

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