打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
12 个月,如何从“小白”变成硅谷的软件工程师?

编者按:在科技行业,写代码是一项比较性感的工作,有人通过培训班学编程,也有很多人选择自学编程。即使会写代码,要想在人才众多的硅谷求一份工作也并非易事,本文作者从自身经历出发,介绍学习编程的方法与求职经历。

一年前,我在田纳西州的攀岩健身房作兼职,为健身房设置路线。今天,我在旧金山的一家网络安全初创公司担任软件工程师。

我这样的转变对我来说是非常难忘的,同时也改变了我的一生。虽然这一切都非常具有挑战性,但我认为任何有充分动力的人都可以做同样的事情。

知识已经变得民主化。你需要做的就是在你的领域付出大量时间并坚持,这对于软件工程师尤其如此。

生活陷入困境

当我在2016年开始学习代码时,我的生活正处于一个巨大的困境中。

我作为一名拥有生物化学和人类学学位的预科学生考上大学。但我很快就对科学和医学失去了兴趣,随后我就离开了大学,前途一片迷茫。

我在攀岩健身房工作已经差不多两年了,但事情并没有变好。我知道我需要改变了。

我已经耽搁学习代码很长时间了,但我知道这是我想要做的。最后,在我2016年的生日,我发誓要学习代码,自那以后我就没有再回头。

在这个时候,我对过去几年变得无处不在的编程行业很陌生。幸运的是,我很快发现了免费代码营(Free Code Camp)。当我意识到要完成课程需要为非营利组织编写软件时,我马上申请加入,因为我很有信心可以提前完成我的课程。

学习编程

免费代码营很快成了我教育的核心。我同时补充了许多其他资源,如播客、教程、开放课件。

我的日常就是通过课程的挑战和项目,这使我能够逐步提高我的编程技能。当编写代码变得没有效率时,我会通过其他渠道吸收知识——音频、视频等。我在不同的学习方法之间来回尝试,这对保持很高的参与度并且抓住重点非常有用。这基本上是我的学习过程,它可以保证让我投入更多的时间去学习。

以下是统计的数字(粗略估计):

  • 总学习时间:少于12个月

  • 总时数:约2,500小时

  • 项目总计完成:70多个

  • CS 课程观看次数:约10

  • GitHub(一个面向开源及私有软件项目的托管平台)提交量:超过1500

  • JavaScript 的总行数:超过 20,000 行

那时候我住在田纳西州的Knoxville,我在那里做了上面绝大部分的事情。我有很强烈的愿望要一个科技产业很发达的城市,所以有一天我醒来后就决定是时候去旧金山了。接下来发生的事情就是改变我一生的事情。

我那天晚上就动身,大约三个星期后,我就到了Bay Area(旧金山湾区)。在路上的时候,我有很多时间听播客。

抵达旧金山后的第一次真正的求职

在抵达旧金山并完成核心课程(前端、数据可视化和后端认证)之后,我大约发出了65份左右的工作申请——但是都没有得到回应。

你要知道,我开车穿越全美来到湾区。我不知道现在湾区的竞争有多激烈,也不知道我的能力能否值得雇主青睐。我在免费代码营获得的经验能够达到编码需要的水平吗?

这些想法让我明白我不得不做更多。旧金山的市场是相当有竞争力的。所以,我迅速修改了我的计划,投入了更多的时间,同时加入免费代码营,开始了一个非营利项目。

我的 React 项目引起了Michael D. Johnson和Quincy Larson的关注,他们问我是否有兴趣帮助撰写他们的React课程。我还帮助一个针对妇女罪行的会议建立了的会议管理工具。

我非常高兴有机会能够回报这个可敬的社区,所以我很快接受了这个挑战。我的React和Redux的项目已被纳入他们新扩展的课程中,现在这个课程已经有Beta版形式了。

此外,我选择将申请工作的时间提前到2017年。我将继续自己学习,然后再申请工作。随后,我离开旧金山,开车穿过波特兰和西雅图,然后到华盛顿的Bellingham。

在太平洋西北地区的这几个星期,我不间断地完成了React和Redux的项目。我与纽约的另一位叫Peter Weinberg的同事合作,这可能是让我的简历脱颖而出的关键之一,因为我完成了一个重要的项目,而且还满足了实务界的需求。

12月下旬,我们完成了初步草案,并将其转化为正式的Alpha版本,直到现在还在不断吸收当地社区的反馈。

荣耀归来

回到旧金山,我再次投简历。我决定加入一个为软件工程师面试准备的快速课程Outco。我一直非常反对在编码集中营花钱(部分原因是我没有钱),但是我选择加入这个课程,因为在我看来,他们的目标是做一些很创新的东西。它专门针对软件工程师的面试过程,因为这是一个为很多工程师造成障碍的过程,即使是对经验丰富的技术工程师来说,也带来了很多麻烦。

尽管我现在可以很好地写JavaScript,但我绝对不会在白板上解决任意算法问题。这是Outco尝试为学生准备的关键领域之一,因为无论是好是坏,白板仍然是科技公司最喜欢用的面试策略。

我已经以一个星期超过50个小时的时间强度来学习和编码,而且我完全是背水一战了,因为我要在美国最昂贵和最有竞争力的城市找到工作。

我已经很努力地申请工作机会了,但是最终还是失败了!在那个时候,我面临的压力是巨大的。

但我知道成功将在很大程度上取决于我未来几个月的表现。

练习写编码的稿纸。

我开始在算法和数据结构、白板问题、技术问题、配对编程、模拟电话屏幕、系统设计问题上更加努力地工作,同时当然也没有放弃找工作。

我每天都坚持练习面试,虽然这很难。在真正的采访中,他们会要求你站在白板前面,然后问你关于二叉树(binary trees)的问题,而在我后来面试时,他们真的问我这个问题了。

数字胜于雄辩,下面是我面试的数据:

  • 申请总数:192个(包括2016年的65个)

  • 电话面试总数:17

  • 关键代码挑战:6

  • 现场面试:3

  • 得到的Offer:1

  • 时间总计:6周

  • 成功率:0.52%

那个唯一的Offer来自一家叫Trustar Technology的科技公司,我很高兴加入他们的团队。这个公司正在建立一个平台,让企业共享网络智能数据,以避免并减少网络攻击。

我在他们应用程序的前端工作,并使用我学的JavaScript技能。迄今为止,这样的经验对我来说是难以置信的,因为我终于可以利用我学到的东西来为公司创造价值了。

过去一年我学到的经验和教训

以下是我给想要学习软件编码工程师的建议。

  • 你需要真实的技能,你需要学习很多。这意味着要投入很多时间,所以你必須有很大的热情才可以。

  • 做项目是一个很好的学习方式,一旦你熟练之后,开源项目或其他高难度的项目对你来说就不是一件难事了。

  • JavaScript和React非常有意思,同时也是当下需求很大的技能,但你还是要学习你感兴趣的东西。

  • 不管是在你所在的城市还是网络上的朋友,你必须有学习代码或工程师的圈子。找机会跟他们一起合作,并且适当寻求他们帮助,一起解决问题。

  • 如果有可能的话,要有耐心。

以上就是我成为一个软件工程师的过程。我相信每个人的路都会有所不同,但这也是其中乐趣的一部分。

找到自己的道路,如果你自己相信足够强大,不要害怕忽视别人的观点,包括我的看法。

技术行业的机遇是非常真实的,你要有决心达到你的目的,你可以找到一种方式。

作为工程师,你的工作将是解决问题,如果你是自学的,你必须解决的第一个问题是如何教你自己。

希望你们有一个愉快地学习编程的旅途。

【编译组出品】编辑:杨志芳

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何在12个月内从零基础成为一个在旧金山工作的软件工程师
我30岁自学编程,当上高级工程师,几度精疲力尽想放弃
以前搞化学,自学编程 9 个月后,我成了年薪 6 位数的软件工程师
操作系统课程是如何改变我的
软件工程师的职位技能及面试问题
放弃培训班自学编程,9 个月后我成为年薪 6 位数的软件工程师
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服