当我开始成为软件开发人员时,我希望知道什么

在软件工程领域工作了6年之后,有时我会停下来思考一下自从我开始职业生涯以来学到的东西。 让我印象深刻的一件事是,如果我有这个机会的话,我想告诉大学学院里的很多事情。

虽然我没有这种能力,但我希望以下几项内容对那些从大学毕业并进入软件行业的人们有用。

继续学习

您刚刚获得文凭,对成就感不知所措,现在感到渴望向新同事证明自己的愿望吗太好了,恭喜您,祝您好运,但是请记住,这只是您学习的开始。

您很快就会发现需要继续学习新技术,新方法,新技术,新语言。 尽快开始,因为以无人监督的方式学习(没有课程大纲,没有老师,没有期末考试)是您需要磨练的技能。

在舒适区域之外学习。 如果您使用动态语言,请学习静态类型的语言。 如果您习惯使用IDE等,请使用VIM或Emacs。

寻找导师

我只是说大学毕业后没有老师,但这并不是完全正确的。 没有人会和您一起坐在教室里去上预定义的课程。 但是,找到一个可以指导您的更有经验的人仍然非常有益。

桑德罗(Sandro)的著作《软件工匠》 ( The Software Craftsman)描述了导师如何对新软件开发人员带来极大的好处。

根据与您合作的公司的不同,可能会为您提供一位导师,或者有人会来找您并自发地提供帮助。 有时您需要寻找它们。 如果您在同事中找不到他们,请在社区活动中寻找他们。

问问题

我大学毕业时不知道框架是什么。 查找Wikipedia的定义也无济于事,而且在很长的几个月里,我太害怕显示自己的无知和询问。

不要重复我的错误。 不应期望您一无所知。 问,不要害怕表明你不知道什么。

大多数情况下,您会发现团队中至少有一个其他人有相同的问题,或者人们对您所用术语的定义略有不同。 即使您是唯一一个提出问题的人,也不会是唯一一个从中学到东西的人。

尽早获得良好的实践

这些良好实践将成为您发展事业的基础。 尽早获得它们。

利用现有的库和框架

大学毕业后,我几乎不知道如何正确使用图书馆。 如前所述,我什至都不知道框架是什么。

作为大三学生,我们倾向于重新发明轮子。 我们定制的解决方案通常质量不如数百年来在其上进行协作的图书馆一样。 尝试重新使用现有的资源。

另一方面,了解给定库的权衡是什么。 仍然维护吗它很容易使用是否需要对应用程序体系结构进行重大更改确保隔离该库,以便替换它并不意味着对代码进行更改。

但是仍然了解基本原理

库很方便,因为它们消除了复杂性。 但是,请花一些时间了解它们在后台的工作方式。

虽然您的Web框架将为您处理HTTP请求,但是您需要了解HTTP是什么以及如何在两台计算机之间传递信息。 同样,请花一些时间来了解DNS , TLS和其他低级协议的基础。 如果您的应用程序使用OAuth或基于会话的身份验证 ,则需要了解它,并且需要了解后果。 此页面是一个很好的起点。

假设错误是你的

您将面临无法解释的错误。 有时甚至是heisenbug ,在调试它们时也会消失。 绝望的是,您可能会想将错误拒绝给代码以外的其他原因。 始终以您的代码而不是库,操作系统或其他任何问题为前提。

这是谦卑的教训。 与经过了数年努力的经过严格测试的库相比,未经测试的2天的旧代码有更多的机会出错。 随着时间的流逝,您的调试技能和错误发现者的本能会不断提高,无论如何您都会得出结论。

有时候,确实是您以外的其他软件组件中的错误。 无论该漏洞有多大恶意,还是看上去多么粗心,都请记住您的代码被抛弃了多少个错误,并且不要将其与错误代码的作者联系起来。

测试,测试,测试

我认为在软件工程课程中没有充分实践自动化测试和测试驱动的开发。 这些是当今软件开发中最重要的技能之一,我希望我在职业生涯的早期就意识到这一点。

了解如何编写测试以及如何维护测试。 与可以教您测试驱动开发的人配对。 如果您在同事中找不到这样的人,请查看您住所旁边的软件Craft.io社区 。

清洁代码原则

从一开始就学习如何编写简洁的代码。 Robert C Martin的书是一个很好的起点。 在线上也有很多内容(只需查看Codurance博客上的其他文章)。 花时间阅读并应用其中的一些内容。 向您的导师或同事寻求反馈。

编程是一种社会活动

取决于您在开始职业生涯之前已经进行了多少编程实践,您可能仍然相信程序员的一天是独自坐在编辑器前度过的。 您需要尽快了解与他人合作能赢得多少。

配对编程

这是一项非常重要的技能。 习惯与其他人进行编码,将键盘从一个人不时地传递给另一个人。 与比您更熟练的人和初学者一起练习。

擅长编写代码甚至无法完成一半的工作

您需要学习如何与用户或产品负责人合作,询问有关功能的问题并管理期望。

您会发现有时候,答案不是将更多代码添加到您的项目中:要么不需要此功能,要么可以使用当前版本的应用程序来实现,或者有另一个应用程序提供了80%的功能。功能。

不要“聪明”

聪明会在大学里得到回报。 可能已经鼓励您优化for循环,或者通过在前一行中用替换减少一行代码。

具有创造力和机智,能够解决一个棘手的复杂问题是件好事。 但是不要使用巧妙的微优化来降低代码的可读性。

初学者软件工程师面临的最大挑战之一就是使您的代码可读。 您的队友需要能够在无需您帮助的情况下理解您的代码并对其进行改进。 巧妙的优化通常会通过使代码的意图不那么明显而与之相反。 取消这种“学术”反射。

但是要理解这是一个折衷,可读代码比聪明代码更重要。 无聊的代码是好的。

翻译自: https://www.javacodegeeks.com/2016/10/wish-knew-started-software-developer.html

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92193 人正在系统学习中 相关资源:聚会喝酒看美女必备APP_秀人网-Android其他资源-CSDN文库

来源:danpu0978

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月24日
下一篇 2020年3月25日

相关推荐