旧金山字体_我如何在12个月内从零开始成为旧金山软件工程师

旧金山字体

by Sean Smith

肖恩·史密斯(Sean Smith)

我如何在12个月内从零开始成为旧金山软件工程师 (How I went from zero to San Francisco software engineer in 12 months)

One year ago, I was working part-time as a route setter at a rock climbing gym in Tennessee. Today I’m working as a software engineer at a cyber-security startup in San Francisco.

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

My journey to this point has been unforgettable and life-changing. And yet as challenging as everything was, I think that any sufficiently-motivated person could do the same.

我的旅程到此刻已经刻骨铭心,改变了生活。 尽管一切都充满挑战,但我认为任何有足够动力的人都可以做到。

Knowledge has become democratized. All you need to reach a competitive level in your field is time and dedication. This is especially true for the field of software engineering.

知识已经民主化。 要在自己的领域中达到竞争水平,您所需要的就是时间和奉献精神。 对于软件工程领域尤其如此。

在2016年,我的生活崩溃了 (In 2016, my life was falling apart)

When I started learning to code in 2016, I guess you could say my life was falling apart.

当我在2016年开始学习编码时,我想您可以说我的生活正在瓦解。

I’d gone to college as a pre-med student, with degrees in biochemistry and anthropology. But I quickly became disenchanted with science and medicine, and left college with no clear path.

我以生物化学和人类学学位的医学预科生去上大学。 但是我很快对科学和医学产生了迷惑,并没有明确的道路离开大学。

I started working as a routesetter at rock climbing gyms for almost 2 years, but things were not going so well. I knew I was in need of a big change.

我开始在攀岩馆做导游员近两年了,但是事情进展得并不顺利。 我知道我需要很大的改变。

I had been putting off learning to code for a long time, but I knew this was what I wanted to do. Finally, on my birthday in 2016, I committed to learning to code. I didn’t look back.

我一直在推迟学习编码,但是我知道这是我想要做的。 最后,在2016年生日那天,我致力于学习编码。 我没有回头。

At this point in time, I was vaguely familiar with the coding bootcamps that have become quite ubiquitous over the last few years. Luckily, I quickly discovered freeCodeCamp. When I realized that finishing their curriculum entailed writing software for non-profit organizations, I promptly joined and resolved that I would finish freeCodeCamp’s open-source curriculum before even considering a bootcamp.

在这一点上,我对熟悉最近几年无处不在的编码训练营已经有点模糊了。 幸运的是,我很快发现了freeCodeCamp 。 当我意识到完成他们的课程需要为非营利组织编写软件时,我Swift加入并下定决心,在考虑进行训练营之前,我将完成freeCodeCamp的开源课程。

freeCodeCamp rapidly became the core of my education. I supplemented it with many other resources, such as podcasts, tutorials, open-courseware, and healthy doses of documentation and Stack Overflow when needed.

freeCodeCampSwift成为我教育的核心。 我补充了许多其他资源,例如播客,教程,开放课件,并在需要时提供了大量文档和Stack Overflow。

Typical days involved me working through freeCodeCamp challenges and projects, which allowed me to progressively improve my skills.

通常情况下,我需要处理freeCodeCamp的挑战和项目,这使我能够逐步提高自己的技能。

When sitting and writing code became unproductive, I would absorb material through other channels: audio, video, and so on. I moved back and forth between different learning methods, which was very useful in maintaining a strong level of engagement and focus. This was basically my process, and it allowed me to dedicate many hours to learning.

当坐下来写代码变得毫无用处时,我会通过其他渠道(例如音频,视频等)吸收材料。 我在不同的学习方法之间来回移动,这对于保持强烈的参与和专注水平非常有用。 这基本上是我的过程,它使我可以花很多时间来学习。

Here it is by the numbers (roughly estimated):

这是通过数字(大致估算)得出的:

  • Total duration learning: less than 12 months

    总学习时间:少于12个月
  • Total hours: ~2,500

    总时数:〜2,500
  • Total projects completed: 70+

    已完成的项目总数:70+
  • Total CS courses watched: ~10

    观看过的全部CS课程:〜10
  • Total GitHub commits: 1,500+

    GitHub承诺总数:1,500+
  • Total lines of JavaScript written: 20,000+

    编写JavaScript总行数:20,000+

Most of this learning took place in Knoxville, Tennessee, where I was living at the time. I had a strong desire to move to one of the major tech cities, so one day I woke up and naturally decided it was time to drive to San Francisco. That’s about exactly how it happened.

这些学习大部分是在我当时居住的田纳西州诺克斯维尔进行的。 我强烈希望搬到主要的科技城市之一,所以有一天我醒了,自然而然地决定该开车去旧金山了。 这就是它的发生方式。

That night I left, and about 3 weeks later arrived in the Bay Area. Plenty of time to listen to podcasts on the road.

那天晚上我离开了,大约三周后到达了海湾地区。 有很多时间在路上听播客。

After arriving in San Francisco and completing the core freeCodeCamp curriculum (front-end, data visualization, and back-end certifications) I had a brief go at job applications. Around 65 or so. Literally no response.

到达旧金山并完成了freeCodeCamp的核心课程(前端,数据可视化和后端认证)后,我简要介绍了工作申请。 大约65岁左右。 从字面上看没有任何React。

Remember, I had just driven into the Bay Area from across the country. I had no idea how competitive it would be, nor how much my skills were even worth to employers at their current level. Did freeCodeCamp actually measure up to the education of an in-person coding bootcamp?

记住,我刚刚从全国各地开车进入湾区。 我不知道这将有多强的竞争力,或者我目前的水平对雇主来说我的技能还不值多少。 freeCodeCamp是否真的达到了亲自进行编码训练营的程度?

These feeler applications gave me a clear reading: I had to do more. The market is pretty competitive. So I rapidly revised my plans, extended my time horizon, and reached out to freeCodeCamp to begin a non-profit project, since I was now eligible to start one.

这些探测器应用程序使我读起来很清楚:我必须做更多的事情。 市场相当有竞争力。 因此,我Swift修改了计划,延长了工作时间,并接触了freeCodeCamp以开始一个非营利项目,因为我现在有资格开始一个。

Meanwhile, I began networking in the city as much as possible. The networking came easily enough, as freeCodeCamp has many self-organized campsites throughout the world’s cities.

同时,我尽可能地开始在城市建立网络。 联网非常容易,因为freeCodeCamp在全球城市中拥有许多自组织的营地。

I got a quick response from freeCodeCamp’s team about the nonprofit projects. Some of my React projects had caught the eye of Michael D. Johnson and Quincy Larson, and they asked me whether I’d be interested in helping write their React curriculum. (freeCodeCamp itself is a nonprofit.) I also helped build a conference management tool for the Conference on Crimes Against Women.

我从freeCodeCamp的团队中获得了有关非营利项目的快速响应。 我的一些React项目吸引了Michael D. JohnsonQuincy Larson的注意 ,他们问我是否对帮助编写他们的React课程感兴趣。 (freeCodeCamp本身是非营利组织。)我还帮助构建了针对妇女犯罪会议的会议管理工具。

I was very excited about the opportunity to give back to this awesome community, so I quickly accepted the challenge. My React and Redux challenges are being incorporated into their newly expanded curriculum, which is now live in beta form live here.

我很高兴有机会回馈这个很棒的社区,因此我很快接受了挑战。 我的React和Redux挑战已纳入其新扩展的课程中, 现在以beta形式在此处直播

In addition, I chose to advance my timeline to 2017. I would continue studying on my own for the remainder of 2016 before applying for jobs again. I left San Francisco, droving north through Portland and Seattle to Bellingham, Washington.

此外,我选择将自己的时间表提前到2017年。在继续申请工作之前,我将在2016年剩余的时间里继续独自学习。 我离开了旧金山,向北开车经过波特兰和西雅图,到达华盛顿贝灵汉。

It was during these weeks in the Pacific Northwest that I worked non-stop to complete the React and Redux challenges. I collaborated with another freeCodeCamp contributor from New York, Peter Weinberg, and built around 80 coding challenges in total.

正是在这几个星期的西北太平洋时间里,我不间断地完成了React和Redux的挑战。 我与来自纽约的另一个freeCodeCamp贡献者Peter Weinberg合作 ,共构建了大约80个编码挑战。

This was probably one of the key moves that helped set my resume apart, because it represented a significant project that served a real-world organization’s needs.

这可能是使我的简历脱颖而出的关键举措之一,因为它代表了一个满足现实世界组织需求的重要项目。

In late December, we finished the initial draft of the challenges and moved them into an official alpha release which is still generating feedback from the community.

在12月下旬,我们完成了挑战的初稿并将其移至正式的alpha版本中 ,该版本仍在征询社区的反馈。

我胜利地回到旧金山 (My triumphant return to San Francisco)

Back in San Francisco, I was almost ready to dive into job applications again. I had decided to join Outco, a crash course in interview preparation for software engineers. I had always been pretty opposed to spending money at a coding bootcamp (partly because I didn’t have the money), but I chose to join Outco because in my view they are trying to serve a different purpose. Outco is specifically targeting the interview process for software engineers, a process which causes friction for many, even experienced and skilled engineers.

回到旧金山,我几乎准备再次涉足求职申请。 我决定加入Outco ,这是一个速成课程, 专门为软件工程师准备面试。 我一直很反对花钱在编码训练营上(部分原因是我没有钱),但是我选择加入Outco是因为我认为他们正在努力达到不同的目的。 Outco专门针对软件工程师的面试过程,这一过程会使许多甚至是经验丰富的熟练工程师产生摩擦。

Although I could write JavaScript pretty well at this point, I definitely was not prepared to solve arbitrary algorithm questions on a whiteboard. That’s one of the key areas Outco tries to prepare students for, because, for better or worse, whiteboarding remains a favorite interview tactic of tech companies. In addition, I could defer payment to Outco until after I got a job.

尽管我现在可以很好地编写JavaScript,但是我绝对不准备在白板上解决任意算法的问题。 这是Outco努力为学生做好准备的关键领域之一,因为无论好坏,白板仍然是科技公司最喜欢的面试策略。 此外,我可以将付款推迟到Outco,直到找到工作为止。

And, a reality check: I had been going many months now at a strong pace of probably 50+ hours a week of coding and learning, and I was now literally risking it all on my ability to get a job in one of the most expensive and competitive cities in the US.

而且,进行一项现实检查:我已经花了很多月的时间去进行编程和学习,大概每周要花费50多个小时,而现在我确实冒着一切风险来冒险,因为我有能力找到最昂贵的工作之一和美国的竞争城市。

I had already made a sincere effort to apply to companies and failed miserably! The pressure and stress were definitely bearing down on me at this point.

我已经竭尽全力申请公司,但惨败! 在这一点上,压力和压力肯定压在我身上。

I knew success was going to depend heavily on my performance of the next few months. I joined Outco because I expected that their structured program and support would prove indispensable in this last miles of my journey, and it did.

我知道成功将在很大程度上取决于我接下来几个月的表现。 我之所以加入Outco,是因为我希望他们的结构化计划和支持在我旅途的最后几英里中必不可少,而且确实如此。

2017 arrived and I started Outco. I began to work even harder than before. Tons of algorithms and data structures practice, whiteboarding questions, technical questions, pair programming, mock phone screens, systems-design questions—you name it, and lots of it. Not to mention applying to jobs again, and a lot more than I did the first time.

2017年到了,我创办了Outco。 我开始比以前更加努力。 大量的算法和数据结构练习,白板问题,技术问题,结对编程,模拟电话屏幕,系统设计问题(您可以命名)以及很多其他内容。 更不用说再次申请工作了,比我第一次来的要多得多。

And, of course, once you begin to get responses from companies it becomes very time-consuming (not to mention very stressful) to begin juggling all of these interviews at once.

而且,当然,一旦您开始收到公司的答复,立即开始处理所有这些采访就变得非常耗时(更不用说非常压力了)。

Practicing for interviews everyday is hard enough. Standing in front of a whiteboard in a real interview as they ask you about binary trees is much harder (and yes, interviewers asked me about binary trees).

每天练习面试都很难。 在他们问您关于二叉树的问题时,站在白板前进行真正的采访要困难得多(是的,访调员问我关于二叉树的问题)。

Again, the numbers tell the story more eloquently:

同样,这些数字更雄辩地讲述了这个故事:

  • Total applications: 192 (including the 65 from 2016)

    申请总数:192(包括2016年的65)
  • Total phone interviews: 17

    电话采访总数:17
  • Total take-home code challenges: 6

    带回家的代码挑战总数:6
  • Total technical screens: 5

    技术屏幕总数:5
  • Total onsites: 3

    现场总数:3
  • Total offers: 1

    总报价:1
  • Total time to offer: 6 weeks

    提供的总时间:6周
  • Success Rate: 0.52%

    成功率:0.52%

That one offer was from TruSTAR Technology, and I have been so happy to join their team! TruSTAR is building a platform that allows companies to share cyberintelligence data in order to prevent and mitigate cyberattacks.

那个报价来自TruSTAR Technology ,我很高兴加入他们的团队! TruSTAR正在构建一个平台,该平台允许公司共享网络智能数据,以防止和减轻网络攻击。

I’m working on the frontend side of their application and putting to use the JavaScript skills I gained through freeCodeCamp. The experience has been incredible so far, and I have been honestly surprised by how well prepared I have been to begin making meaningful contributions to their codebase.

我正在研究他们的应用程序的前端,并使用通过freeCodeCamp获得JavaScript技能。 到目前为止,这种体验令人难以置信,而我为准备开始为他们的代码库做出有意义的贡献而做的充分准备使我感到惊讶。

过去12个月中我吸取的教训 (Lessons I learned over the past 12 months)

Now, finally, here is some advice I would have for anyone looking to do something like this:

现在,最后,这是我对任何想要做这样的事情的人的建议:

  • You need real-world skills and you have to learn a lot. That means a lot of hours of work, there’s no way around it. Passion helps.

    您需要具备实际技能,并且需要学习很多东西。 这意味着需要大量的工作时间,没有办法解决。 热情帮助。
  • Building projects is an excellent way to learn, and once you know enough it is not very hard to find open-source projects or other high impact projects to work on.

    建立项目是学习的极好方法,一旦您了解足够多,就可以找到开源项目或其他具有高影响力的项目来进行工作并不是很难。
  • JavaScript and React are great to learn and in high demand! But learn what interests you.

    JavaScript和React非常适合学习且需求量很大! 但是,请了解您感兴趣的内容。
  • It’s critical that you cultivate a community of others who are learning to code or working as engineers. Network in your city. Network online. Find collaborative projects to work on. Ask for help.

    至关重要的是,您要培养一个由其他正在学习编码或作为工程师工作的人组成的社区。 在您所在城市的网络。 在线网络。 寻找合作项目。 请求帮忙。
  • If you can afford it, try to have some patience. This is what I struggled with the most.

    如果负担得起,请耐心等待。 这是我最努力的事情。

There you have it — the journey that led me across the US to begin a career as a software engineer! I’m sure everyone’s path will look different, that’s part of the fun.

在那里,您的旅程已使我在美国各地开始了软件工程师的职业生涯! 我敢肯定,每个人的道路都会有所不同,这就是乐趣的一部分。

Find your own path and don’t be afraid to disregard other people’s views if you believe strongly enough in your own. That includes my views.

找到自己的道路,如果您对自己的看法足够坚决,不要害怕忽略他人的观点。 这包括我的观点。

The opportunities in the tech industry are real, and if you want them badly enough, you can find a way there.

科技行业的机会是真实的,如果您非常迫切地希望它们,您可以找到解决之道。

As an engineer, your job will be to solve problems, and if you are self-taught, the first problem you must solve is how do you teach yourself?

作为工程师,您的工作将是解决问题,而如果您是自学成才,那么您必须解决的第一个问题是如何自学?

Cheers everyone, and happy coding!

欢呼大家,祝您编程愉快!

P.S. A huge shoutout and thank you to the entire freeCodeCamp community and everyone I mentioned in this article (and a few others: Archie, Christian, Susan, Beemer Girl and all my friends from home). You have all proven invaluable in helping me accomplish this goal.

PS非常感谢,并感谢整个freeCodeCamp社区以及我在本文中提到的每个人(以及其他一些人:Archie,Christian,Susan,Beemer Girl和我所有在家的朋友)。 大家都被证明对帮助我实现这一目标非常宝贵。

翻译自: https://www.freecodecamp.org/news/how-i-learned-to-code-and-earned-a-job-in-silicon-valley-changing-my-life-along-the-way-a3af854855fa/

旧金山字体

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值