软件工程专业学生职业规划_如何教软件工程专业的学生有关企业的知识

软件工程专业学生职业规划

在这篇观点文章中,您将找到一套将企业技术纳入软件工程课程的建议。 这本书克服了学生面临的困难,并提出了过去成功使用的简化方法。 企业技术的不断进步导致简化了教育的融合过程。

在未来几年中,可以预期,行业内对了解企业开发流程和生产系统中使用的技术的专家的需求将会增加。 学术机构在这里为行业的专家和领导者做准备,因此他们应该知道所使用的技术。

自从我教我的第一门软件工程课程以来已经有十年了。 从那时起,我每年都教授这门课程。 许多软件工程课程都从抽象的角度强调分析和设计,涉及UML模型和符号,并让学生自行开发软件项目。

但是,在我的课程中,我选择了一条扎根于理论和实践的艰难道路。 此路径包括有关企业Java技术的讲座和实验室。 当我们确定需要实际的软件工程技能的地方时,我们可以指出大型而复杂的系统。 在不参与此类系统开发的情况下,您如何成为软件工程师?

对于大型系统,标准开发技术已不再足够,因为它们的结构太底层,无法解决企业开发中的典型问题和情况。 此外,当我们可以包含为特定目的而构建的组件时,为什么有人会从对象构建大型系统? 通过对象,我们试图重塑现有企业实践的方向。

坦率地说,虽然有很多专业人士,但是将企业技术包括在您的课程中,会使相当简单的软件工程课程变成相当困难的课程,尤其是对于前几次迭代而言。

陌生地区

只要我们了解企业技术和标准,并且自己开发了一个更大的系统,我们就可以将企业技术纳入讲座。 如果我们以前没有开发大型系统,那么我们仍然可以尝试包含该技术,但是我们必须准备好预先运行多个示例和演示,尤其是将它们组合在一起。

但是,我们从哪里开始呢? 我记得曾经发布过早期版本的企业Java并附带了关于酒店预订的初始演示,这对于学习该技术非常理想,至少是从最初的检查中来说是很理想的。 当学生被卡住时,困难很快就清楚了。 本文档中可用的教程不是为新手和初学者编写的。 它们是为以前使用过类似技术的用户而设计的。

不只是Java

新手遇到的第一个问题与运行企业Java本身有关。 企业Java不再只需要Java虚拟机即可运行。 现在,它需要一个与该技术兼容的容器和一个Web服务器,才能使用其许多组件。

软件工程专业的学生必须突然扮演系统管理员的角色,才能在需要进一步配置的计算机上安装复杂的环境。 对于许多以前从未打开过终端机的学生来说,仅准备所需的环境就变得很繁琐。

操作系统并不总是使新手容易使用,因为并非所有终端都像其他终端那样友好。 在理想情况下,学生需要将其操作系统重新安装到Linux,但这将软件工程课程带入了一个完全不同的层次。 那些设法安装和配置服务器的人会突然被告知服务器在特定端口上运行。 也许来自学生的最令人叹为观止的问题是,什么是港口?

在这种情况下,由于我们必须通过网络连接到企业系统,因此部署第一个示例的意图又绕了一步,以解释网络。 当我们最终过渡到操作系统和网络时,学生的动力几乎消失了,突然我们面临另一个挑战:在哪里存储数据?

企业系统都是关于大数据的,没有数据库就无法想象它们。 但是,它假设学生不仅知道数据库,而且知道如何配置数据库以接受新的连接。 我们最初向学生进行快速演示的初衷几乎失败了,因为我们的软件工程工作花了许多弯路才能进入我们的第一个演示。

当我们最终获得正在运行的演示时,学生们想要更新演示并重新运行它。 他们很快意识到所做的更改不会传播到正在运行的演示中,因此他们需要盲目地开发代码,然后重新部署它。 在某些情况下,在学校工作站上,此过程可能需要一分钟。

那时,学生已经失去了大部分动力和最初的动力。 所有这些努力只是为了运行初始演示,而不是学习技术本身。

在大多数情况下,必须进一步向学生提供有关版本控制和Maven的建议 ,但是我们仍然没有学到开发此类系统所需的各种组件的知识。 使学生接触企业技术的最初好主意因此变成了向他们教授所有必需的支持材料。

对于演示基于组件的开发的软件工程课程来说,这实在是太多的工作。 当学生们花费数小时进行配置和设置时,这种意图的实际结果就出现了,这使学期没有多少空间。

解决问题

通过最近的技术示例项目(例如厨房水槽) ,我们可以在单个演示中找到应用的每项重要技术,这很棒。 从那里开始,很直接地涵盖了对象关系映射和持久性主题,以及用于处理业务逻辑以及上下文和依赖项注入的会话Bean,它们非常好地对应于通常讲授的组件和UML组件图。软件工程课程。

尽管Java仍在促进服务器端用户界面的开发,但在许多情况下,学生会拒绝选择,而是选择使用ReactAngular框架,这会增加对XML绑定和JSON转换的需求。

多年来,在我的课程中推广企业技术时,我尝试了许多支持工具,以减少学习和介绍入门资料并部署第一个演示所需的最初工作。 这是我发现的。

回到基础

首先,我必须强调指出,不可能向未成熟的学生教授企业技术。 教给这些学生多态性,面向对象的程序设计,集合,lambda和设计模式,以使他们理解基本设计,这一点更为重要。

为什么? 因为否则,我们的学生就无法成为我们希望他们成为的人。 在企业Java中,出色的解决方案是基于组件的,但是在后台,它们充满了多态性,模式和集合,对它们的完全了解将在以后的实际系统设计中产生重大问题。 因此,最好是在学生缺乏基础知识时将企业Java排除在外,而专注于核心技能,并且如果课程允许,可以将主题推迟到以后的课程。

入门课程

在我以前所在的大学中,其中一项新的本科课程以结构完善的先前课程完善了课程设置。 在开始课程之前,参加软件工程的学生已经涵盖了所有先决条件,例如网络,操作系统,数据库和面向对象的编程。 但是,上述课程旨在为满足行业需求的学士学位做准备,因此理论课程的工作没有得到强调。

多媒体

逐步演示的视频教程详细介绍了每个阶段的运行,调试和重新部署方式,从而可以大大减少初始演示设置的时间。 这似乎很棒,但通常学生都希望在自己的个人计算机上安装该演示,并且很难为所有可以在多种操作系统上找到的条件准备完美的教程。 学生发现视频非常有帮助,因为他们可以在选择时执行学习过程。 跳过最初演示中遇到的所有错误,有助于学生保持动力和动力。

虚拟机

另一个重大改进是准备了虚拟的操作系统映像,并为学生提供了设置演示和环境。 在最简单的情况下,学生只需要启动其集成开发环境(IDE)并单击一个按钮即可查看演示的运行情况。 后来,他们可以在自己的环境中安装该演示,但前提是必须拥有一个运行示例并具有实际操作经验。

正确的技术

我上学期的课程略有不同,但我遇到了重大的进步,也许是可以永久改变企业发展的东西。 企业微服务体系结构最近作为对基于云的需求的答案。

Eclipse MicroProfile也许是教授企业开发的正确要素。 它允许开发人员仅包括特定应用程序所需的技术。 这个想法是从仅包含所需库的JAR文件中运行企业应用程序。 这种做法允许从容器外部运行应用程序。 可以将其视为一种可配置的微型容器,其中包括JAR的最低设置并可以作为服务器运行。 这正是我们简化课程所需要的。

我们不再需要解释企业容器提供的所有技术,而可以将注意力集中在更小的集合上。 这可以使我们Swift达到我们要在学术界提出的观点。 我们可以专注于教授学生的组成部分,而无需掌握容器知识和进行复杂的重新部署。

尽管每个人都喜欢标准,但似乎Spring框架(企业Java的强大竞争者)早于将容器之外的应用程序运行在容器之外的想法就已经十年了。 因此,要在学术环境中达到目的,这可能是正确的方法(另一方面,这样的选择会牺牲主要行业参与者同意的标准化技术)。

下一步

下一个课程我们应该做什么? 首先,要知道您的听众是谁,以及他们是否足够成熟,可以学习企业技术。 一个简单的评估测试可以揭示更多。 对于上课人数众多的人,您应该考虑包括视频教程。 否则,实验室可能会变成配置不足的调试会话。 通过将视频教程用作家庭作业,您可以更有效地利用讲座和实验室的时间,并涵盖其他重要主题。

如果您期望操作系统出现问题,请考虑制作虚拟机映像,或为特定片段(例如数据库等)准备Docker映像。最重要的是,由于技术的发展和发展,例如JRebel (用于热部署更改),请继续进行创新。 )不再可用的学术许可证。

幸运的是,企业技术的最新发展带来了简化,而下一代的学习技术将变得更加容易。 最后,我们将能够专注于预期的主题,使学生朝着预期的方向发展。 但是,过早开始使用企业技术会适得其反,并且没有任何进步可以改变这一点。

翻译自: https://opensource.com/article/19/7/enterprise-technology

软件工程专业学生职业规划

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值