为了成长,你有时需要拥抱不适

原文地址:https://betterprogramming.pub/6-tips-to-advance-yourself-as-a-junior-developer-af961c000f58

image.png

照片由Lindsey LaMontUnsplash拍摄

从事软件工作是很困难的——无论你处于什么级别。但作为一名刚毕业或刚转行的初级开发人员,这段旅程可能更具挑战性。

与一年前相比,我作为一名初级开发人员,从刚毕业的大学毕业生到可以参与设计决策并对各种项目产生真正影响的开发人员,我确实取得了长足的进步。我认为这是我进入该领域后第一年的一项重大成就。

但改进不是免费的。在过去的一年里,我故意让自己处于不舒服的境地以变得更好——而且它得到了回报。在这篇文章中,我想分享六个技巧,它们真正加快了我作为软件开发人员的进步。

1. 有个人公关清单

当你开始与你的团队实际合作时,一定会审查其他人的 PR。

有效且正确地审查 PR 很重要。实施者可能会犯错误,而作为审查者,你是潜在错误被合并之前的最后一道防线。

但是,仔细审查 PR 需要时间。因此,你希望在花费的时间和评论质量之间找到平衡。

在这些情况下,创建公关清单真的很有帮助。你可以列出需要密切注意的事项,并在审查代码时牢记这些事项。

例如,当我审查前端 PR 时,我拉下分支并检查以下内容:

  • 代码是否在本地编译/运行?它有控制台错误吗?
  • 代码更改是否满足任务的退出条件?它与模拟匹配吗?
  • UI 边缘情况(长文本截断、Redux 竞争条件、加载/失败屏幕)
  • 移动响应
  • 可以翻译 UI 字符串吗?
  • 没有遗漏的测试

然后,我将转向更主观的事情:

  • 编码风格。更重要的是,它是否符合当前的风格?
  • 代码的可维护性。需要评论吗?
  • CSS 和 JS 最佳实践(如果可以使用const,请不要使用let

通过浏览此列表中的项目,我可以确信我在审核时已尽力而为,并且会发现所有可见的错误(如果有的话)。当然,拥有一个列表并不能 100% 消除错误,但它可以大大减少出现错误的机会。

最后,重要的是要始终询问你在 PR 上不了解的内容。作为初级开发人员,学习某些东西的最好方法是看看其他人是如何做的——而 PR 正是向你展示了这一点。如果 PR 上有你不理解的内容,请毫不犹豫地询问。

2. 学习记笔记

这听起来可能很明显,但我认为当我们刚开始作为开发人员时,我们都忽略了做笔记的重要性。

记笔记并不意味着每天都有一个待办事项清单(尽管这也很重要)。你应该记下所有值得记住的事情。

我对每件事都做笔记。这可以是与经理的 1-1 个主题、一个我花了几个小时努力解决的错误、一个我不知道的内部工程过程、我在引导存储库时遇到的问题,或者我在网上找到的可以解决特定问题的有用文档问题。

你的记忆力永远不如纸上的墨水(或 Notes 应用程序)。你会忘记一些事情,因为作为开发人员,你每天都会遇到新的挑战。

记录你遇到的事情和所做的事情不仅对你自己而且对其他开发人员都非常有益。如果你将来遇到类似的问题,它可以为你节省时间,并且其他开发人员也可能会遇到这些问题。

3. 分析自己并找到模式

能够快速和高质量地完成任务并不是区分高级开发人员与初级开发人员的唯一因素。但这并不意味着它不是一个重要的差异化因素。

是什么让高级开发人员成为“高级”?

主要区别之一是它们可以通过承担更复杂的任务并以质量和速度交付,为组织创造更多价值。

你的输出率仍然是影响你表现的最重要因素之一,因此在保持正确性的同时加快输出速度非常重要。

当你从一个任务到另一个任务时,分析你如何处理它们并找到模式。

如果你始终未能按时交付任务,并且评估任务的复杂性不是问题,那么就有问题了。

在这种情况下,请分析你是如何处理任务的,并尝试找出问题所在以及花费你最多时间的模式。例如,我注意到对于复杂的错误,我在没有计划的情况下深入调试。这大大阻碍了我的速度,因为我会朝错误的方向看。

找到模式后,你可以对其采取行动以加快输出速度。

当事情进展顺利时,你还可以找到模式。分析是否有一种方法非常适合你并继续应用它。这完全是为了了解你作为开发人员的最佳工作方式。

4. 学习如何提问

问问题很正常。你肯定会发现自己在某个时候陷入了一个问题,不得不向别人寻求帮助。

然而,提问也是一种技巧。你需要以一种不仅可以给你想要的答案而且让收件人更容易回答的方式来构建你的问题。

特别是当我们大部分时间都在远程工作时,你不应该用简单的谷歌搜索就可以回答的毫无意义的问题轰炸他人。

我总是尽力以一种会导致是或否答案的方式提出问题。这意味着我会展示我的尝试、我得到的结果以及我的任何怀疑或有根据的猜测。

我问的任何人都可以简单地回答“是”或“否”,并给出答案的解释或为我指明正确的方向。

学会聪明而有效地提问。你不仅会得到你正在寻找的答案,而且还会为你自己和你询问的人节省时间。

表明你在询问之前已尝试过,并且你尊重他人的时间。你不想因为你提出的每一个问题都打扰别人而名声在外。

5.为你不知道如何做的任务买票

如果你在团队中工作,那么团队需要在 sprint 中完成一组票证。对于你不知道如何去做甚至不知道如何处理的任务,将会有一些票证。

如果时间限制,这些是初级开发人员可以接受的最佳任务类型。它们也是向你的经理证明你的能力的最佳门票。

在这种情况下不要害怕。完成一项你不知道如何执行的任务的工单将迫使你学习全新的事物并更加熟悉你组织的代码库。

学习应该是困难和具有挑战性的。如果你总是接受你知道如何做的任务,那么它们的挑战性就会越来越小。如果你只写前端组件,你应该如何学习后端?作为一名开发人员,你必须走出舒适区才能学习和成长。

当然,当你完全陷入困境时,请始终寻求帮助。很有可能,当你处理超出你当前能力范围的任务时,你团队中的其他人会注意到并期待你提出问题。

6.成为某事的首选人

当你作为一名初级开发人员工作时,主要关注点之一应该是成为代码库某个领域的首选人。

这可以与整个项目一样大(如果你能做到这一点,那就太好了),也可以小到一个大型应用程序中的单个功能。

作为初级开发人员,晋升的最佳方式是为自己设定一个超越当前能力的标准。如果你查看高级开发人员,他们通常是多个项目和存储库的首选人员。

成为某个领域的“专家”会迫使你完全理解代码。这意味着了解它的作用、为什么这样编写、做出的设计决策以及它如何融入整个画面。它还向你的经理和其他开发人员证明你在组织中产生了影响并且可以信赖。

请注意,这并不容易,你将不得不做出牺牲。当一个功能被实现时,你不能停下来。只有当你完全了解该功能时,你才能停止。这可能意味着要花更多的时间来阅读代码和文档,甚至在当前团队之外接手工作。

结论

作为初级开发人员一开始肯定会有压力,但好消息是它是可以管理的。对你的期望会降低,你的错误也不会造成灾难性的后果。选择这条路我当然很高兴并且不后悔。

所以利用这段时间,保持冷静的心态。请记住,每个人都必须从某个地方开始,然后按照自己的方式工作。

我希望这些提示可以对你有所帮助,并祝你好运!