如果一年前你问我软件工程师是做什么的,我会说“通过代码解决问题”之类的话。这是一个简单的答案,指出了我们的工作是如何评估的。对于产品驱动团队的工程师来说,这些爱游戏全站下载问题可能包括如何实现这是客户一直要求的新功能,或者如何提高现有功能的性能。

如果你今天问我同样的问题,我会给出稍微不同的回答。软件工程师的任务是通过代码解决正确的问题——当有效地解决了问题,他们就实现了业务目标。作为开发人员,弄清楚要解决哪些问题以及如何解决这些问题是最重要的部分,而实际的实现细节是次要的。

我的软件工程之路

在上了一门课程后,我开始对编程感兴趣Upperline代码大一前的那个夏天。我通过一个大学和职业准备项目得到了这个机会,我参加了这个项目机会网络

《Upperline Code》是我第一次接触编程,在那里我很快意识到我对学习编程很感兴趣。那年夏天晚些时候,我收到了圣母大学的录取通知书,从艺术与文学学院转到了工程学院,这样我就可以主修计算机科学(CS)。

我最喜欢的计算机科学课程有算法设计/分析、云计算和编程挑战。问题很有趣,教授们很擅长提出新想法和解释概念。

在整个大学期间,我知道我想成为一名软件工程师,并使用我所学到的技术技能。值得庆幸的是,在大四前的那个夏天,我有机会作为软件工程师实习Kantata并与其他工程师结对编程,以帮助交付功能。

我的实习经历,以及教授们的鼓励,给了我信心,在我刚开始找工作时,我不满足于任何其他角色。在花了大量的办公时间后,我于2021年毕业,获得了计算机科学学位,并接受了一份工作,成为了一名副软件工程师爱游戏app体育官方

Julius Boateng和一群来自Sprout Social的同事爱游戏app体育官方爱游戏体育官网首页

入驻Sprout Socia爱游戏体育官网首页爱游戏app体育官方l

作为新角色和新公司的一部分,必须同时培养一般的软件工程技能和特定于spring的领域知识。爱游戏体育官网首页我发现那些需要一般编程知识才能理解的任务对我来说是最容易解决的。然而,需要了解Sprout架构的任务需要我花时间来完成,我不得不依靠我的团队的帮助。爱游戏体育官网首页虽然通过在线阅读文档可以解决一些问题,但您不能总能找到与您正在做的工作相关的信息——能够向他人寻求指导是至关重要的。

当我加入Sprout时,最先让我印象深刻的是开发过程中的协作性。爱游戏体育官网首页我知道开发功能需要整个团队,但我不知道实际情况如何。我很快意识到,发布一个成功的特性需要许多不同角色的人一起工作——从定义项目需求的产品经理,到创建模型的设计师,再到实现特性的工程师。爱游戏全站下载合作不是可有可无的,而是实现团队目标的必要条件。

在芝加哥市中心,朱利叶斯·乔诺和斯普劳特的同事在考尔德的爱游戏体育官网首页火烈鸟雕像外的照片

学习如何在各种代码库中导航,以及构建不同服务之间如何交互的心理模型是一个陡峭的学习曲线。因为Spro爱游戏体育官网首页ut的核心业务是软件,所以它的架构很大程度上取决于它的业务需求。随着工作的深入,我必须了解开发人员试图解决的业务问题,以及为什么要做出先前的架构决策。

最初,我有点害怕拉请求在合并到代码库之前需要审查。理解代码审查的主要目的是知识共享和维护代码标准有助于改变我的观点。

通过代码审查帮助我提高了技术技能,并提高了我的pull请求的质量。有同事给我建议要更改什么,向我介绍新的模式,并向我指出代码库的相关区域,这真的很有帮助。阅读其他工程师的拉请求也让我对我没有直接参与的其他服务有了宝贵的了解。

你以前的经历很重要

有一种流行的观点认为,当你进入人生的新阶段时,你以前的经历不再重要。一旦你进入大学,你的高中经历就不再重要。一旦你进入职场,你的大学经历就不再重要。

但我们经常忽略的一点是,我们的经验、知识和习惯会产生复合效应。我们通常只有通过之前的工作才能取得新的成就。我之前获得的知识和技能极大地影响了我作为一名入门级软件工程师应对新挑战的方式。

本科期间对我在Sprout的日常工作产生最直接影响的课程是编程挑战和数据库概念。爱游戏体育官网首页前者教会我如何把大问题分解成小问题,从而更有效地解决问题。它帮助我更加注意如何构建我的代码,并提高了我的代码的可读性。

数据库概念教了我基本的关系数据库概念,涵盖了数据库模式设计和SQL等主题。我学会了如何编写查询,这非常有用,因为我经常需要查询我们的数据库来解决问题或回答问题。

TurtleBot机器人工具包的动画动图。

我在课堂之外获得的机会也同样宝贵。我的大部分课程都没有涉及Java语言,但是我有机会在我的一位教授领导的一个商业项目中使用Java。我获得了编写Java、使用MySQL数据库和创建Docker映像的实践经验。学习Java尤其有帮助,因为大多数Sprout的服务都是用Java编写的。爱游戏体育官网首页

我在大学期间获得了很多其他的技能,我认为这是理所当然的,比如浏览命令行和理解核心编程概念。这是一种常见的误解,因为大多数本科课程涉及的主题本质上是理论性的,它们不会为您的软件工程职业生涯做好准备。然而,我认为事实正好相反——你在大学里学到的技能很重要,即使它们不能直接应用到你的日常工作中。

计算机科学是一个非常广泛的领域

计算机科学涵盖了各种专业,如人工智能、机器学习和数据科学。你在本科阶段获得的经验作为基础知识,可以很好地帮助你从事各种入门级的工作,而不仅仅是软件工程。从本科到全职工作的飞跃为你提供了一个探索什么样的角色和专业最适合你的机会。

如果你想的话开始软件工程的职业生涯你可爱游戏体育官网首页以从斯普劳特开始。