初级开发人员的缺点
您是从事软件开发事业的初级开发人员吗?
还是最近刚开始从事新工作的计算机科学专业的毕业生?
也许一个自学成才的开发人员想知道下一步该怎么做?
开始您的软件开发生涯可能会令人恐惧,但也非常令人兴奋。
我自己去过那里就知道这种感觉。 在过去的四年中,我从初级开发人员转到SaaS初创公司的首席开发人员,在此过程中学到了很多东西。
我已经用最重要的技巧编写了本指南,不仅可以生存,而且在成为初级开发人员的第一年要努力。
知识上的差距也可以
大学学位,编码训练营和在线课程在教您如何编码方面做得很好。
然而,事实是,在软件开发的现实世界中,除了编写代码之外,还有很多其他事情。 您必须了解:
-哪种技术最适合不同的问题
-其他人编写的代码
-设计模式和最佳做法
-如何测试代码CI / CD,源代码控制和分支策略
-软件开发生命周期和不同的方法
-不仅与您的团队合作,而且与其他团队,管理层和客户合作
……仅举几例。
您可能已经知道其中一些内容,或者您可能从未听说过其中任何内容。 没关系。 您是初级软件开发人员,您的经理和您的团队成员都知道这一点。
因此,您的知识将存在空白。 每个开发人员都有! 如果这一切都没有直接意义,请不要感到不知所措。
实际上,成为软件开发人员的好处之一就是技术总是在变化。 无论我们处于什么水平,我们将始终在学习。
问题很好,因此寻求帮助
您有第一个任务,就感到兴奋并直接潜水。但是然后……您陷于困境。 您的代码无法按预期运行,您所要做的只是一个奇怪的,令人困惑的错误消息。
陷入困境,您考虑向团队中的其他开发人员之一寻求帮助,但是您认为:
“如果他们认为我愚蠢怎么办? 还是我无法编码? 嘲笑我?!”
但实际上,这将永远不会发生。 他们实际上会想到的是:
“好的,我会快速浏览一下,看看是否可以提供帮助。 啊! 是的,我之前遇到过此问题,您可以使用somePackage()中的 someMethod() 对其进行修复。”
哪个还不错吧?
您的团队会为您提供支持,尤其是在您职业生涯的早期阶段,因此请他们提供帮助(如果您有兴趣,我会在这里详细介绍如何成为一名优秀的队友 )。
同样,如果您不懂某事,请提出问题。 我仍然每天都在问很多问题! 没有愚蠢的问题。 您的团队宁愿为您提供帮助,也不希望您在一整天的时间里困惑地盯着屏幕。
代码评论是您的朋友
我永远不会忘记我的第一份初级开发人员工作中的第一次代码审查。 经验丰富的高级开发人员正在审查我的代码。 当时我发现了这种令人不安的东西。 而且,当然,来自他的评论超出了我的想象!
但是事后看来,这是一件好事。
代码审查不是批评的舞台,而是各个方面的学习和反馈。
高级开发人员与我坐下来,解释了每条评论的含义,以及他发表这些评论的原因。 不用说,我学到了很多东西。 因此,在审查代码时,请记住,任何反馈都将帮助您以软件开发人员的身份学习和提高。
同样,当您查看其他人的代码时,您将能够看到不同的人如何处理不同的问题。 您甚至可以通过提出自己的建议来帮助他们改进!
分解,再分解
好的,因此您有自己的第一个实际任务,具体取决于任务的大小,您可能会觉得不知所措:
“我从哪说起呢? 我想我会先做X,但是Y呢? 但是,如果我做Y,那么有A,B和C…。X又发生了什么?!
不用担心我们都去过那里。 尝试解决问题时,很容易迷失在众所周知的兔子洞中。 下次您遇到大问题要解决时,请记住该报价,
“你怎么吃大象? 一次咬一口。”
换句话说, 通过将任务分解为较小的任务 , 使似乎不可能完成的任务变得更易于管理。
那你该怎么做呢?
在编写任何代码之前,请尝试使用简明英语(或您选择的语言)写出这些步骤。 让我们举个例子。
您如何倒一杯水?
普通的英语方法是
-打开橱柜
-来一杯
-将玻璃杯放在水龙头下
-打开水龙头
-玻璃装满后,关闭水龙头
-从水龙头下方移走玻璃
通过写出步骤,可以更容易地可视化问题的每个部分并为每个步骤提出解决方案。
把事情简单化
许多初级开发人员经常犯的一个错误(尝试时包括我自己)是尝试重新发明轮子。
通过在代码中使用超级技巧来解决问题可能看起来令人印象深刻。
但这会导致其他问题:
与系统的相似部分很难维护的代码完全不同您的代码可能变得更加冗长,并且可能会增加bug的风险完成任务可能需要更长的时间
那么,如何使它保持简单呢?
让它起作用。 不要考虑太多,尽一切努力使代码正常工作
重构。 现在您的代码可以正常工作了,该重构了。 适当地命名和使用正确的格式,使代码易于阅读。 有关更多信息,请参见下面的“学习如何编写简洁的代码”
加快速度。 重构完成后,您可能会注意到代码性能的瓶颈 。 现在是优化它的时候了。 注意不要过早陷入过度优化的陷阱! 仅在需要时这样做。
奖金提示。 在编写任何代码之前,请考虑编写一些失败的测试。 这称为测试驱动开发 。 这不仅可以为您提供良好的测试覆盖范围,而且还可以帮助您考虑代码的结构。
了解如何编写简洁的代码
掌握清晰的代码将使您成为软件开发人员。
那么,清洁代码到底是什么意思?
遵循SOLID原则可测试和可维护易于阅读和遵循
换一种说法:
任何傻瓜都可以编写计算机可以理解的代码。 好的程序员编写人类可以理解的代码。 —马丁·福勒
我在这里不做过多介绍,例如Robert C Martin撰写的《 干净代码:敏捷软件技巧手册 》一书将对该领域提供更深入的了解。 如果您真的想编写干净的代码并突破初级开发人员的水平,我强烈推荐这本书。
编写干净的代码表明您对所做的事情充满热情,并且可以创建可维护的可靠软件。 更不用说您将使下一位来添加您的代码的人的工作更加轻松。
“有一个图书馆”
您是否曾经告诉朋友您遇到的问题,然后他们回答“是的,有一个适用于此的应用程序”?
软件开发有点像这样。
您正在尝试解决的问题已经有了很多答案。 因此,当您尝试完成任务时 ,请检查是否有人已经解决了该问题。
您可以通过以下方式做到这一点:
寻找现有的软件包和库浏览站点,例如GitHub和StackOverflow,以解决您的问题。
放在那里! 这并不会给您带来束缚,无需任何考虑即可复制和粘贴代码。 如果使用的是别人的代码为例,它是重要的,你了解他们的代码在做什么, 为什么 。
为什么要使用特定的设计模式?为什么要用特定的语言编写? (例如,Node.js与Python)有哪些缺点? 它可以与您当前的代码库一起使用吗?
如果不确定,可以向团队中的某人寻求指导。 搜索Google的答案是解决编码任务的常用方法。 因此,不要害怕转向您的队友说:
“我正在考虑使用这个库X或这个包Y,我在这里看到了一些示例,您对此有何看法?”
这不仅表明您很主动,而且还会引起团队的一些对话/辩论。 您可能已经发现了其他人所不知道的棒极了!
了解如何阅读代码
我们都看过那些电影。 当代码页被黑客滚动时,黑客会Swift键入这些信息。
在现实世界中,与实际编写代码相比,开发人员花费更多的时间阅读代码。
添加新功能或修复缺陷时,您将必须了解正在使用的当前代码库。 你怎么做到这一点? 阅读,阅读,阅读!
阅读代码也是一种有益的学习技术。 阅读现有代码可让您了解其他人如何开发特定功能。
需要注意的事情:
-使用设计模式
-方法,类和变量的命名
-使用注释如何构造项目文件
-测试的使用及其结构
那么,您在哪里找到要读取的代码?
在GitHub上的workProjects上的源代码控制中的存储库在StackOverflowCode挑战网站(例如codewars.com)上阅读答案/问题,这些网站显示了挑战的答案玩得开心!
如果您从本文中删除一件事,那就顺其自然吧–获得乐趣很重要。 享受编写代码,解决问题并继续学习的乐趣。 您正处于令人兴奋的职业生涯的开始,所以请坐下来享受旅程!
奖金提示
-学习行话。 我们的开发人员有我们自己有趣的语言(“创建分支”与树木无关!),因此请确保您了解关键术语
-了解您的IDE。 学习热键,快捷方式并对其进行自定义,直到您习惯为止。 这将提高您的生产率。
-处理错误是学习代码库的好方法。 因此,不要害怕拿起它们!带上笔记本,专心聆听并将所有内容写下来。
-在业余时间从事一些副业项目。 这是学习日常工作中不会学到的各种技术的一种好方法,它将提高您的简历。
-参与工作活动是认识同事的好方法。 为什么不自己组织一个人呢?
谢谢阅读!
要将最新的技巧和指南直接发送到您的收件箱,请确保加入www.chrisblakely.dev的邮件列表!
翻译自: https://hackernoon.com/ace-your-first-year-as-a-junior-developer-with-this-advice-3610t3cmk
初级开发人员的缺点