原文:How I became a web developer in under 7 months – and how you can too,作者:Niamh McCooey

大概去年这个时候,我开始在闲暇时间学习代码基础,7 个月后发现自己已经成为了一名专业的开发者——我没有计算机科学学位,没有参加过编程训练营,一开始对编程完全没有概念。

所以,你在阅读这篇文章的时候或许会想:这怎么可能?

好吧,我和你一样惊讶。

在这篇文章中,我会分享这 7 个月我是如何学习,并且找到了自己的第一份开发工作的。我也会分享一些对我学习有益的资源,以及一些我希望自己在之前学习时早一点采纳的建议。

如果你也是编程初学者,想要转行做 Web 开发,那么我希望这篇文章能提供给你一些帮助。

(如果你还没开始学习编程,但是想入门编程,或许我的这篇文章《我是怎么迈出学习编程的第一步的》会对你更有帮助,因为通过这些文章,你会了解如何迈出编程第一步。)

🐣 尽早分享自己的兴趣

当我认真考虑学习编程的时候,我做的第一件事就是说出来

我询问家人与朋友,他们是否认识愿意讨论自己工作的工程师,结果我认识了很多既聪明又富有创造力的人,他们给予了我很多真诚、实用、丰富且非常重要的观点与看法。

这一阶段的关键是尽可能去努力认识不同类型的工程师们。如果可以的话,与处于不同职业阶段且具有丰富爱好与特长的人交谈,这样可以帮助你揭开编程的神秘面纱,你将不再认为编程是个令人恐惧的大难题。

除此之外,最好尽早:

🙋 咨询他人

我问过工程师们这些最基础的问题:

  • GitHub 是什么
  • 你真的需要计算机科学学位吗
  • 为什么人人都在讨论 React
  • 你认为 10 年后会有什么类型的技术性工作

👋 参加交流会

如果你所在的城市有很多技术交流会——去吧!

在学习早期,这是非常好的实践机会,不仅会有前辈带你解决编程问题,而且你还能认识组织者、导师、在职开发者等等。

通过参加交流会,你也可以建立自己在该行业中的社交圈,了解到适合自己水平的工作机会。

下面是一些我最喜欢且对新手友好的交流会:

  • Codebar:该组织每周举办一次交流会,在全世界拥有20多个分会。在这里,你可以与导师一起工作,专心致志写代码(如果你不能到场,也可以参加他们的线上交流会)
  • Ada’s List:该组织每月在伦敦举办一次交流会,且有线上社区,女性可以在这里认识其他在技术行业工作的女性(不只是开发者)
  • 24 Pull Requests:该组织致力于为开源项目做贡献,每年在伦敦举办一次交流会,还会介绍 GitHub 知识——对新手来说非常方便
  • Node Girls:该组织每年举办几次交流会,地点不固定,是新手学习 Javascript 和 Node.js 的好地方

(译者注:在世界很多城市都有 freeCodeCamp 技术社区,学员们会时常组织交流会,分享技术知识,互相帮助学习编程,可以添加小助手微信 fcczhongguo,她会邀请你加入所在城市的技术社区。)

🏃‍♀️ 下一步:多多尝试

多年以来,我都认为学编程的第一件事就是决定自己想使用的语言。但是,不知道使用什么语言其实没关系,我甚至觉得这还是一种巨大的优势。

编程界有太多的语言与主题了,它们对于新手来说就像洪水猛兽。你可以天真无邪地尝试所有语言,不必过分深究(举个例子,学习 CSS 的时候,你不必知道 CSS 的完整历史),现在就要讲到头 7 个月中我最喜欢的建议了......

😈 学习表现差

当我开始学习的时候,特别害怕自己表现很差。但那时我就发现了一个最大的真相:没人关心你有多差

当然你会很差!你会非常糟糕!但因为你是新手,所以你有理由表现差。在初学编程时风险比较低的阶段,享受糟糕吧——因为这很有趣,也很自由。

👩‍💻 紧跟教程

当你想从新手进阶时,教程很有帮助,因为教程的形式不需要你自己去搞懂想要学习的内容和学习的方式(你只是在尝试学习它)。

以下是一些我最喜欢的教程:

  • Codebar 上的所有内容(非常适合从头学习不同的语言)
  • Rachel Andrew 的视频教程 (非常适合学习网格布局)
  • NodeGirls 上的教程(一步步带你学会 Javascript 和 Node.js)

当谈到教程的时候,试着去理解你如何能学得最好,而不要仅仅因为它是最流行的或者是别人建议的方法就不知所措。

在这个阶段,你可能不太了解编程,但是你知道如何才能学得最好,所以相信自己的判断吧。

以下是一些对我来说行之有效的方法:

  • freeCodeCamp 课程:通过一道道练习题目学习不同语言,当你需要从繁重的教程中休息一下,想要尝试一些更轻量级的东西时,这是很好的练习平台
  • CSS Diner & Flexbox Froggy:这是两个有趣的游戏,对掌握 CSS 选择器和练习 Flexbox 布局大有裨益
  • Codepen:这是一个可以练习编程的平台,你可以看到人们的项目和源代码
  • Grasshopper:这是一个对初学者友好的移动应用程序,为你介绍 JavaScript 基础知识。
  • Eloquent Javascript:配合使用该电子书与 freeCodeCamp 效果更佳,能让你充分深入理解 JavaScript。

👀 学习别人的代码

很快,你就会觉得是时候做一些更有意义的事情了。一个相当有趣的方法是当你看到一些很酷的东西时,尝试把代码写出来(你可以在这浏览炫酷的网站)。

当你浏览时:

🤔 搞清楚为什么

如果你在创建自己的第一个网站,在写第一行代码之前,记得要问自己:为什么

你做这件事是为了:

  • 填充作品集?
  • 学习一门特定的语言?
  • 尝试听说过的不同方法?

作为新手,你做网站的主要原因可能是学习,所以你的网站或应用程序只是学习的一部分,是学习的副产品,不是最终目标——记住这一点。

特别是对于自学者来说,知道这点区别能够帮助你提高学习效率,因为你很快就会知道:每个人都有自己的做事方式。举个例子,如果你想通过自建网站来学习 Flexbox,不要听别人的话使用 Bootstrap。

如果有人告诉你,实现这个目标有更快的方式,他们可能是对的,但是他们却可能不知道你真正的目标究竟是什么。

🗣 大声说出自己的目标

首先告诉自己,然后告诉别人,最后决定如何实现目标。这可能听起来十分容易,但在收集信息的过程中,很容易会忘记最初的目标。

💆 平静下来

自学最好的一点是你决定自己学什么,怎么学,对吗?好吧,还有一种好处就是你决定自己的提交期限。即使你逾期完成,也没人关心,所以,放轻松吧!

⚡️ 时刻充满斗志

这个学习过程是双重的:一方面,你需要花时间弄清楚代码中的技术细节;另一方面,你需要时不时地四处看看,看看其他人在做什么。

将这两种方法结合在一起,可以为你的学习提供一个整体的视角,并帮助你减轻陷入所有细节的压力。以下是我在最初的 7 个月里发现的一些有用的建议:

🎤 参加会议

  • You Got This:这是一个在英国举办的会议,专门针对那些编程新手。我在成为工程师之前参加了这个会议,感觉非常舒适,并且参加那个会议之后我开始准备学习编程。
  • New Adventures:这个会议在诺丁汉举办,内容偏轻技术,介绍技术的本质,以及科技如何在当今世界发挥作用。演讲者众多,话题广泛,十分鼓舞人心。

📚 多阅读

👣 紧跟大牛

基本上就是这样。回顾过去的一年,我意识到正是这些核心课程支撑着我从一个从未读过一行代码的文案工作者变成了一个全职开发者。

所以,如果你正在考虑转行,但又担心要做出这么大的改变,试着把它分解成更小的目标和挑战。

如果这个方法对一位刚开始自学编程时一头雾水的女士有效,那么对你也一定有效。你可以借鉴这些经验教训,根据你自己的学习风格进行调整,然后努力学习。