JetBrains

给学生的建议:如何开始您的编程职业生涯

Sebastian Aigner 是 JetBrains 专注于教育的开发技术推广工程师,他谈论与学生的合作以及他从大学到 JetBrains 的道路,他为那些准备挫折的人们提供了灵感。

为了帮助您学习和提高编程技能,JetBrains:

在 JetBrains 当专注于教育的开发技术推广工程师意味着什么?

我是开发技术推广工程师团队的一部分,我的重点是与大学、学校和其他教学计划合作。我试图通过向教育工作者阐述我们工具和我们的编程语言 Kotlin 的积极特性和好处,将 JetBrains 带入课堂。我们还赞助和组织大学里的黑客松,学生可以挑战自己创造创新的解决方案,并亲自体验感受使用 Kotlin 和我们工具的好处。我所有的活动都致力于使人们更好地完成自己喜欢做的事情。我总是从核心问题开始 – 我们如何才能使人们更容易学习编程,以及如何使使用我们的工具和 Kotlin 变得更加有趣?

您最喜欢工作中的什么?

在会议、黑客松和招聘会的展位上工作。当我们与用户交流时,我们真的可以发现我们的工作正在产生积极影响。这给了我一个温暖幸福的感觉,当人们跟我们说:“喂!您的工具帮我们解决了问题”,或 “嘿,这真的很容易上手”,或 “嘿,您基本上拯救了我作为开发人员的职业”,或 “嘿,没有您,我无法准时完成我的功课。”

有没有发生过相反的事情,当一个人带着新想法来找你,后来又在工作中实施时?

我日常工作的主要任务之一是解决我们收到有关 Kotlin JS 的主要反馈之一 – 由于缺乏教程和文档,很难入门。在诸如学生黑客松的 hackaTUM 之类的大学活动中,我们曾经有过学生来找我们说:“我参加此活动是因为我以为 JetBrains 会给我带来挑战。” 第二年,我们带来了更大的挑战,结果收到的学生提交数量超出了我们的期望。我们不仅提供研讨会和介绍我们的工具。现在,我们挑战人们创造创新的解决方案,以改善他们作为学生和开发人员的生活。

JetBrains 工具如何对学生有用?

作为曾经是学生的人(笑),我个人认为它们是入门的最佳工具。当您是学习者时,获得有关您所做工作的反馈非常重要。这可以来自您的教授或同学,但是如果它也来自您的 IDE,那么它将为您的学习增加一个全新的维度。当您做错了什么或可以做得更好时,智能开发环境会高亮显示。这实际上为您提供了改进的机会,并说:“嘿,也许您不需要在这里使用三个嵌套循环。

也许我们可以以某种更易读的方式将其结合起来”。这是智能 IDE 真正帮助您学习的方式,因为它开始改变您对复杂主题的思考方式以及改进方法。当您编写错误的代码时,或者说不是最佳代码时,IDE 可以帮忙向正确的方向推动。而且,在某些情况下,有时会发现自己直接编写了更好的代码。借助我们的 Educational Products,我们正在与 Coursera 和 JetBrains Academy 等平台集成,以帮助学习者顺利入门。使用我们的工具,学习者可以直接从编程课程中访问练习并进行练习,而不必承担复制和下载文件的麻烦。

您对想在 JetBrains 工作的学生有什么建议吗?

热衷于您想做的事情。带来自我激励,这是在 JetBrains 工作时需要具备的重点之一。勇于创新,勇于挑战和改变事物。您需要能够接受您并不了解所有内容。您需要愿意质疑自己所知道的知识,并且要经常保持自己的思维方式,以保持个人的学习和成长。我认为这涵盖了我们在 JetBrains 的全部宗旨:制造最高品质的创新产品。

如何将工作与学习结合起来而不至于疲惫不堪?

众所周知,将学习作为全职工作非常困难,这意味着您每周要花 40 个小时,甚至 50 个小时,而兼职工作也要 15 到 20 个小时。一天只有这么多时间,有时您会耗尽。可悲的是,这个问题没有灵丹妙药可解决。我最好的建议是始终组织您的工作并专注于单个任务,而不要不断切换作业。

申请 JetBrains 实习的学生犯的典型错误是什么?

我们的申请人通常会很好地通过简历来彰显自己的优势。但是,其中有些人似乎很难将自己的能力与所申请的职位联系起来。虽然好成绩和经验是重要第一步,但不应忘记他们所掌握的技能也是所申请职位的重要一环。这就是写求职信的主要作用,并且可以使我们更容易地将申请人与 JetBrains 所提供的巨大机会相匹配。

您能给被录取的实习生什么建议?

专注于您所做的工作。您的主要目标应该是倾听您的团队领导、尽可能多地学习、接受您被比您了解更多的人所包围、尝试吸收尽可能多的知识,并将其全部投入到您正在从事的项目中。从我亲自经验中,这将使您走上一条获得最大成功的道路。当然,也要尝试与您的工作人员建立有意义的联系。

您是如何意识到自己想成为一名程序员的?

我从 11 岁那年开始。我想我受到像《战争游戏》这样的电影的影响,这些电影都有了好莱坞对黑客和对计算机非常了解的人的描述。我父亲向我介绍了一种 Basic 的方言,称为 Free-Basic。他不是程序员,但是他总是对我所做的一切都超级支持。在某个时候,我通过一个好朋友接触了 PHP 开发,然后是 Java ,后来是 Swift。当我发现 Kotlin 时,我几乎立即就爱上了它的语法和方法,因此我将大量精力投入其中。在看到这门语言是由 JetBrains 制作的之后,我才知道这是我会长久编写的编程语言。

您使用的 JetBrains 的第一个工具是什么?

是我在慕尼黑工业大学的第一学期开始用的 IntelliJ IDEA。我安装了它(启用了深色主题),然后在预先编写的代码中看到了所有警告。我那时几乎立即坠入爱河。

您如何学习新东西?

这是反复试验和完全沉浸的结合。反复试验意味着尝试使用新技术来构建新事物,将其丢弃并重写,分析我是否将自己编程到了一个无法摆脱的角落,重新审视体系结构和设计决策,直到我满意为止。完全沉浸意味着我尝试使用许多不同的渠道来收集有关技术的知识。我上床睡觉之前可能会寻找播客、查找在线课程或观看会议演讲。我可能不会立即从每种媒体中掌握所有内容,但是我会对这种技术有所了解。

一个想要成为程序员的人应该有哪些性格特征?

对挫折感的容忍度一定要很高。那是最重要的一件事。数学上倾斜或具有强烈的逻辑意识是很好的,但与普遍的看法相反,机器并不总是按照您所说的去做,至少对于最终用户而言,通常看起来他们并没有像您说的那样做。尝试不同的东西。不要害怕。您不能指望事情会在第一次尝试中顺利进行。您需要能够将多个小时花在一个问题上,或者弄清楚为什么某事不起作用。在我看来,这可能是成为程序员最重要的部分。

原文发表于 2020 年 2 月 11 日,作者Nadya Davydova

Discover more