▲点击上方"什么技术值得学",关注持续获得知识
您是一名从事软件开发职业的初级开发人员吗?
或者是最近刚开始新工作的计算机科学毕业生?
也许一个自学成才的开发人员想知道下一步该做什么?
开始你的软件开发生涯可能会很吓人,但也非常令人兴奋。
我知道这种感觉,自己去过那里。在过去的5年里,我从初级程序员转到一个公司技术领导者,带领一个开发团队,负责公司的核心项目。一路上学习很多东西。
我把的经验写在这里,希望给一些新人一些建议。
每个人的知识是存在差异的
大学学位,编码训练营和在线课程在教你如何编码方面做得很好。
然而,事实是,在软件开发的现实世界中,它比编写代码还要多一些。你必须明白:
哪种技术最适合不同的问题
其他人编写的代码
设计模式和最佳实践
如何测试代码
CI / CD,源代码控制和分支策略
软件开发生命周期和不同的方法
不仅要与您的团队合作,还要与其他团队,管理层和客户合作
你可能已经知道了这些东西,或者你以前从未听说过这些东西。那没关系。你作为初级软件开发人员,你的领导和你的队友都知道这一点。
所以你的知识会有差距。不要感到不知所措。
事实上,作为软件开发人员的一部分优点是技术总是在变化。无论我们处于什么水平,我们都将始终在学习。
问题很好 - 所以请求帮助
你有第一个任务,你会兴奋并直接进入。然后......你被困住了。您的代码无法按预期工作,您所需要的只是一个奇怪的,令人困惑的错误消息。
难过,您考虑向团队中的其他开发人员寻求帮助,但您认为:
“如果他们认为我愚蠢怎么办?或者说我不能编码?并嘲笑我?!“
但实际上,这种情况永远不会发生。他们实际想到的是:
“好的,我会快速看看,看看能不能帮忙。啊! 是的,我遇到过这个问题,你可以使用的someMethod()从somePackage()来解决它“。
哪个不是那么糟糕吧?
您的团队随时为您提供支持,特别是在您职业生涯的早期阶段,请向他们寻求帮助。
同样,如果您不理解某些内容,请提出问题。我每天仍在问大量的问题!没有一个愚蠢的问题。您的团队宁愿帮助您,而不是让您在一天中的大部分时间都茫然地盯着您的屏幕。
Code Reviews 是你的朋友
作为第一份初级开发人员工作的一部分,我永远不会忘记我的第一次Code Reviews。我的代码正在由经验丰富的高级开发人员审核。当时我发现这令人伤脑筋。而且,当然,他的评论比我想象的要多!
但事后看来,这是一件好事。
Code Reviews 不是批评的阶段,而是学习和提供各方面的反馈。
高级开发人员和我坐在一起,解释了每条评论的含义,以及他为什么做出这些评论。不用说,我学到了很多东西。因此,在审核您的代码时,请记住,任何反馈都是为了帮助您作为软件开发人员学习和改进。
同样,当你为其他人审核代码时,您将能够看到不同的人如何处理不同的问题。您甚至可以通过提出自己的建议来帮助他们改进!
分解它,然后再分解它
好的,所以你有第一个真正的任务,根据任务的大小,你可能会感到有点不知所措:
“我从哪里开始?我想我会从做X开始,但Y怎么样?但是,如果我做Y,那么有A,B和C ......再次发生X的事情了吗?!“
别担心我们都去过那儿。在试图解决问题时,很容易迷失在众所周知的兔子洞里。下次遇到大问题时,请尝试记住此引用,
“你怎么吃大象?一口咬一口。“
换句话说,通过将其分解为更小的任务,使一个看似不可能的任务更易于管理。
那你怎么做的?
在编写任何代码之前,请尝试用简单的语言编写步骤。我们来举个例子吧。
你怎么倒一杯水?
简单的方法是:
打开橱柜
拿一杯
将玻璃放在水龙头下面
打开水龙头
当玻璃杯已满时,请关闭水龙头
从水龙头下面取下玻璃杯
通过写出步骤,可以更容易地查看问题的每个部分,并为每个步骤提出解决方案。
把事情简单化
许多初级开发人员犯下的一个常见错误(当我开始时自己包括在内)就是尝试重新发明轮子。
通过在代码中使用超级花哨的技术来解决问题可能看起来令人印象深刻。
但这会导致其他问题:
代码与系统的类似部分的工作方式完全不同,难以维护
您的代码可能会变得更加冗长,并且会增加错误的风险
完成任务可能需要更长时间
那么你究竟如何保持简单?
让它起作用。不要过分思考,并尽一切努力让你的代码正常工作
重构。现在您的代码正在运行,是时候重构了。通过很好地命名并使用正确的格式,使代码易于阅读。有关详细信息,请参阅下面的“了解如何编写干净代码”
加快速度。完成重构后,您可能会注意到代码性能的瓶颈。现在是优化它的时候了。要小心不要过早地陷入过度优化的陷阱!只有在你需要时才这样做。
温馨提示:在编写任何代码之前编写一些失败的测试。这称为测试驱动开发。这不仅可以为您提供良好的测试覆盖率,还可以帮助您考虑代码的结构。
学习如何编写简洁的代码
掌握简洁的代码将使您作为软件开发人员脱颖而出。
那么Clean Code究竟是什么意思呢?
遵循SOLID原则
它是可测试和可维护的
它易于阅读和遵循
换一种说法:
任何傻瓜都可以编写计算机可以理解的代码。优秀的程序员编写人类可以理解的代码。 - 马丁福勒
我不会在这里详细介绍,就像书:Clean Code: A Handbook of Agile Software Craftsmanship , Robert C Martin 将更深入地了解这一领域。如果您认真考虑编写简洁的代码并突破初级开发人员级别,我强烈推荐这本书。
编写简洁的代码表明您对自己的工作充满热情,并且可以创建可维护的可靠软件。更不用说你将为下一个加入你的代码的人提供更轻松的生活。
“那里有一个图书馆”
你有没有告诉过一个朋友你遇到的问题,他们会回答“是的,那里有一个应用程序”?
软件开发有点像这样。
您尝试解决的问题已经有很多答案。因此,当您尝试完成任务时,请检查其他人是否已解决问题。
你可以这样做:
寻找现有的包和库
浏览GitHub和StackOverflow等网站,以获得类似问题的解决方案。
把它抱在那儿!这不会让你自由地复制和粘贴代码而无需考虑。如果使用的是别人的代码作为一个例子,你明白它是重要的什么他们的代码在做什么,为什么。
为什么使用特定的设计模式?
为什么用特定语言编写?(例如Node.js vs Python)
有什么缺点?它适用于您当前的代码库吗?
如果你不确定,可以向团队中的某个人寻求指导。在Google上搜索答案是解决编码任务的常用方法。所以不要害怕转向你的队友说:
“我正在考虑使用这个库X或这个包Y,我在这里看到了一些例子,你怎么看?”
这不仅表明你是主动的,而且还会激发团队的一些对话/辩论。你可能已经发现了一些其他人都不知道的东西!
学习如何阅读代码
我们都看过那些电影。黑客快速键入代码页面向下滚动显示器前面的监视器。
在现实世界中,开发人员花费更多时间阅读代码而不是实际编写代码。
添加新功能或修复缺陷时,您必须了解当前正在处理的代码库。你怎么做到这一点?阅读,阅读,阅读!
阅读代码也是一种有益的学习技巧。阅读现有代码可以让您了解其他人如何开发某个功能。
需要注意的事项:
使用设计模式
方法,类和变量的命名
使用评论
如何构建项目文件
测试的使用及其结构
那你在哪里找到要阅读的代码?
工作中的源代码管理中的存储库
GitHub上的项目
阅读StackOverflow上的答案/问题
代码挑战代码网站,如codewars.com,它们展示了挑战的答案
开开心心
如果你从这篇文章中获得一件事,那么就这样吧 - 玩得开心很重要。喜欢编写代码,解决问题,继续学习。您正处于一个令人兴奋的职业生涯的开始,所以请坐下来享受前行!
温馨提示:
学习术语。我们开发人员有自己的搞笑语言(“创建分支”与树无关!)所以请确保您理解关键术语
了解您的IDE。学习热键,快捷方式并自定义它,直到您对它感到满意为止。这将提高您的工作效率。
处理错误是了解代码库的好方法。所以不要害怕挑选这些!
带上笔记本,倾听意图并写下所有内容。
在业余时间接受一些项目。这是学习日常工作中不学习的不同技术的好方法,可以提高您的简历。
参与工作活动是了解同事的好方法。为什么不自己组织一个?
谢谢阅读!
你对初级开发人员有任何意见或建议吗?你是一名踏上自己旅程的初级开发人员吗?在下面发表评论,我很乐意听取您的意见。
你觉得文章有用,请给个“好看”
一个会思考的胖子
扫码关注“什么技术值得学”,获得更多技术知识