十年来,我作为一名软件开发人员学到的 8 件重要的事情。结论

2025-06-04

作为一名软件开发人员,十多年来我学到了 8 件重要的事情。

结论

最初发表于deepu.tech

我的 IT 职业生涯始于偶然,因为我没有计算机科学背景,而是获得了电气和电子工程学位,2010 年 3 月,今年是我从事 IT 事业的第十周年。

在给出任何建议之前,请允许我先介绍一下我的背景。在长达十年的专业软件开发生涯中,我曾担任过多个职位,例如初级/高级/首席开发人员、技术主管、项目经理、业务分析师、售前工程师、DevOps 工程师、云工程师、OSS 贡献者,以及最终的开发倡导者。在过去的五年里,我还荣幸地与JHipster共同领导了一个非常棒的开源社区。在此期间,我最初是一名 Java/JavaScript 开发人员,后来尝试使用 Go、Rust、Python、Kotlin、C# 等多种语言,现在我自认为是一名多语言开发人员。我构建过 Web 应用程序、企业应用程序、微服务、云原生应用程序、命令行界面 (CLI)、系统工具、库、Android 和混合移动应用程序等等。因此,我希望这些经验能让我有足够的时间谈论过去十年中我学习和实践的一些重要内容。

我希望这对刚刚开始职业生涯的初学者和初级开发人员尤其有益。

1. 不要嫁给技术

当你嫁给一项技术时,你就会开始生活在泡沫中,你会错过所有那些智能的替代方案

在我看来,这是任何刚开始职业生涯的人都应该学习的最重要的东西。不要执着于编程语言、框架或方法论。长期来看,执着于编程语言、框架或像 OOP/FP 这样的方法论弊大于利。尽量务实,按照技术的初衷来使用,就像工具箱里的工具一样。变化是唯一不变的,而 IT 行业比其他行业更适合它。语言会消亡,框架和方法论会来来去去,但行业会长存,任何不能适应变化的人都可能难以生存。所以,要明智,放弃那些正在消亡的东西,去学习那些看似未来的东西。

2. 避免成为粉丝

在你的职业生涯中,你会遇到令人惊叹的技术,并爱上其中的一些。这完全没问题,但要避免成为狂热的粉丝,并做好准备,在未来可能会出现更好的技术来取代它,当它被接受并继续前进时。盲目地坚持你所爱的东西对任何人都没有好处。我仍然看到一些正在消亡的语言或框架的狂热粉丝试图诋毁新兴的技术,请不要像他们一样,这对你和整个行业都是适得其反的。

3. 学习编程基础知识,成为一名通晓多种语言的开发人员

优秀的程序员用一种语言写出优秀的代码。优秀的程序员是独立于语言的。

学习一门语言时,要学习它的语义而不是语法。学习编程基础知识。学习对象、集合、内存模型、并发和数据结构。这些知识几乎可以应用于所有语言,而且围绕这些语言的概念不会经常改变。这将帮助你成为一名真正的多语言开发人员,这有其自身的优势,也会帮助你遵循以上两点,相信我,这会让你成为一名更优秀的开发人员。

4.为人而写

即使是傻瓜也能写出计算机能理解的代码。优秀的程序员能写出人类能理解的代码。

马丁·福勒

编写简洁明了的代码,避免炫耀你的聪明才智。我知道,尤其是在你职业生涯的起步阶段,你很容易在代码中炫耀那些新奇的语言结构或函数式魔法,以便你的同事看到你有多聪明,但相信我,编写简单易懂的代码比编写精妙复杂的代码更能让你走得更远。永远为问题选择最简单的解决方案。最好的程序员是那些编写最简单代码的人。

5. 编写文档、注释和测试

永远不要低估为代码编写良好的注释、文档和测试的重要性。我知道你可能听腻了,但我还是要强调这一点的重要性,不是因为我总是这样做,而是因为始终做到并不容易,我有时会牺牲这一点,每次这样做,我都会后悔。再说一遍,这并不容易,但你不必做到 100% 完美,你至少需要尽力而为。

6. 没有完美的代码

总有更好的方法去做某事,也总有更聪明的人来解决这个问题

我曾经花了很多时间打磨代码,不断重写代码以使其完美,但多年来,我开始意识到,没有所谓的完美代码,总有更好的方法,也总有比你更聪明的人能找到答案。我记不清有多少次有人为我认为完美的代码提出了更好的解决方案。因此,要解决手头的问题,避免过早优化和过度设计。我们这个行业的一个优点是,源代码在不断发展,如果需要,总有明天可以改进。别误会,我并不是说你应该写出低于标准的代码。当我说解决手头的问题时,我的意思是编写能够解决问题的代码,以及所有可能遇到的极端情况,并且代码安全且性能可接受。当我觉得某些地方可以改进时,我仍然会打磨我的代码,但我不会为此痴迷或失眠。我会先解决问题,然后如果有空闲时间,并且改进有助于简化代码或提高性能,我才会去做。但大多数情况下,它的完善使得代码变得更简单。

7. 不要盲目跟风

我们都犯过这种错误,尤其是在我们年轻的时候。看到炒作或潮流,我们就会不假思索地跟风。例如,如果你现在有 React 或 Angular 应用,在我看来,没有理由切换到 Vue。很多纯粹基于潮流、炒作或个人偏好的选择也是如此。不要仅仅因为炒作或潮流就去做某件事,做真正适合你问题的,记住,对某个团队有用的东西不一定对另一个团队也有效。大多数公司都会构建花哨的框架来解决自己的问题,但这并不意味着你必须无缘无故地盲目地适应它。

8. 不要无缘无故地重复做事

非我发明(NIH)综合症在 IT 公司很常见,弊大于利

最后,同样重要的是,要借鉴业界的集体智慧,利用开源软件 (OSS) 框架和库,而不是从头开始构建一切。市面上有大量开源软件库、框架和工具,适用于你选择的语言/平台,因此可以利用它们来解决复杂的问题。有时,稍微改变一下你的方法来适应一个库,比为了解决解决方案中的细微偏差而自行开发一个庞大的库要好。话虽如此,也有些时候你应该避免使用库,例如​​,最好只编写几行实用程序代码,而不是将库用于诸如左侧填充或修剪之类的简单操作。如果你想使用库中的实用程序,可以选择像 Lodash 这样提供多种实用程序的实用程序库。

结论

这些年来,我学到的很多东西都对我帮助很大,但这些才是最重要的。有些是常识,但很难意识到,尤其是在最初的几年里。根本的理念是务实,用合适的工具做合适的工作。


如果您喜欢这篇文章,请点赞或留言。

您可以在TwitterLinkedIn上关注我。

封面图片来源:Martin KatlerUnsplash上拍摄的照片

文章来源:https://dev.to/deepu105/8-important-things-i-learned-as-a-software-developer-over-a-decade-4no3
PREV
现代编程语言中的并发:简介
NEXT
我如何使用 Umami 自托管自己的网站分析