我是如何旅游 5 个月拿到 3 份 Offer 并收入翻倍的

2018-04-21 Sam Williams CSDN CSDN

点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!


【CSDN 编者按】本文作者 Sam Williams 在 6 个月前辞掉了初级 JavaScript 开发的工作,旅游了 5 个月。返回英国之后的一周内,拿到了 3 份工作 Offer,然后选择了一份是之前收入两倍的工作。这个过程并不容易,但是绝对值得。在这篇文章中,作者分享了自己努力的详细过程,从一定程度上来讲,能够让我们从中获益。

以下为译文:

找准目标


我原本计划旅行 3-6 个月,而且我知道回来的时候我要找一份更好的工作。初级 JavaScript 开发的工作让我明白了三件事情:

  • 我喜欢编程,不仅以编程为爱好,还热爱编程的工作。

  • 我喜欢后台开发的工作,因为可以摆脱前端开发中的 CSS 和视觉设计的工作。

  • 我不是特别喜欢 Angular。

了解了这些情况之后,我为自己设立了一个在旅行结束时要达成的目标,以及在这期间内我需要学习的内容。

我的目标是成为一位中级的全栈开发者。

了解情况


为了成为中级全栈开发者,并找出我需要提高的地方,我查看了我向往的工作,并仔细阅读了他们对候选人的要求,以及他们希望的各项技能。

通过研究,我发现大多数工作的要求如下:

  • 深入理解 JavaScript;

  • 至少掌握一种框架(通常是 React 或 Angular);

  • 创建 REST API(通常是 express)的能力;

  • 掌握一种或多种数据库(通常是 MongoDB 或 SQL)。

制定计划


有了这些信息后,我知道我需要从几个方面提升自己:

  • 我需要读完《你所不知的 JS》(You Don't Know JS)。这个系列的书帮助我真正理解了 JavaScript 的基本知识,所以我觉得应该学习更多更高级的技术。

  • 我需要很好地掌握一种前端开发框架。我看了 Angular、Vue 和 React,最后决定学习 React。我之前做过一点 React,我很喜欢它。我不是特别喜欢 Angular,而在招聘广告中 Vue 的职位不是很多。

  • 尽管我可以从零创建 express API,但我对它不是很自信,而且我只能做些最基本的工作。我需要跨越这个鸿沟提升自己,尤其是如果我想要的工作需要优先做后台工作的话。

  • 我可以继续学习关系数据库(postgreSQL),或者学习一种新的数据库。最后我决定学习 MongoDB,因为它非常流行,而且可以在我的简历中添上一笔:NoSQL。

当时我不是很确定要旅行多长时间,所以我做了如下学习计划:

  • 学习 React(和 Redux),同时阅读《你所不知的 JS》。

  • 提高 express 的水平,并学习 MongoDB。

  • 用我喜欢的技术做点东西。

  • 学习其他技术。

我做这样的计划自然有我的理由。如果 3 个月后我结束旅行时,完成了任务 1,但是还在为任务 2 努力的话,那么我还是可以申请中级开发的工作,只不过我只能做前端开发的工作。

如果我先学习后台开发,那么 3 个月后,我还是不能很好地掌握任何前端开发框架。那可能会成为申请中级开发工作时的棘手问题。我可以尝试申请只负责后台开发的工作,但是似乎所有后台开发的工作都需要更多我没有的经验。

学习 React 和 Redux,阅读《你所不知的 JS》


我之前做过一点 React,是通过 Youtube 视频和常见的网上教程学习的,但是这一次我想更加正规地学习。所以我从 Udemy 选择了课程《React JS and Redux - Mastering Web Apps》。

这个课程非常精彩,之前的那点经验给了我很大帮助,但是我没有 Redux 的经验。学完这个课程后,我感觉自己可以创建比较复杂的网站了,而且对 React 的语法和格式,以及 Redux 的数据控制也更加自信了。

我花了两周完成了这个课程,而且每周我只有 1-2 次,每次 1-2 个小时在学习这门课程。毕竟我还在亚洲度假,学习不是主要重点。

手边有电脑的时候我就学习这门课程,否则就继续阅读《你所不知的 JS》的最后几本书。我在手机上保存了这几本书在 GitHub 上的电子版,爬山累了的时候,我就读这些书。

有了实战经验后,我比上次阅读这些书有了更好的理解。有些像 Promise 之类的东西,如果你从没用过,那么就很难理解。

提高 express 技术,学习 MongoDB


现在我感觉对前端开发很自信,接下来需要提升后台开发的技术了。

我再次决定从 Udemy 上选课程。我这么做是因为他们提供完整的课程,内容开展得很好,而且可以涵盖整个技术。当然你也可以从 Youtube 或其他在线教程上免费学习所有的内容,但是免费的课程永远无法很好地涵盖整个技术。

接下来的问题是选择哪个课程。有一些课程是免费的,而有一些是需要付费的;有一些较短的课程,也有一些很长的。

我决定投资买一个课程(10 美元买这么多信息,这是一笔微不足道的投资了),最后我的选择范围缩减到了 3 门课程上。它们的长度从 7 小时到 25.5 小时不等。

我很想选 7 小的课程,因为我可以一边享受假期,一边花 1-2 周就可以学完了。很明显那个 25 小时的课程需要更长时间,但是它覆盖的内容更多。在这次旅行中,我决定只要手里还有钱就一直旅行,所以我选择了 25 小时的课程。

Node + React:全栈网站开发

我仔细调查了整个课程,发现这是一门很好的课程。

在上 React 和 Redux 课程之前,课上重复了 React 的内容。所以如果不想浪费时间的话,你可以跳过已知的部分视频,或者将视频的速度设置为 2 倍,大致浏览下刷新记忆,或看看有用的建议。

在后台方面,它介绍了大量的内容,其中包括认证、邮件处理、支付、API 密钥的处理、MongoDB、mongoose 以及高级部署。

这个课程之所以这么长的原因就是因为它覆盖了大量内容,而且介绍得非常详细。这有好也有坏,所以大多数时候我都是以 1.5 倍的速度观看的该视频,只在有必要的时候暂停。

我在这个课程上花费的时间较多,但是成功地在 1 个半月内完成了。

开始写点东西


在中国的时候,我突然决定写一写在中国做开发有多可怕(原文链接:https://medium.freecodecamp.org/developer-vs-the-great-firewall-of-china-aaa8605902ba)。这篇文章在 freeCodeCamp 发表了,到目前为止获得了 1600 次的阅读,并有 791 人点赞。看到有人读我写的文章并为我点赞,我高兴极了。

过去 30 天内我的文章的统计信息

我决定写更多的文章,来记录我正在做的事情和我发现的很酷的东西。这在后来我的面试中,也给我提供了大量可谈论的题材。

写博客是记录自己的进度的好方法,可以让你看见自己的提高。

用所学的技术写点东西


现在我已经收集齐了所需的工具,我想用它们做点东西。当时我已经旅行了 3 个半月,而且我决定再旅行 1-3 个月。这意味着如果我想回去之后立即找工作的话,那么很快就需要考虑工作的事情了。

为了申请工作,我需要更新个人简历和作品。我可以利用这个机会用所学的 Node 和 React 创建一个新的作品。

于是,我付诸了行动。成果如下所示。我之前就说过我不是设计师,但是看起来还不错。我还用了 Wordpress 的 API 在这个页面上托管了博客文章。

我知道页面设计很糟,所以我把它发表到了网页设计评审的 subreddit 上。我得到了很多很好的建议,大多数都需要花费几个月研究和学习网页设计的基本知识。

我接纳了其中一项建议:利用已有的第三方库。然后我有了一个全新的网站,虽然我没有用到之前使用的技术,但是网页看起来不那么辣眼了。

申请工作


我访问的下一站是老挝的一个偏远的攀登区域。我猜想这意味着那里可能很少有电源,且没有 Wi-Fi。所以在老挝的两周里,我把笔记本电脑留在了曼谷。

等到了老挝以后,我才发现他们居然有 4G!我买了一张本地的 SIM 卡(最初的 1.5GB 是 2 英镑,之后每 GB 的价格是 89 分),而且还有了很好的网络。当时我知道我要在老挝待两周,然后回家前还要在中国待大约 4 周。所以可以开始申请工作了。

进展


在之后的 1 个半月内,我申请了 50 多份工作,通过邮件和 LinkedIn 与 25 个人进行了交谈,并且约定了 5 份工作面试需要在我回家的那周内完成。我大多数的联络都是靠邮件,但是如果有人想直接给我电话的话,我也会尽量满足他们(我有 8 个小时的时差)。

我认为真正的交谈是提高你和他人关系的好方法,可以增加他们邀请你参加面试或介绍工作给你的机会。

如果你不喜欢打电话或用 Skype 与人交谈,那么可以使用邮件,但是我觉得你会错过提高自己的机会。

写更多的东西


有一家面试要求我画出一个原型:为一家公司建立很糟的网站和最小限度内的客户服务。这是个很好的机会,迫使我学习如何画原型。我写了一系列的关于如何画出原型并做好网站的文章。点击这里看我做的网站(https://golden-shoes.herokuapp.com/),这里是我的原文(https://hackernoon.com/creating-a-shopping-app-from-scratch-part-1-352ebbd78655)。

最后我还创建了一个聊天机器人,用于应答退货。为此我还学习了聊天机器人的技术,我花了一周才做出一个像样的版本。这是我拿到这份工作的重要因素。

面试


现在我手头有连续的 5 个面试,我必须争取每个 Offer。

  • 准备

我写了一些关于如果准备 JavaScript 面试,以及掌握面试流程的文章。我确信我做到了每一点。

我知道所有希望强调的点,知道如何回答关于我的弱点和之前就任过的每家公司的提问。

  • 面试

尽管我很内向,但是我可以在面试中有很好的表现。我努力锻炼自己更加外向,与面试我的人交谈。如果你觉得自己在面试中很害羞很保守,那么我推荐你阅读关于情商方面的书,努力让自己自信起来。

四分之三的面试都要求我参加技术测试(另外两家是在网上做的),而且我准备得十分充分。虽然中间有一些小问题,但是我讲出了我的想法,并很好地完成了所有任务。

  • Offer 与交涉

在开头的三家面试中,我拿到了两个 Offer。我不是特别喜欢第四家面试的公司,所以我告诉他们我不会考虑他们的 Offer。如果你也身处相同的境地,如果你知道你不会接受他们的 Offer,那么就不要让他们给你下 Offer 了。

现在我有了两家公司的 Offer,他们都非常想雇佣我。现在该与他们交涉了。我非常不擅长交涉,要求更高的薪水,但是我读了一些文章并照做了。

你可能会想:“我并没有太高的期望,Offer 已经很好了,所以我还是接受吧。”

错,你需要交涉。

或者会想:“我不想出师不利,让我的老板觉得我很贪心。”

错,你需要交涉。

“但是这家公司很小,而且……”

错,闭嘴。你需要交涉。

如果你正在找工作,那么我建议你读下这篇文章《交涉工作 Offer 时的十大原则》(https://medium.freecodecamp.org/ten-rules-for-negotiating-a-job-offer-ee17cccbdab6)。

我的交涉做得并不完美,甚至都没有做好,但是我做了几件事情让自己更有选择权。我有两个相似的 Offer,但是我更喜欢其中一家公司。所以我事先打了草稿,并深呼吸让自己平静,然后拨通了这家公司的总监的电话。

你好,Dave!我打这个电话是想跟您汇报一下关于 Offer 的事儿。谢谢您给我的 Offer,我很高兴你觉得我适合你们公司。但是我手头还有一家很好的 Offer,我会在周末前做最终选择,然后在周一中午 12 点前让你知道结果。

有件事情我想对这个 Offer 很有利,那就是我会搬到离工作地点很近的地方居住,所以如果您能提供搬家费用的话,那就再好不过了。

虽然最后结果不尽然,但是这给了我很多帮助。我谢谢他们给我 Offer,告诉他们我会在什么时候做最后决定,并且要求他们能提供更优越的条件,尽管没有要求更好的薪水。

总结


我明白了怎样才能找到自己想要的工作。我建立了计划,然后花钱参加了在线课程,加速了学习的过程。

我申请了很多工作并拿到了 5 次面试。我在两家最喜欢的公司之间交涉了 Offer。

现在我在 MissionLabs 这家公司工作了两周了,我很喜欢!

原文:https://medium.freecodecamp.org/how-i-doubled-my-salary-in-5-months-and-got-an-amazing-job-1110d1779e0b

作者:Sam Williams

译者:弯月

————— 推荐阅读 —————

点击图片即可阅读