开发工业软件需要什么人员_当我开始成为软件开发人员时,我希望知道什么

开发工业软件需要什么人员

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

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

继续学习

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

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

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

寻找导师

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

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

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

问问题

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

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

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

尽早获得良好的实践

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

利用现有的库和框架

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

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

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

但是仍然了解基本原理

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

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

假设错误是你的

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

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

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

测试,测试,测试

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

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

清洁代码原则

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

编程是一种社会活动

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

配对编程

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

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

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

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

不要“聪明”

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

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

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

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

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

开发工业软件需要什么人员

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值