如何成为更优秀的软件开发人员:个人绩效手册

2025-06-04

如何成为更优秀的软件开发人员:个人绩效手册

编写代码成为一名优秀的程序员之间存在很大差异

虽然学习编程基础知识的方法有很多,但培养辅助技能有时会困难得多。没有简单的在线课程可以教你如何更好地与团队合作。

并且没有单一的方法可以提高你自己的认知或解决问题的能力。

那么,开发人员究竟是如何从有能力变成优秀?从优秀变成卓越的?

当然,有些天生的能力可能会让某些程序员比同龄人更具优势。而另一些人可能连基础知识都难以掌握。但是,对于大多数渴望从优秀走向卓越的工程师来说,障碍并非基因或运气。

这是奉献,这是热情。

要想成为一名“摇滚明星”工程师(尴尬),一个人不仅要聪明能干,还得有这份渴望。你必须愿意投入大量的时间和精力,才能成为大师。

你必须深思熟虑地选择方法。没有人能一蹴而就地成为大师。你需要专注的努力,以及对目标的清晰愿景。

然后需要制定一个计划来实现这个目标。

替代文本

当然,这并不是说要么全有,要么全无。但重要的是要理解大多数人和真正杰出的人之间存在的根本差距。

除了对工艺的奉献和热情之外,工程思维也是成功解决各种问题的人的标志。

工程思维通常由其八个主要特征定义。 虽然有些开发人员可能天生就具备这些特征,但这并不意味着工程思维是完全预先设定的。它可以随着时间的推移而学习和有意识地发展。
替代文本

为了提高评估和解决问题的能力,您需要一种方法来衡量和评估这种表现。

衡量绩效

首先,什么使一个人成为优秀的开发人员?

没有单一的、明确的方法来衡量绩效(有很多方法无法衡量绩效,但这没有帮助),也没有静态的尺度可以比较两个开发人员或团队之间的绩效。

换句话说:评估开发人员绩效的最佳方法是衡量他们随时间的成长。

如果您想成为一名更好的跑步者,您会怎么做?

你可能首先会设定目标并制定计划。但是,你如何知道自己是否正在朝着目标前进呢?

你衡量你的能力。

你可以计时跑步,追踪距离,并比较速度。这里也一样。

无论是迭代内完成的故事点数量,还是编写的代码质量,都应该以一段规定时间内的持续趋势来衡量。如果你的得分是 10,那么你的目标应该是 11。

与跑步一样,过程如下:

  • 定义一种衡量绩效的方法
  • 衡量你的表现
  • 设定目标
  • 持续测量并比较一段时间内的表现
  • 确定并测试提高性能的新策略
  • 一旦达到了目标,重复一下你是否变得更好、更快或更有效率?

掌握基础知识

了解任何特定技能的基本原理是掌握该技能最重要的一步。

以国际象棋为例。想要成为大师,首先必须了解象棋的基本规则。他们不仅需要了解象在棋盘上的走法,还需要理解开局、位置和战术。

替代文本

对于开发人员来说,掌握两类基础知识至关重要:

  • 工程基础
  • 语言/框架基础

第一组适用于几乎所有类型的编程。它旨在理解有效编程的底层结构、流程和框架。

在第二部分中,我们更多地关注专业基础知识——特定环境下特定语言或框架的具体知识。程序员可能并非精通所有语言或框架,但拥有扎实的基础通常可以让他们更容易地掌握新技术。

为了我们的目的,我们希望专注于工程基础。

这包括什么?
例如:

  • 算法
  • 抽象
  • 隔离
  • 数据库

尽管这些在不同的语言/框架/范式中看起来不同,但基本逻辑是相对静态的。

你可能会想,如果你已经能够编写函数式代码,那么你一定已经掌握了基础知识。但是,你真的理解所有底层科学原理吗?

即使是优秀的工程师,有时也无法真正理解事物运作的原理和原理——他们只知道按哪个键按哪个顺序来实现。有趣的悖论是,这些基础知识实际上在你职业生涯的后期会变得更加重要,因为你的工作会变得越来越复杂,并且离在屏幕上编写和理解代码的基础越来越远。

这意味着许多开发人员花费数年甚至数十年的时间都没有真正理解其基本原理。

但最终,他们还是遇到了瓶颈。

随着问题变得越来越复杂——随着您试图成长并成为一名更好的工程师——您必须掌握这些基本概念。

否则,它们最终会成为你发展的障碍。所以,你需要刻意投入时间,专注于这门技艺的这个基本部分。就像任何事情一样,这意味着要抽出时间进行刻意而专注的努力——训练。

改进练习

基本面是——嗯——根本的。

但是,了解编程的基本组成部分!=成为一名优秀的工程师。

编程本质上是一种解决问题的练习。它涉及收集数据、理解上下文并制定最佳解决方案。培养任何解决问题能力最重要的部分或许是重复和模式识别。

这需要练习。

你遇到的用例越多,你对如何解决后续每个问题掌握的背景知识就越多。你遇到的问题越多,开发的解决方案也越多,这为你积累了更丰富的知识储备,供你日后参考。

那么开发人员如何应用这种机制来提高他们的个人能力呢?

练习发散性思维和集中性思维

通过某种方式训练你的大脑成为一名更优秀的工程师,这看起来似乎不太可能。但或许有一些科学依据的方法可以实现这一点。

一是简单地练习那些对解决问题至关重要的思维方式。或许更重要的是,练习我们在这些思维方式之间切换的能力,以便更好、更轻松地找到解决方案。

一般来说,我们在解决问题或学习新事物时会运用两种思维。

  • 专注思考
  • 发散思维

专注思考是指我们专注于某个特定的问题,并积极尝试找到解决方案。发散思考是指我们让想法以一种潜在或被动的思维模式酝酿——我们不会主动集中注意力,但它会停留在大脑深处的某个地方,我们会继续寻找解决方案或模式。

当谈到提升开发者能力时,这两种思维方式都至关重要。有些问题只需凭借意志力和专注就能解决;但有些问题可能需要更多的时间和思考。

创建辅助项目

副业项目不仅常常是激情和动力的体现,而且对于开发人员来说还能带来更广泛的益处。

副业与日常工作最大的区别在于,你可以接触到更多的视角。

您不仅仅是团队中的一名开发人员,您还可以成为项目经理、首席技术官,甚至首席执行官。

身兼数职,在不受任何外部压力的情况下,你能够更好地把握项目和产品的背景。你可以跳出自己的角色,了解更广阔的视野,并据此做出更明智的决策。

阅读其他人的代码

很大程度上,我们通过借鉴他人的成果来学习和成长。

虽然有时候在创作背景之外考虑自己的工作可能会感觉有点抽象,但分析他人的工作可以让你有机会跳出代码,尝试以新的方式解构和理解思维。

养成与不同团队成员合作审查或分析彼此工作的习惯。

替代文本

你不必把它变成一个正式的过程。但是,只要花点时间去研究和思考别人的代码或结构背后的思想,就能激发新的想法,或者推动你提升自己的能力。

巩固知识

学习固然重要,但真正重要的是掌握和运用知识。

当需要使用已学过的知识时,回忆起来往往很困难。

有一些技巧和策略可以帮助您巩固所学到的知识,并找到在未来很好地应用这些学习的机会。

使用交叉学习来学习新概念

交错学习背后的理念很简单。研究发现,如果人们将正在学习的内容混合起来——在几个不同的概念或练习之间交替进行——就能更好地学习和回忆新概念。

虽然时间阻塞可以有效提高开发人员的工作效率,但交错的概念实际上可能更有利于学习和回忆。

将你学到的知识传授给他人

对于许多人来说,最好的学习方式就是教学。

如果您对一个复杂问题有足够的了解,可以向别人解释它,那么您就更有可能以有意义的方式运用这些知识。

当然,教学是一种鼓励并要求积极回忆、解释和应用知识的练习。

因此,教授你所学到的知识可以成为保留新知识的基本策略,并提高你回忆和将这些知识应用到你自己的工作中的能力。

随着开发人员技能的提升,通过与他人分享来巩固知识通常很有帮助。无论是通过正规的教学或辅导,还是通过其他队友的非正式指导。

团队合作

归根结底,个人的能力或知识只会对整个团队的结果起到很小的作用。

成为房间里最聪明的人并不会让你成为一名伟大的开发人员,除非你利用这些知识来培养和提高你周围的人。

团队合作与编写优雅代码或解决难题的能力同样重要。事实上,拥有一个运转良好的团队可能比任何一个人成为特别高效的开发人员都更重要。

应用程序开发是一项团队运动。就是这样。

图像的替代文本

当然,也有一些关于个人开发者独自完成构建程序的艰巨任务的神话故事流传。这对他们来说很棒。

但这不是现实世界,而且这也不是构建软件的可持续方式。

随着您职业生涯的不断推进,您将与(甚至可能成为)许多不同类型的开发人员共事。为了出色地完成工作,您需要学习如何与不同性格的人相处,并最有效地与他们合作。

更重要的是,多样性可以帮助你成长,并使你的团队更好地解决问题。

但是,“善于团队合作”这个说法有点太抽象了。我们究竟该如何评估和提升我们的技能、协作能力、讨论能力以及给予/接受反馈的能力呢?

团队中的每个人都应该了解自己的能力,并了解如何相互补充。如果你的弱点是算法,那么改进该弱点的最佳方法就是了解谁比你更优秀,并积极与他们合作,共同提升你的技能。

只有当你开诚布公并与团队其他成员进行清晰的沟通时,你才能做到这一点。

定义你的角色

您应该考虑自己的优势或劣势如何定义您在团队结构中的角色。

你是被视为可靠高效的人吗?还是你是一位打破常规的思考者,推动团队探索新想法?无论你的最终角色是什么,你都需要考虑它在整个团队动态中扮演什么角色,以及如何以有助于推动更好结果的方式发挥这一角色。

发展背景

最有效的软件开发人员除了是一名熟练的程序员之外,还对他们所处的环境有广泛的了解。

这意味着什么?

这意味着软件不是凭空创造出来的。

优秀的开发人员明白,除了编写功能代码和检查积压工作中的用户故事之外,还有一些机构方面的考虑。

软件是为了实现某个目的而创建的。它需要在特定的条件下、在特定的预算范围内,并且面向具有一定知识或能力的用户运行。

换句话说,软件不仅仅是软件。它最终是某种问题的解决方案。

但是,要想升级,你需要看清屏幕上的内容之外的东西。

为了提高您作为开发人员的能力和价值,您应该努力摆脱每天编写代码的单调乏味,并问为什么。

了解决策制定的背景,以及这些决策将如何影响你的工作。但不要仅仅出于私心——而要因为你想参与决策过程,并更好地理解你所做工作的目的和重要性。


7pace Timetracker是唯一一款针对使用 Azure DevOps 的团队的集成式专业时间管理解决方案。

替代文本

文章来源:https://dev.to/7pace/how-to-become-a-better-software-developer-a-handbook-on-personal-performance-296h
PREV
如何删除未使用的 CSS
NEXT
SmolCSS.dev - 极简现代 CSS 代码片段