在决定转行前,我是科技公司的一名营销人员。我尝试过很多类型的营销工作,具备活动、公关、搜索引擎优化、内容创作、数字广告、邮件营销,但从未找到最适合自己的。
我的上家公司是个人理财的创业公司,品牌知名度很高。公司的座右铭是“内容为王”。与大多数科技公司不同,这家公司里有大量的编辑和记者,只有少数软件工程师。
在我入职一年后,公司决定改变策略。单纯靠内容已经不够了,许多个人理财初创公司在当年都推出了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
第4步:咨询经验丰富的工程师
我向许多资深工程师询问了求职建议。以下是一些最有用的建议:
迈出第一步:每个工程师都是一步步成长起来的。许多工程师在找到心仪的工作之前,都经过了不断的尝试和努力。如果你没有马上找到合适的工作,也不要泄气。
重写简历:如果你是刚入行的工程师,你的简历可能有些稚嫩。关注你所做的内容和技术决策,而不是实现了什么。
寻找指导机会:关注拥有30多名工程师的团队,因为这将让你很快提升编程技能,并获得指导机会。
进行个人项目:这将展示你在求职过程中对软件工程的热情,让你在面试中脱颖而出。
第5步:忽略无益的建议
我找工作的时间是2018年的夏天,当时我收到了很多善意但无益的建议。有些来自招聘人员,工程师同事和一些朋友。以下是其中一些:
过去几年,初级工程师的市场需求已经放缓。中型公司只招高级职位,并暂缓招聘初级职位。
过去几年,不仅市场过度饱和,而且培训机构学员的质量也有所下降,很难找工作。
你是很有能力的求职者,但我们公司没有足够的资源来培养你。请保持联系,我们很乐意等你有更多经验时再面试你。
在暑假期间找工作很难,你还需要与计算机科学专业的学生竞争实习机会。请在秋季有更多职位空缺时再试试。
秋招形势也很严峻,随着公司接近第四季度,招聘将放缓。如果你今年夏天找不到工作,你就得等到明年了。
你可以试着找找产品经理的实习机会。等你有一定经验了,也许可以转行到软件工程。
我确信很多工程师都听过类似的建议,关键是要学会忽视它们并保持专注,否则很容易分心。
第6步:制定学习计划
在学习Hack Reactor之后,我花了很多时间复习技术概念,为面试做准备。以下是我大致的学习计划:
学习算法和数据结构
学习系统设计
完成一次黑客马拉松
建立个人作品集
记录下电话面试和现场面试的问题
与他人一起练习
第7步:充分利用社交网络
让招聘人员更容易找到你。以下几个平台都是不错的选择:
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等等。
同时还有后端、前端和全栈的选择。有时这些角色之间的界限很明显,有时却模糊不清。在学习和搜索的过程,虽然我不知道只会会选哪条路,但有些工作我更喜欢做,而有些却不喜欢做。
比如,我不喜欢涉及到网站像素的问题,但我对移动端设计很感兴趣;设计架构和建立数据库有点乏味,但我喜欢获取大量数据并对其进行操作或可视化。
一些建议
编程挑战是学习机会
我进行过很多编程挑战,但最终因为效果不好而没有提交。也有一些未完成但提交了的。不过在进行这些挑战中,我学习到了很多,也意识到自己的不足。
坦然接受拒绝
每次技术面试和现场面试都是如此。被拒绝是很正常的,起初我会感到自我怀疑,但慢慢地我开始摆正心态,并从中学到了很多东西。
寻找导师
我很幸运,在我参加面试过程中有导师的帮助。在求职的三个月中,导师每周会跟我交楼,询问我求职情况以及面临的困难。
结语
转行比我想象的要困难得多。
成为一名工程师需要花费很多时间。这意味着我要扩大专业人们,坦然面对学习中的困难,忽视所有的反对者。
在学习中,我需要找到适合自己的学习资源。不断参与新的项目,研究新算法。
这些努力值得吗?绝对的。
我很高兴地说我找到了自己心仪的工作,并可以继续学习和成长。最重要的是,我在工作中获得了信心,不断充实和提升自己。
-
软件工程师
+关注
关注
8文章
218浏览量
21135
发布评论请先 登录
相关推荐
评论