如何成为嵌入式软件工程师_成为软件工程师之前我想知道的14件事

如何成为嵌入式软件工程师

与Facebook软件工程师进行的学生问答

该问答适用于高中或大专学生 ,但是对软件工程或计算机科学感兴趣的人也可能会发现这很有用。

目录

  1. 你现在的职位是什么?
  2. 告诉我们一些关于您的专上课程的信息。
  3. 您喜欢您的工作吗?
  4. 您能否分享有关如何为软件工程职业做好最好准备的想法?
  5. 您的高中和/或大专学历如何为您准备软件工程?
  6. 您是否建议您准备任何高中和/或大专课程?
  7. 在软件工程领域最成功的个人有哪些属性?
  8. 您认为到达目的地的秘密是什么?
  9. 在COVID-19期间担任软件工程师的感觉如何
  10. 您做出的最佳职业决定是什么?
  11. 您如何做出决定?
  12. 您认为您的最大优势是什么?
  13. 您认为您最大的弱点是什么?
  14. 你读什么?

你现在的职位是什么?

我是Facebook软件工程师,已经在这里工作了两年。 我致力于WhatsApp的邮件基础结构。 我重点关注的领域示例包括消息存储和传递,支持新产品功能和配置管理。

告诉我们一些关于您的专上课程的信息。

2012年,由于我渴望制造能帮助人们的机器人,我参加了滑铁卢大学为期5年的机电一体化工程合作计划。 经过几次软件工程实习后,我发现我真的很喜欢软件工程师的工作和生活方式。 我还意识到,除了构建机器人之外,我还可以构建软件来帮助人们。 这促使我在第二年后转向软件工程 。 转换程序使我回到了一年,但同时也给了我两次额外的实习机会。 这使我总共在Yelp,Snapchat,Uber和Facebook等公司进行了8个实习 。 我的实习职位分布在加拿大和美国,软件工程和数据科学以及大小型公司之间。 我最终于2018年毕业,此后不久加入了Facebook。

您喜欢您的工作吗?

我喜欢开发影响数百万甚至数十亿人的产品和功能 。 就像告诉您的朋友和家人您在他们的应用程序中构建了此功能一样。 我喜欢软件工程师承担的各种职责,例如编码,系统设计以及与他人的协作。 最重要的是,我喜欢解决难题。 我去 每天以有趣和创造性的方式锻炼我的大脑。 人民也很棒。 他们通常是非常有野心和鼓舞人心的人。 工作是我每天兴奋起来的原因之一。

您能否分享有关如何为软件工程职业做好最好准备的想法?

首先,您应该研究并了解什么 工作 需要什么才能 成功 。 您应该确保这符合您的志向和个性。 例如,一个误解是软件工程师整天编写代码,但我们也领导设计讨论,与利益相关者进行沟通并与同行进行协作。 做一些研究,问问自己,您是否喜欢日常工作和整体工作。

接下来,您应该开始学习如何编写代码 ; 学习编码基础知识,例如如何使用变量,循环,函数和类。 您可以在学校或在线学习如何在计算机科学(CS)课程中进行编码。 您应该开始构建软件,因为它是应用所学知识的最佳方法之一。 您可以从构建诸如Tic-Tac-Toe之类的简单内容开始。 与他人合作更好。 您可以与朋友一起工作,参加黑客马拉松甚至为开源软件做贡献。 最终,您甚至可以开始涉猎并发,操作系统和分布式系统等更高级的主题。

之后,您应该尝试获得真实的工作经验 。 这是技术上成长并获得工作所需的所有软技能的最佳方法之一。 我建议您尽早获得实习机会。 如果是在高中,那就更好了。 不必在大公司里。 它可以在任何地方,例如您的高中或家人朋友的公司。 我还建议您学习基本的算法和数据结构,因为它们对于实习和全职职位的技术面试至关重要。 对于实习,我认为找到具有杰出工程师的组织很重要,他们可以通过指导和为您创造增长机会来帮助您发展。

您的高中和/或大专学历如何为您准备软件工程?

最重要的收获之一是您从演讲,项目和实验室中学到的基本编程基础和概念。 学校为您的职业生涯提供了基础,使您能够:探索更多高级主题,集思广益创新解决方案,并促进深入讨论。 此外,您可能会忘记在学校学习的大部分内容; 无论如何,大多数都对您的日常工作没有用。 当您开始工作时,将仅使用和培养一些基本概念。 即使您忘记了这些概念,也可以更轻松地重新学习它们,因为您之前已经学过它们。

我相信我的学校经历有助于培养我的创新思维 ,这对软件工程至关重要。 创造性思维很重要,因为当您设计具有很多要求的问题的解决方案时,它需要集思广益,满足所有约束,同时又易于理解并且对系统有效,这是工程学的一门艺术。 解决相同问题的方法有很多。 每个都有自己的权衡。 在学校可以通过以下方式来发挥创造力:探索开放式项目,与朋友一起进行副项目以及参加黑客马拉松。 此外,通过研究多个不同的主题,您可以通过跨学科的思维来创建独特的解决方案。 即使软件工程之外 ,对各种主题的深入了解也可以有效地发挥创造性思维。

如果您在上大学时没有适应您的时间管理技能 ,您会很快意识到您将没有足够的时间去做您想做的所有事情。 优先级排序是时间管理的重要方面。 您应该弄清楚哪些任务是紧迫的,并把时间和精力集中在那些任务上,例如学习那些困难的核心课程,或者花更少的时间与不相识的人在一起。 您还可以使用任务管理器(如Asana)和日历应用程序(如Google日历)来帮助管理任务,计划日程并追究责任。 时间管理在软件工程中很重要,因为您可以安排很多工作,尤其是当您变得更高级时。 您通常同时处理多个项目; 最重要的是,您还可以指导新移民或与同事进行咨询和合作。

您是否建议您准备任何高中和/或大专课程?

我建议在高中开设的每个年级参加计算机科学(CS)课程 。 CS课程侧重于对编程很重要的基础知识。 我还将关注数学 ,尤其是离散数学 ,因为它涉及许多转移到CS的概念,例如数论和图论。 通常, 数学和科学会教您如何逻辑思考,理解抽象概念和解决问题。 当我说解决问题时,我指的是阅读问题,理解问题,分解问题,决定要执行的计算,执行计算并最终传达结果的能力,这种逻辑方法是您经常要做的事情在软件工程中。

在软件工程领域最成功的个人有哪些属性?

根据我的经验,“成功”的软件工程师通常是:有远见的,注重细节的,勤奋的,经常学习的。 当我在学校的时候,我认为这些素质没有现在那么重要

  1. 有远见的人 -他们能够理解全局并看到超出认为可能的范围。 他们提出了具有长远影响的大胆而雄心勃勃的想法。 他们能够出售自己的想法,清晰地传达想法并吸引人们。 有远见的人可以激发新的想法,从而增加您和您的组织的影响力。
  2. 注重细节 -他们精确,细致,尤其是在工作和交流方面。 他们的工作质量很高,几乎没有问题。 他们经常指出大多数人错过的问题。 他们知道如何提出可以浮出水面的问题。 认真做事很重要,因为在软件开发中犯错误对于修复客户和公司而言可能是昂贵的。
  3. 努力工作 -他们有毅力,不轻易放弃。 工作充满挑战,他们容易挣扎和不舒服。 他们甚至可能偶尔会失败,但这通常是公司所接受而不是回避。 对于工程师和公司而言,软件工程是一个竞争激烈的领域,拥有毅力是该领域的重要资产。
  4. 始终学习 -软件工程的职业是动态的并且总是在变化。 他们愿意学习和探索可能在以后有用的新领域。 随着他们获得更多经验,他们必须掌握不同的技能。 一开始,他们可能会专注于编写简洁的代码。 但是稍后,他们可能会专注于系统设计和领导项目。 在整个职业生涯中,他们可能会加入不同的团队。 这意味着他们可能必须学习不同的工程范式,过程和技术。

您认为到达目的地的秘密是什么?

我拥有的最重要的“秘密”是我有一个明确的目标,要过上幸福的生活 。 对我而言,幸福意味着几件事情:帮助他人实现幸福感; 与我爱和珍惜的人有美好的回忆; 无论是抚养好孩子还是开发有用的软件产品,对这个世界都将产生长期的积极影响。 我试图以最终为我和他人带来幸福的方式做出决定。 我试图最大化积极的,持久的经验,记忆和人际关系 。 工作也是您生活中重要的一部分,应该有助于您的幸福。 如果这不能使你开心,那就找出原因; 也许是时候更换团队,公司或职业了; 也许您需要休息一下以解决问题。 追求幸福就像跑马拉松,而不是短跑。 权衡短期幸福感以后再获得更大的幸福感可能会更好。 这是我经常做的事情,这被称为延迟满足 。 它被证明与生活中更大的幸福相关

在COVID-19期间担任软件工程师的感觉如何?

对于大多数软件工程师不受影响的行业,我感到很幸运。 COVID-19在一定程度上加强了技术行业。 例如,人们使用送餐,视频流和视频通话应用程序的次数大大超过了以前。 作为软件工程师进行远程工作非常简单 ,您的大部分工作可以单独完成,唯一需要的物理工具就是计算机。

合作和进行讨论比以往更具挑战性。 但是,像其他行业一样,我们已经适应使用视频会议软件(例如Zoom)和基于文本的异步通信工具(例如电子邮件)。 这与面对面的处理并不相同,但是却可以做到。 幸运的是,有许多公司致力于改善远程工作。

远程工作是以前存在的一种选择,但是COVID-19加快了向通用远程工作的过渡。 我认为远程工作对软件工程师来说是一件好事,因为它使我们能够获得严格基于位置的机会,例如从您的家乡加拿大的一家美国公司工作。 远程工作使我们可以更灵活地与亲朋好友紧密合作,或者居住在文化和环境更为优越的城市。

您做出的最佳职业决定是什么?

我最好的职业决定是加入Facebook进行实习 ,并最终以专职软件工程师的身份加入Facebook。 我在Facebook上感到很高兴,因为我认为公司,文化,人员和收益都是不可思议的。 Facebook为您提供了很多资源和机会来帮助您发展职业,例如能够指导实习生或从事高风险,高回报的项目。 它们具有使生活变得更简单的巨大好处,例如现场健身房,一日三餐以及公司上下班的班车。 这种文化是开放,透明和以影响为导向的。 我在WhatsApp上工作,有超过20亿人在使用它。 在这样的规模下,这项工作极具挑战性,趣味性和高影响力。 请记住,Facebook并非适合所有人。 您的经验可能会因团队而异。

您如何做出决定?

如果有时间,我通常会权衡利弊 ,从他人那里获得输入和反馈,并考虑机会成本 。 我的决策过程是 通常是逻辑理性的,带有直觉 。 我很自发,通常在必须Swift做出决定时会做出错误的决定。 我试图以给我充足的时间和空间来做出决定的方式来定位自己。

您认为您的最大优势是什么?

我认为我擅长设定目标 ,理解和合理化我的动机以及执行这些目标。 在计划和执行短期和中期目标时,我会牢记长期目标。 我提醒自己要保持灵活性,因为目标可以改变,例如计划无法按预期进行或优先事项改变。 在软件工程中,创建,交流和执行目标很重要; 特别是对您的团队(例如制定和执行团队的路线图)以及您自己(例如交付项目和管理职业)。

我的另一项长处是我是一个开放的人 -从每个方面来说都是开放的。 我喜欢尝试新事物,例如新体验,食物和活动。 我愿意听到新的甚至是有争议的想法; 尤其是来自那些具有不同成长背景和/或政治观点的人。 我乐于接受反馈,因为这是一种改善并改善周围每个人生活的好方法。 我不会说谎:我是诚实,直率和透明的。 我的开放与团队建立了信任和友爱,这有助于我在职业生涯中成长和发展。 开放让我可以尝试新的体验并看到一个超出我以前想象的世界,这对我的个人生活有所帮助。

您认为您最大的弱点是什么?

特别想做一些事情 ; 其他人可能会认为这很琐碎或挑剔。 有时,我太直言不讳,也很有见地,这会造成紧张或尴尬的境地。 我已经意识到每个人都有独特的工作和沟通风格。 我必须接受,对我来说最有效和最有生产力的东西可能与其他人不一样。

并不总是很同情 。 这有时会与他人产生摩擦。 即使当我尝试移情时,其他人的独特特征和文化养育也会使这变得困难。 我试图通过对我的思想和想法更加开放,耐心和礼貌来减少与他人的摩擦。

我曾经在大学里跟随一群人的心态 ,尤其是在从事实习方面。 我之所以从事某些实习,是因为我认为他们被认为是“有名望的”或受到许多人的追捧。 我没有仔细考虑为什么要从事这些实习,所以我浪费了很多时间和精力。 我追求别人的梦想,而不是我自己的梦想。 如今,我通过与家人和朋友进行更周到的个人思考和咨询来弄清自己的愿望和激情,从而变得更好。

你读什么?

在高中时,我只读书读书。 在大学期间,我曾经阅读过许多有关工程,职业发展和最新技术趋势的文章。 但是,由于我已经变得更加稳固和对自己的职业感到满意,所以我开始阅读更广泛的主题,以期更好地理解一切工作原理 。 从政治到个人理财,从心理学到天文学。 在书籍方面,我同时阅读小说和非小说书籍。 我还偶尔阅读QuoraMedium,并阅读每日新闻,例如Morning BrewNew York Times

如果您觉得这有用或有任何想法,请在下面的评论中听听他们的意见。 谢谢阅读!

翻译自: https://hackernoon.com/14-things-i-wish-i-knew-before-becoming-a-software-engineer-r55o3z9y

如何成为嵌入式软件工程师

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值