圣彼得堡HSE的软件工程硕士学位教授的内容

许多人不了解他们可以在软件工程硕士学位中教什么,他们相信在本科之后,您需要去上班并在那里学习所有内容。这是一个困难的问题,在本文中我们将不予回答,但是我们将告诉您在我们的学院里学到了哪些具有较强学士学位的毕业生?



我叫Olya Kunyavskaya,我在圣彼得堡高等经济学院软件工程专业的数据编程和分析硕士学位课程的第一年。在上一个系列中,我已经谈到了我通往HSE的道路以及来到这里的动力。

我们的学习情况如何


在概念上讲了什么


我们的硕士课程仅接受具有IT本科以上学历的毕业生,因此,我们相信我们已经获得了本科学习中数学,算法和程序设计方面的所有必要基础知识。软件工程专业的目标是使学生对开发中不同的基本方向有所了解。因此,针对我们的课程是从不同的知识领域中选择的,一种或另一种与发展有关的方法。

影响您学习的能力


我们的计划是新的,可以影响课程的内容。现在,学科的设置每年都在变化,我们的课程与一年前的同事的课程已经大不相同。

我们可以表达自己的意愿,想要参加的课程(最好是明确指出谁读这门课程以及在哪里读),并且政府将尽力达成一致。我们的意见还影响明年如何以及由谁阅读这些课程。在每个学期末,我们填写调查表,然后由策展人与我们讨论结果,并建议如何最好地改变课程,以及是否值得将其留在下一年。该反馈对于课程的发展很重要,因为许多课程都是首次授课。 

学习功能


在HSE特有的不寻常事物中,研究按模块分类,而不是像其他大学那样按学期分类。一个模块需要两到三个月,一年中我们有四个培训模块。通常,在每个模块中,我们都会涉及三个主题。 

有些科目持续一个学期,有些则是模块。其中一些主题仅对我们和本专业第二年级的学生开放(届时,班级人数为4至6人)。我们在Yandex数据分析学校学习一些科目,部分课程与其他地区的孩子一起学习。 

我们开设了理论课程和合理应用的课程,以及与软技能发展有关的课程。 

我们教了什么


软件工程专业的目标是为我们提供与开发相关的各个领域的经验。我不确定我能否描述全局,所以我只向您介绍今年向我们讲授的课程:每个课程发生了什么以及给我留下了什么样的印象。

数据管理算法


与数据库相关的算法理论课程。该课程为期一个单元,每周三对。我们了解了分布式数据库中的事务处理算法。例如,关于事务执行时间表正确性的标准,并发控制协议,崩溃后的数据库恢复。

每周我们有两次演讲和一次研讨会。在每个研讨会上,三人准备了一份有关先前准备的文章的报告,历时20分钟。我们中只有七个人,因此有必要每两周准备一次报告,这通常就足够了。同时,准备好的报告总是受到积极对待。 

对我来说,这门课程的主要好处与主要材料无关。我提高的关键技能是用英语编写科学报告的能力。 

该课程由Boris Novikov用英语完整阅读。尽管所有学生都是说俄语的,但是讲座都是用英语授课的,应该以英语问问题,并分别以英语准备报告。在我的一生中,我似乎一直不太懂英语,因此我应该隐瞒和保持沉默,但是课程的规则之一是“任何人都可以说任意愚蠢的东西和任意文盲”,因此营造了一种非常积极的氛围。

完成这门课程后,我首先相信我可以用英语长时间讲一些平凡的思想而没有问题,其次,我掌握了从科学论文中分离关键信息的技巧。  

计算机图形学


该课程是为一个学期设计的,主要致力于Unity中的渲染。这是由Playneta.gg的技术人员Mikhail Panin 阅读的有很多实际的作业,主要用于编写着色器和生成网格。 

在上这门课程时,我在对物体的视觉感知方面有了意识的扩展。最后的任务是生成云。当我这样做的时候,我意识到,实际上,我从来没有真正看过云,也不知道云如何看。我无法验证我是否能够创造出美丽的天空,因此该任务花费了我很多时间,最终我没有将其传递到最高等级。我正在生成某种云,在我看来,这是正常的云,我将其发送给老师,我立即得到答案:“好吧,这里很暗,这里一定不是黑暗的,但在下面,但是这个地方看起来根本不像云” 。我想我发送了大约20种不同版本的云。


现在我去上班,望着天空,看到云,立即坚持并思考:“嗯……为什么有趣的是,云的上方和下方是黑暗的,相反是光呢?” 然后我知道是黎明,而光源在下面。 


在家庭作业中,有必要实施一个漫反射的模型以及介于两者之间的模型。

在学习完计算机图形学课程之后,我现在经常看云。以及在砖墙和不同镜面反射的物体上。 

网络攻击防护


本课程仅对我们的子方向只读,总共有6名学生。我们学会了提升网络,配置和加载Apache和Nginx,检测漏洞并防御攻击。

该课程是完全实用的,主要包括老师对我们的问题和实验室工作的回答,并为我们提供了详细的操作指导。我在本课程中了解的主要内容是,这根本不是我要处理的领域。每次您坐下来决定实验室时,一开始似乎一切都非常清楚。然后发现了很多陷阱,例如程序版本中的不一致,打开的连接数受到意外限制,或者突然发现某个地方没有足够的配置。此外,参加该课程的每个人在不同的地方都有问题,没有老师的帮助,他们往往无法弄清问题所在。

当事情按原样进行时,这很简单,如果突然出现问题,这将变得非常困难。

有限域代数与编码理论


该课程以非常互动的方式构建。讲座和实践只举行了五个人,并且进行了很多交流。在演讲中,只有当所有在场人员都理解了上一个思想时,才发生向下一个思想的转变。我们宁愿讨论真实的对象,也不讨论思想和抽象的概念,因为根据我的回忆,这是在本科学习的数学课程中发生的。在讲座中,我们首先被提供了一些新物体的例子,我们对其进行了研究,将其扭曲在手中,了解了如何使用它们,并找到了一些样式。而且只有在我们受到新对象的启发后,老师才开始制定和证明定理。 

由于我们中有五个人,因此在练习中,每个人都设法在董事会解决问题。这些任务非常实用:例如,构造有限域,确定逆元素,加密和解密内容。因此,知识更加活跃。

任务的一个示例:存在一个足够大的有限域,您需要对此进行大量计算:元素阶数,逆数,环数类以及其他一些东西。从一开始,您就不知道如何计算所有内容,并且以最简单的方式思考。经过几次迭代后,您会发现可以更快地计数一个数量级,并且开始在计算中使用某些属性。您自己了解了此属性或该属性的工作方式以及为什么工作,因此您使用它是因为这个原因,而不是因为其中一个定理说应该这样做。 

在我看来,仅凭直觉就可以与一个或另一个对象配合使用的此类项目确实很少。遗憾的是,该课程仅持续了一个模块。 

游戏开发


Playkot的帮助下,开设了游戏开发入门课程,这是首次进行:对我们以及整个人而言。他由代表游戏行业的几个不同的人教授。


课程分为游戏开发各个方面的部分:动画,物理,人工智能,渲染和优化的高级方面,网络。此外,还举办了有关相关领域(游戏设计,游戏分析,用户交互和艺术)的概述讲座。处理它的人谈到了每个领域。例如,Anton Yakovlev进行了一系列有关Unity的讲座。他在Unity担任物理负责人,代表PointOmega Games团队制作游戏,并提供各种讲座。我们被告知如何在Unity中制作动画,添加对播放器的控制或创建机器人。

当课程中的老师人数超过学生人数时,就是这种情况。我们只有五个人,而作为整个课程的一项任务,我们五个人则通过网络交互,物理和多个机器人来制作一个小型游戏。让我们看看最终会得到什么:) 

C ++


我真的很想听这门课程。在大学,我们有一年一度的C ++课程,但这是在2014年。从那时起,该语言的标准和功能已经改变。我正在用C ++开发,并且在某种程度上了解该语言,但是我的知识正在逐渐过时,我想对其进行更新。 

本课程是C ++课程的第二部分,对我们和计算机科学中心的学生都适用。它持续一个学期,由Valera Lesin和受邀在特定领域精通的讲师朗读。我们被告知在第20个标准中出现的各种酷芯片,即在课程开始前的几个月。例如,关于模块,概念或协程。之后,在实践中,我们解决了每个主题的问题,并且有机会尝试使用该语言的新概念。 

博弈论


本课程是为我们学院的两个硕士学位的一年级学生讲授的:约有30人。有很多老师,他们是圣彼得堡HSE 游戏理论与决策国际实验室的员工该课程同时用俄语和英语授课:一些外国老师不会讲俄语,只会讲英语,有些会讲俄语,但他们会用英语写作。

由于老师一直在变化,所以有些讲座非常酷有趣,有些让我睡着了。而且我断然没有足够的实践。有一个简单的测试和两个作业,结果证明对于该测试,足以通过这三个任务中的两个。因此,我在中间扔了第二个作业,但没有完成。她开始从事非紧急和可选任务。

我认为课程太过苛刻。

IT管​​理


对IT管理的过程持续了一个模块并通过伊利亚·安德烈耶维奇Pshenichny阅读:在代理业务发展总监Playkot。本课程有两个计划的本科生参加:我们的计划和“信息系统与人机交互”计划。   

这些课程主要是讲座,该课程向我们介绍了一些针对IT行业的管理各个方面。例如,什么是发展方法,什么发展阶段,可以在什么阶段使用,如何管理风险,领导者的主要职能是什么,如何激励团队,如何聘用和解雇员工以及在课程的最后提出了一些关于自我发展的建议。

讲座很容易听,很有趣。通常,有关每个管理领域的故事都得到个人经验的积极支持,并给出了哪些方面行之有效的解释。 

本课程的实际任务仅仅是一项。我们得到了申请,并且我们必须制定开发计划和预算。这项工作需要在两周内完成,然后进行检查,然后与每个想听取反馈或解决问题的人一起,老师亲自打电话和交谈。在那之后,又给了一个星期进行纠正。 

讲座分别讨论了如何与团队合作以及如何影响员工的积极性。例如,有人告诉我们,领导者的重要任务之一就是能胜任地向下属提供反馈。 

在这方面,我想讲一个故事,伊利亚·安德烈耶维奇(Ilya Andreyevich)是如何给我有关我的最终任务的反馈的。最初,我获得10分之7的任务(以5分制为4分)。通常,这是一般的,但不是灾难。我怀疑我是否应该纠正:还有其他事情。在电话会议中,伊利亚·安德烈耶维奇(Ilya Andreevich)自然地告诉我工作出了什么问题:员工的薪水不在市场上,税收未计在内,测试应用程序通常在计划的某个地方丢失了。最后,他补充说,他绝对希望我能够纠正此任务。我想知道这种信心来自何处。他回答说:“因为你有义务,勤奋并追求完美。”而且我想满足这些特征,所以毫无疑问我去解决了! 

在我看来,这是一个非常美丽的示例,说明了如何以一种使人对工作进行调整的积极方式给予负面反馈的方式。是的,对于这个任务,我总共有10个人。    

并发理论与实践


我们在Roman Lipovsky教授的Yandex数据分析学院远程学习此课程。本课程专门针对竞争系统。它告诉我们内存模型如何工作,协程,光纤如何工作,以及有关不同同步原语的设备以及与异步系统一起工作的信息。 

该课程是远程的,许多学生参加,因此与老师的个人交流无效。但是实践和功课都经过深思熟虑。 

在Docker容器内的计算机上会自动检查作业。您可以清除从Clion到Docker的更改,然后使用一个简单的命令开始测试。同时,测试做得很好,这对于竞争性编程课程来说是非常困难的。如果我理解正确的话,事实是,我们会使用老师自己的实现方式来代替标准原语,他们可以检查工作的正确性。例如,开关以某种方式流动或进行虚假唤醒。

功课也做得很好。各种难度级别的任务定期出现。而且,通常整个基础设施已经为我们实现了,我们不需要花时间在上面。只需要直接实现任务的本质即可。有一些任务要弄清楚如何在C ++中异步工作,如何实现它们的协程以及实现它们的原语。 

麦格果


除了专业课程外,在治安法官学习期间,我们必须选修一门小课程,其模块大小与我们所选的方向无关。在圣彼得堡HSE中,这样的课程以代号MAGOLEGO隐藏。我们为我们提供了大约20个与不同领域相关的学科的选择:经济学,法律,心理学,管理学等等。相反,如果您首先同意,可以选择我们所选择的在线课程。 

我参加了全日制课程,称为“专业成功心理学”,我对自己的选择感到非常满意。有人告诉我们,工作中可能发生哪些冲突,如何对反馈做出建设性的回应,职业上的功能障碍是什么,以及情感倦怠可以做什么。此外,他们还告诉您如何通过一个人的讲话和写作风格来了解某个人,以及他们在面试中应注意的事项。 

在我看来,我可以针对本课程的有趣思想撰写另一篇文章。该课程由Elena Igorevna Kudryavtseva阅读,听起来非常轻松有趣。一个好的叙事结构,一个固定的声音,明确强调了有趣的地方的语调,并且有很多例子说明了什么意思。 

作为报告任务,我们需要创建自己的投资组合。作品集类似于简历,但是它们之间的区别在于,每个项目/工作地点/成就都有一个单独的带有故事的页面。有人认为,在找工作面试时有这样一位父亲非常方便,因为这样可以更容易地谈论自己,也可以使面试官更容易理解您的工作。 

我喜欢完成课程后仍然有一些作品集形式的工件,这可能对我将来很有用。随着我获得新的经验,我计划对其进行补充。   

摘要


这是我们在圣彼得堡软件工程高级经济学院硕士课程“数据编程和分析”的第一年学习的课程的完整列表。 

现在,圣彼得堡HSE的管辖权完全可以满足我作为开发人员的开发需求。我特别喜欢我们开设的课程只有5至6人参加,在这些课程中,老师给予每个学生很多关注,并准备好应对出现的所有问题。我重视硕士课程的另一个重要功能是,对我而言,其中没有多余的东西。 

*****

4月30日18:00,该学院将在线开放日,介绍硕士课程。来!如果您以后再阅读(我希望在击败冠状病毒的美丽未来的俄罗斯)中,DOD记录可在VK小组中找到

All Articles