如何成为一名有效的软件工程师

by Luis Santiago

路易斯·圣地亚哥(Luis Santiago)

如何成为一名有效的软件工程师 (How to become an effective software engineer)

When I first started my journey as a software engineer I quickly noticed the great amount of cognitive load involved when working on enterprise projects. There are many moving targets throughout the execution of a plan.

当我刚开始作为软件工程师的旅程时,我很快注意到从事企业项目时涉及大量的认知负担。 整个计划执行过程中有许多移动目标。

Clean code, tests, security, config files, performance, deployments, and many more variables commonly form part of the mental load required for successful completion of a project.

干净的代码,测试,安全性,配置文件,性能,部署以及许多其他变量通常构成成功完成项目所需的智力负荷的一部分。

I was contemplating a paradox I have seen many engineers face: trying to stay up to date with the latest trends in this ever-changing software industry while delivering great value to the company I work for.

我当时正在考虑一个我已经看到许多工程师面对的悖论:试图跟上这个瞬息万变的软件行业的最新趋势,同时为我工作的公司带来巨大的价值。

I was craving time outside Jira stories to dedicate effort to my growth.

我渴望在Jira故事以外的时间花些时间为自己的成长付出努力。

And then I started seeking tools that could help me add tremendous value to my organization, maintain growth, and become effective.

然后,我开始寻找可以帮助我为组织增加巨大价值,保持增长并变得有效的工具。

意识到什么很重要 (Awareness About What Matters)

My main source was mentorship from people in the technology industry. Especially, mentorship in book formats from authors like Gary Vaynerchuk, Cal Newport, and Edmund Lau.

我的主要资源来自技术行业的指导。 特别是,来自加里·维纳楚克(Gary Vaynerchuk),卡尔·纽波特(Cal Newport)和埃德蒙·刘(Edmund Lau)等作家的书籍形式的指导。

I identified a pattern in their advice. It was awareness — deeply understand what matters and execute towards that goal. The identification of clear goals gives us opportunities to measure them. Self-awareness allows us to recognize the things we do best and also see our weaknesses.

我在他们的建议中确定了一种模式。 这是意识-深刻理解重要的事情并执行该目标。 明确目标的确定为我们提供了衡量目标的机会。 自我意识使我们能够认识到自己最擅长的事情,也可以看到自己的弱点。

“Accept your shortcomings, and strive to become more conscious of who you really are.” — Gary Vaynerchuk
“接受自己的缺点,并努力使自己更加了解自己。” — Gary Vaynerchuk
杠杆作用 (Leverage)

In the book The Effective Engineer, Edmund Lau suggests leverage as a yardstick for effectiveness. Leverage is the return on investment for the effort that is put in. I see this as a generic definition of leverage. Combining Edmund Lau’s equation of leverage gives me a whole new perspective of its definition:

在《有效工程师》一书中,埃德蒙·刘(Edmund Lau)建议将杠杆作用作为提高效率的标准。 杠杆是投入的投资回报。我认为这是杠杆的一般定义。 结合Edmund Lau的杠杆方程式,为我提供了其定义的全新视角:

Looking at the equation above I make sense of the parameters that influence the outcome of leverage.

看上面的方程式,我理解了影响杠杆结果的参数。

Before I start developing code, I commonly have an idea of how the product implementation will produce impact to the business. Even after implementation, I can measure its true impact by tracking logs, usage, and adoption rate. This numerator, impact produced, is indirectly given to us.

在开始开发代码之前,我通常会了解产品实施将如何对业务产生影响。 即使在实施之后,我也可以通过跟踪日志,使用情况和采用率来衡量其真正的影响。 这种分子, 产生的影响是间接给我们的。

The denominator is the parameter we have the most trackability over. Time invested is the value we can measure, before, during, and after execution. Putting in effort to keep this parameter to a minimum yields a higher leverage. This means higher return on investment (ROI).

分母是我们可追踪性最高的参数。 投入的时间是我们可以在执行之前,之中和之后衡量的价值。 尽力将这个参数保持在最小值会产生更高的杠杆作用。 这意味着更高的投资回报率(ROI)。

In the case of software engineers, ROI could mean improving trust with business partners, higher rate of adoption, or reducing the time it takes to perform a certain task.

对于软件工程师而言,ROI可能意味着提高与业务伙伴的信任度,更高的采用率或减少执行特定任务所需的时间。

To achieve this, we have to get good at getting things done efficiently.

为此,我们必须善于高效地完成工作。

“Effective engineers are not the ones trying to get more things done by working more hours. They are the ones who get things done efficiently — and who focus their limited time on the tasks that produce the most value.” — Edmund Lau
“有效的工程师并不是试图通过工作更多的时间来完成更多工作的人。 他们是高效完成工作的人,他们将有限的时间专注于产生最大价值的任务。” -刘德华

In the book High Output Management, ex-CEO of Intel Andrew Grove shares three ways to increase leverage:

在《高输出管理》一书中,英特尔前首席执行官Andrew Andrew Grove分享了三种提高杠杆率的方法:

  1. Reduce the time it takes to complete a certain task

    减少完成特定任务所需的时间
  2. Increase the output of an activity

    增加活动的输出
  3. Shift to higher-leverage activities

    转向高杠杆活动

And Edmund Lau complements them with three questions:

刘德华补充了三个问题:

  1. How can I complete this activity in a shorter amount of time?

    如何在较短的时间内完成此活动?
  2. How can I increase the value produced by this activity?

    如何增加这项活动产生的价值?
  3. Is there something else I could spend my time on that would produce more value?

    还有什么我可以花时间在上面的东西可以产生更多的价值吗?

I sometimes get laser-focused on a specific coding task. However, I find it beneficial to stop once in a while and ask myself these three questions. I see them as a pulse check for effectiveness.

有时我会专注于特定的编码任务。 但是,我发现偶尔停下来问自己这三个问题是有益的。 我认为它们是对有效性的脉搏检查。

心态 (Mindset)

The perspective of our own intelligence, character, and ability deeply affects how we lead our lives.

我们自己的才智,性格和能力的观点深刻影响着我们的生活。

The adoption of a growth mindset is one of the most impactful concepts I have come across. Mostly because it is an effective tool for developing our confidence. There come times in which we feel the famous imposter syndrome creeping in. We might feel like our skills don’t line up with what “they” are looking for.

采纳成长心态是我遇到的最有影响力的概念之一。 主要是因为它是建立我们信心的有效工具。 有时候,我们会感觉到著名的冒名顶替综合症正在蔓延。我们可能会觉得我们的技能与“他们”想要的东西不符。

But when you adopt a growth mindset, you tell your story. You tell who you are, what skills you’ve built, what you are excited about doing next and why. Consciously recognizing areas of improvement and actively executing a plan of self-betterment. It means taking responsibility for each aspect of a situation that you can change.

但是,当您采用成长心态时,就会讲自己的故事。 您可以说出自己是谁,已经建立了哪些技能,对接下来的工作感到兴奋以及原因。 自觉认识到需要改进的地方,并积极执行自我改善计划。 这意味着对您可以更改的情况的各个方面负责。

Learning, just like invested money, also compounds:

就像投入金钱一样,学习也会使:

  1. Knowledge gives you a foundation to gain more knowledge.

    知识为您提供了获取更多知识的基础。
  2. The earlier you optimize for learning the more time your learning has to compound.

    优化学习的时间越早,学习的时间就越多。
  3. Even small deltas in your learning rate can make a big difference in the long run.

    从长远来看,即使您学习率的差异很小,也会产生很大的变化。
限制进行中的工作量 (Limit the Amount of Work in Progress)

Checklists can improve outcomes. They are a tool used to reduce errors in many fields. Keeping a checklist helps me transfer all the effort of remembering what I have to do next from my mind to another place. This allows me to focus my brain power on problem solving and development.

清单可以改善结果。 它们是用于减少许多领域中的错误的工具。 保留清单有助于我将记住下一步工作的所有精力从脑海转移到另一个地方。 这使我可以集中精力解决问题和解决问题。

Avoid context switching. Focus your undivided attention to one task at a time.
避免上下文切换。 将您的专心专注于一次完成一项任务。

Any form of distraction, including working on multiple tasks at the same time, takes away from my ability to become effective. When possible, I apply deep work, a skill I learned from Cal Newport’s book Deep Work. I make a conscious effort to shut off all distractions and work on developing mastery.

任何形式的分心,包括同时处理多个任务,都会使我失去有效的能力。 在可能的情况下,我会应用深度工作,这是我从Cal Newport的著作《深度工作》中学到的技能。 我有意识地努力阻止所有干扰,并努力发展掌握能力。

Cal Newport defines Deep Work as:

Cal Newport将Deep Work定义为:

“Professional activities performed in a state of distraction-free concentration that push your cognitive capabilities to their limit. These efforts create new value, improve your skill, and are hard to replicate.” — Cal Newport

“专业活动是在无专心的状态下进行的,这会使您的认知能力达到极限。 这些努力创造了新的价值,提高了您的技能,并且难以复制。” —卡尔纽波特

结语 (Wrapping up)

The practice of adopting a growth mindset toward new skills makes us better learners and more willing to stretch beyond our comfort zone.

对新技能采取成长型思维的做法使我们成为更好的学习者,更愿意超越自己的舒适范围。

Many times, I have felt excited about a new project idea. I think about the amount of value its implementation could add. Then I also think about all the things that could go wrong. I think about failure. I feel fear. I stop.

很多时候,我对一个新的项目构想感到兴奋。 我认为其实施可以增加多少价值。 然后,我还要考虑所有可能出错的地方。 我考虑失败。 我感到恐惧。 我停下。

But with a growth mindset, I understand I must reach beyond that thinking cycle. I understand I am always learning. Just like a product in beta, always in progress. Always in a constant iteration. Then I keep moving onwards along my journey to effectiveness.

但是,以成长的心态,我明白我必须超越这一思维周期。 我知道我一直在学习。 就像Beta版的产品一样,它总是在不断发展。 始终处于不断的迭代中。 然后,我会继续朝着有效的方向前进。

翻译自: https://www.freecodecamp.org/news/how-to-become-an-effective-software-engineer-b2d25b588bc8/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值