我如何在1年内转行成了一名软件工程师
文章图片
作者 | Amanda Bullington
翻译 | Mika
本文为 CDA 数据分析师原创作品,转载需授权
在决定转行前,我是科技公司的一名营销人员。我尝试过很多类型的营销工作,具备活动、公关、搜索引擎优化、内容创作、数字广告、邮件营销,但从未找到最适合自己的。
我的上家公司是个人理财的创业公司,品牌知名度很高。公司的座右铭是“内容为王”。与大多数科技公司不同,这家公司里有大量的编辑和采访人员,只有少数软件工程师。
在我入职一年后,公司决定改变策略。单纯靠内容已经不够了,许多个人理财初创公司在当年都推出了app,为了不被落在后面,我所在的公司开始减少内容方面的业务,同时迅速招聘产品人员、工程师和设计师。
在这一刻我意识到,是时候转行了。在本文中,我将介绍我是如何转行为一名软件工程师的。下面让我们开始吧。
第1步:沉浸式课程
我开始找软件工程方面的沉浸式课程。App Academy和Hack Reactor都提供了一些免费的入门课程,帮助感兴趣的人群入门。Hackbright也有针对女性开展一些编程课程。
最终,我选择了Hack Reactor,它提供了为期一个月的结构化学习计划(SSP)课程。课程设置很实用,我认识的三名学员在完成课程后都获得了软件工程方面的工作。
第2步:沉浸式编程
决定选择Hack Reactor,之后我需要为SSP做准备。为此,我完成了Udacity上JavaScript的入门课程以及其他一些JavaScript在线课程。
针对SSP和Hack Reactor的沉浸式项目,我共花了四个月的时间学习编程,每周学习6天,每天12小时以上。这段时间,我不仅提高了解决问题的能力,还提高了对JavaScript的理解,而且还学习了前端和后端框架。
文章图片
第3步:提高求职技能
在学习在线课程的过程中,我学习了很多概念,其中最主要的是算法和数据结构。
沉浸式课程中涵盖了工程师在工作中所需的技能。针对面试的练习时,掌握算法和数据结构是关键。
在提高面试技能时,我用到了以下资源:
- CodePath :为期8周的课程,涵盖从数据结构到系统设计的所有最常见的面试问题。
- InterviewCake:针对算法思维中最常见模式的指南
- LeetCode :海量练习题
- Grokking the System Design Interview: 解释如何权衡常见的系统设计问题,例如如何设计Instagram
我向许多资深工程师询问了求职建议。以下是一些最有用的建议:
- 迈出第一步:每个工程师都是一步步成长起来的。许多工程师在找到心仪的工作之前,都经过了不断的尝试和努力。如果你没有马上找到合适的工作,也不要泄气。
- 重写简历:如果你是刚入行的工程师,你的简历可能有些稚嫩。关注你所做的内容和技术决策,而不是实现了什么。
- 寻找指导机会:关注拥有30多名工程师的团队,因为这将让你很快提升编程技能,并获得指导机会。
- 进行个人项目:这将展示你在求职过程中对软件工程的热情,让你在面试中脱颖而出。
我找工作的时间是2018年的夏天,当时我收到了很多善意但无益的建议。有些来自招聘人员,工程师同事和一些朋友。以下是其中一些:
- 过去几年,初级工程师的市场需求已经放缓。中型公司只招高级职位,并暂缓招聘初级职位。
- 过去几年,不仅市场过度饱和,而且培训机构学员的质量也有所下降,很难找工作。
- 你是很有能力的求职者,但我们公司没有足够的资源来培养你。请保持联系,我们很乐意等你有更多经验时再面试你。
- 在暑假期间找工作很难,你还需要与计算机科学专业的学生竞争实习机会。请在秋季有更多职位空缺时再试试。
- 秋招形势也很严峻,随着公司接近第四季度,招聘将放缓。如果你今年夏天找不到工作,你就得等到明年了。
- 你可以试着找找产品经理的实习机会。等你有一定经验了,也许可以转行到软件工程。
第6步:制定学习计划
在学习Hack Reactor之后,我花了很多时间复习技术概念,为面试做准备。以下是我大致的学习计划:
- 学习算法和数据结构
- 学习系统设计
- 完成一次黑客马拉松
- 建立个人作品集
- 记录下电话面试和现场面试的问题
- 与他人一起练习
让招聘人员更容易找到你。以下几个平台都是不错的选择:
- Hired
- AngelList
- GitHub
第8步:记住,这是数字游戏
我经常听到工程师说“这只是数字游戏”,以下是我的一些数字:
文章图片
投简历:156次 共26小时
电话面试:41次 共20.5小时
技术面试:11次 共11小时
编程挑战:10个 共80小时
现场面试:6次 共28小时
总计:165.6小时 约6.9天
了解数字能帮助你进行分析,例如:
- 所投简历的26%转化为电话面试
- 51%的电话面试将转化为技术面试或任务
- 28%的技术面试将转化为现场面试
因此我花更多的时间去提高技术能力,目标是提高从技术面试到现场面试的转换率。
第9步:搞定现场面试
现场面试涵盖的内容很广,持续2到6个小时不等。我参加的现场面试中主要涵盖了以下内容:
- 算法
- 系统设计
- 使用公司的API开发应用程序
- 关于我的编程语言(JavaScript)的问题
- 关于HTML / CSS的问题
- 关于前端框架的问题
- 关于各种数据库的问题(SQL / noSQL)
- 解释你创建的GitHub项目,你做了哪些权衡,以及将来会采取哪些不同的做法
第10步:进行职业规划
你认为5年后你的职业发展会是怎样的?
在面试中我常常会被问到上面这个问题。
关于职业发展我有好几种选择,比如web端、移动端、网站可靠性和DevOps等等。
同时还有后端、前端和全栈的选择。有时这些角色之间的界限很明显,有时却模糊不清。在学习和搜索的过程,虽然我不知道只会会选哪条路,但有些工作我更喜欢做,而有些却不喜欢做。
比如,我不喜欢涉及到网站像素的问题,但我对移动端设计很感兴趣;设计架构和建立数据库有点乏味,但我喜欢获取大量数据并对其进行操作或可视化。
文章图片
一些建议
- 编程挑战是学习机会
- 坦然接受拒绝
- 寻找导师
结语
转行比我想象的要困难得多。
成为一名工程师需要花费很多时间。这意味着我要扩大专业人们,坦然面对学习中的困难,忽视所有的反对者。
在学习中,我需要找到适合自己的学习资源。不断参与新的项目,研究新算法。
这些努力值得吗?绝对的。
【我如何在1年内转行成了一名软件工程师】我很高兴地说我找到了自己心仪的工作,并可以继续学习和成长。最重要的是,我在工作中获得了信心,不断充实和提升自己。
推荐阅读
- java|实施工程师1分钟即时演讲_我是如何在1年内从时装模特转变为软件工程师的
- 笔记|anaconda安装opencv
- EntityWrapper如何在and条件中嵌套or语句
- 解锁一个新技能,如何在Python代码中使用表情包...
- 打印总是遇到问题(一文教你如何在优麒麟上使用 CUPS 管理打印机)
- 如何在|如何在 K3s 中启用 Traefik Dashborad
- 如何在Spark Scala/Java应用中调用Python脚本
- 论如何在使用RedisStandaloneConfiguration时让JedisConnectionFactory用上JedisPoolConfig
- WinForm窗体中如何在一个窗体中取到另一个窗体的值
- 如何在中后台领域玩转BFF架构