During the past year, I finished the entire freeCodeCamp curriculum while working full time as a teacher. In this article, I will outline how I managed to do this. Particularly how I organized my time and what supplemental material I used.

在过去的一年中,我在全职工作的同时完成了整个freeCodeCamp课程。 在本文中,我将概述如何做到这一点。 特别是我如何安排时间以及使用了哪些补充材料。

背景 (Background)

First, the back story. I wasn’t completely new to coding. I grew up in a small tech company.

首先,后面的故事。 我并不是编码新手。 我在一家小型科技公司长大。

My father founded his own company before I was born, where they carried out different activities within tech, such as fixing computers, setting up Internet connections and networks for other companies, teaching computer courses, and building administrative applications for companies. It was a small town, so they were basically the go-to “tech guys” for the whole town.

父亲在我出生之前就创建了自己的公司,他们在技术领域从事各种活动,例如修复计算机,为其他公司建立Internet连接和网络,教授计算机课程以及为公司建立管理应用程序。 那是一个小镇,所以他们基本上是整个小镇的“技术专家”。

The company’s offices were in our house, so I literally grew up among computers and people who liked them. I started playing around with Visual Basic as a kid (one of the guys in the company taught me how to use it) and I spent all my free time online, chatting with fellow nerds.

公司的办公室在我们家里,所以我在计算机和喜欢它们的人中长大。 我从小就开始与Visual Basic一起玩耍(公司中的一个人教我如何使用它),我将所有的业余时间都花在网上,与书呆子聊天。

When I was about 12, one of those nerds emailed me a web development manual (a huge .txt file that basically dealt with HTML) and I used it to build my own fan site. It even had one of those cool visit counters.

当我12岁左右时,其中一个书呆子向我发送了一份Web开发手册(一个基本上处理HTML的巨大的.txt文件),然后我用它来建立自己的粉丝网站。 它甚至有那些很酷的访问柜台之一。

I hosted it on Geocities, got a free short URL, and listed it on Yahoo and AltaVista (these were the biggest ones at the time).


After that, life happened and I completely gave up on the idea of being a programmer, as the circumstances demanded for a more “realistic” approach. I won’t go into the details now, but basically I had to give up studying and get a job.

在那之后,生活发生了,我完全放弃了成为程序员的想法,因为当时的情况要求采用一种更“现实”的方法。 我现在不再赘述,但是基本上我不得不放弃学习并找到工作。

I went on living my life. I built the occasional website for my dad’s clients, and then eventually decided to start teaching English, which was something that came easy to me, and basically forgot all about web development. Until 2016 that is.

我继续过着自己的生活。 我偶尔为父亲的客户建立一个网站,然后最终决定开始教英语,这对我来说很容易,而且基本上忘了所有有关Web开发的知识。 直到2016年。

我如何决定转行 (How I decided to switch careers)

I love teaching. It’s a rewarding profession, interesting and fun. But it has its downsides. At the beginning, everything felt like a challenge, but after so many years doing it, I began to feel that I had no purpose. That I wasn’t growing or learning anymore.

我喜欢教学。 这是一个有益而有趣的职业。 但是它有缺点。 刚开始时,一切都感觉像是一个挑战,但是经过这么多年的努力,我开始觉得自己没有目标。 我不再成长或学习了。

I was feeling stuck. Like my job was exactly the same year in and year out. I was just going through the motions. It also didn’t offer a lot of opportunities to relocate, which is something that became very important for me later on.

我感到被困住了。 就像我的工作一年又一年一样。 我只是在做议案。 它也没有提供很多搬迁的机会,这对我以后变得非常重要。

In 2013, I met my husband, and the next year we went on a three month backpacking trip to Europe, which is a whole different blog post, but basically it was extremely low budget and we had an awesome experience. We loved Europe and we decided we would come back for another long trip.

2013年,我遇到了我的丈夫,第二年,我们进行了为期三个月的欧洲背包旅行,这是一篇完全不同的博客文章,但基本上这是非常低的预算,我们的体验很棒。 我们热爱欧洲,因此决定再次返回美国。

Time passed, we did other stuff, and then I found Codecademy and started to play around with it, and to toy with the idea of becoming a full-time developer. I already had some experience building websites with just HTML and CSS, but no JavaScript. I was reading lots of success stories online, but I still didn’t consider it a real career, not by a long shot.

随着时间的流逝,我们做了其他工作,然后我找到了Codecademy并开始使用它,并开始成为一名全职开发人员。 我已经有一些仅使用HTML和CSS而不使用JavaScript来构建网站的经验。 我在网上阅读了许多成功的故事,但是我仍然认为这不是一个真正的职业,而且远不为过。

Meanwhile we were planning out next long trip, saving money, planning and so on. I was working as a freelance translator more and more, super involved with my career, translating cool stuff like novels and poetry. 2017 came and we went to Europe again this time for two months.

同时,我们正在计划下一次长途旅行,省钱,计划等等。 我越来越多地担任自由翻译,在我的职业生涯中投入了大量精力,翻译小说和诗歌等很酷的东西。 2017年到来了,这次我们又去了欧洲两个月。

There we met a bunch of developers. It was crazy. Every single couch surfer we met seemed to be in IT somehow, either as a software product manager, a developer, a tester, and so on. They all encouraged us to get into tech. By that time we had already decided we wanted to move to Europe so a lot of them told us: “You could find a job here. Developers are in demand here, we need a lot of them.”

在那里,我们遇到了很多开发人员。 太疯狂了。 无论是作为软件产品经理,开发人员还是测试人员,我们遇到的每一个沙发冲浪者似乎都在IT领域。 他们都鼓励我们进入技术领域。 到那时,我们已经决定要搬到欧洲,所以很多人告诉我们:“您可以在这里找到工作。 这里对开发人员有需求,我们需要很多。”

Before the trip ended, we made the decision to sign up for a 2 year technical certificate in a newly founded technical university near our hometown. The program was mainly Java so when we came back, we started a Java course in Cousera. The first module was actually a JavaScript course, so we actually got hooked with JavaScript immediately.

在旅行结束之前,我们决定在我们家乡附近的新成立的技术大学注册2年技术证书。 该程序主要是Java,所以当我们回来时,我们在Cousera开始了Java课程。 第一个模块实际上是一门JavaScript课程,因此我们实际上很快就迷上了JavaScript。

While we learned JavaScript, we waited for the beginning of the school year in March 2018. There were only 50 spots for the Uni, so we got super dedicated and learned beforehand. We went, took tests, passed courses, and then we had to wait until they decided. We got the highest marks among all the candidates, but those marks didn’t make a difference. The spots would be assigned via a lottery system. My husband got in and I was left out.

在学习JavaScript的同时,我们等待了2018年3月学年的开始。Uni仅有50个景点,因此我们变得非常专注并事先学习。 我们去了,参加了测试,通过了课程,然后我们不得不等到他们决定。 在所有候选人中,我们获得了最高分,但这些分数并没有改变。 地点将通过彩票系统分配。 我丈夫进去了,我被排除在外。

He decided he preferred to learn by himself, he wasn’t that interested in Java anymore because he was hooked on JavaScript, so we started learning on our own.


We started with Codecademy, but it was too hand-held for us (we didn’t have Premium accounts). Somewhere we read about freeCodeCamp. And we started it, very slowly at first (the first certificate took me months to get, admittedly in the middle the curriculum was changed and I dropped my laptop and had to get it repaired). After the summer holidays ended and I went back to full time work, things got hard.

我们从Codecademy开始,但是它对我们来说太手持了(我们没有Premium帐户)。 我们在某处读到了有关freeCodeCamp的信息。 然后我们就开始了,一开始非常缓慢(第一个证书花了我几个月的时间,当然中途改变了课程,我丢下笔记本电脑不得不修理)。 暑假结束后,我回到专职工作,事情变得很艰难。

全职工作并全速执行freeCodeCamp (Working full time and doing freeCodeCamp at full speed)

It wasn’t easy, I won’t lie. It helped that most of my friends and acquaintances don’t live near me, and I live in a small town that doesn’t offer a lot of entertainment opportunities. In that sense, programming was a life saver. I had something fun to do, and it was addictive so I could kill hours of boredom with it.

这并不容易,我不会说谎。 它帮助我的大多数朋友和熟人都不在我附近,而且我住在一个小镇,小镇上没有很多娱乐机会。 从这个意义上讲,编程可以挽救生命。 我有一件有趣的事要做,而且令人上瘾,因此我可以消磨数小时的无聊。

So that helped a lot when dealing with the amount of hours I spent doing mental work (teaching and studying).


The first certificate took months, partly because I was waiting to get into Uni and partly because I was working 10 hours a day for the first 3 months of the school year.


Unfortunately I couldn’t just quit my job and study full time, since I needed to pay the bills, so I had to get really good at 3 things:


  1. Time management

  2. Discipline

  3. Organization


时间管理 (Time management)

I started work at 7 AM, so I started getting up at 4:30 AM on most days. I started the day with freeCodeCamp challenges and coffee. Sometimes I would also read from a book or do other tutorials, depending on what I was working on at the moment. I also studied during my lunch break and after work, but I came to terms with the fact that I wasn’t so productive during the week because of work. So during the week I did mostly short challenges, reading, and so on. And I worked on projects on the weekends, holidays, and free time.

我从早上7点开始工作,所以大多数时候我从4:30开始起床。 我以freeCodeCamp挑战和咖啡开始了新的一天。 有时,我也会读一本书或做其他教程,这取决于我当时正在从事的工作。 我在午休时间和下班后也进行了学习,但事实是,由于工作原因,我一周的工作效率并不高。 因此,在这一周中,我主要做了一些简短的挑战,阅读等等。 我在周末,节假日和空闲时间从事项目。

If I had 30 minutes, I’d read 30 minutes. If I had 15, I did some study for 15 minutes. I employed every single free moment of my day to study.

如果我有30分钟,我会读30分钟。 如果我15岁,我会做15分钟的学习。 我利用每天的每一刻空闲时间进行学习。

On Sundays, I would meal prep most of my meals for the week so I didn’t have to spend time cooking and I didn’t have to end up eating unhealthy stuff. I also planned and gathered everything I needed for work for the week, so I didn’t need to spend extra time besides the normal work hours.

在星期天,我会为一周中的大部分饭做饭准备,这样我就不必花时间做饭,也不必最终吃不健康的东西。 我还计划并收集了一周工作所需的一切,因此除了正常的工作时间外,我不需要花费额外的时间。

Luckily after June, my work hours were reduced from 10 -12 to 8, so I was now working a normal schedule and there I started to pick up the pace.

幸运的是,六月之后,我的工作时间从10 -12减少到8,所以我现在按照正常的时间表工作,在那里我开始加快步伐。

学科 (Discipline)

You will have to study even on days you don’t feel like it. Here is where motivation also plays a big role, but discipline is important — especially if you’re like me and get distracted a lot with social media and cat videos.

即使在您不喜欢的日子里,您也必须学习。 在这里,动机也起着很大的作用,但是纪律很重要-特别是如果您像我一样,并且对社交媒体和猫咪视频大失所望。

The best tip I can give you to fight the temptation to read articles online is this: if you come up with a question in your head like “how do planes fly?” (which is usually the type of question that gets me carried away and sucks me in for 30 minutes), write it down somewhere and promise yourself that you can read all about it after you finish what you’re doing.

我可以给您的最好的提示是,与在网上阅读文章的诱惑作斗争:如果您想到的是“飞机如何飞行?”这样的问题。 (通常是让我迷惑不解并吮吸我30分钟的问题的类型),将其写下来并向自己保证,在您完成工作后可以阅读所有有关该问题的信息。

99% of the time you won’t care anymore, because those questions just pop up in your brain because it wants to get distracted. Push through and you will beat it.

99%的时间您将不再在意,因为这些问题只是因为您想分散注意力而突然出现在您的大脑中。 推进,您将击败它。

Another aspect of discipline is having to choose study over other things. This is the not so fun part. I had to give up on many, many things I enjoyed to favor studying, and I can’t wait to be able to go back to them. I did it just because I wanted to become a developer as soon as possible (see Motivation below), but even if you’re not in a rush like I was, you might find that you spend a lot of time doing things that, even though they’re enjoyable and nice, take up too much of your time.

学科的另一方面是必须选择学习而不是其他东西。 这不是那么有趣的部分。 我不得不放弃很多喜欢学习的东西,而我迫不及待地想回到他们身边。 我这样做只是因为我想尽快成为一名开发人员(请参阅下面的动机),但是即使您不像我那样匆忙,您也可能会发现自己花了很多时间去做,甚至尽管它们很有趣而且很不错,但要占用您太多时间。

You will have to prioritize and make hard choices.

动机 (Motivation)

I had a very strong motivator which was becoming a developer and moving to Europe. This was my goal for a long, long time and I reached the point where I was getting frustrated that I wasn’t getting it. All my friends left town, I have virtually no family here, I felt isolated and wanted to leave.

我有一个非常强大的动力,他正在成为开发人员并搬到欧洲。 这是我很长一段时间以来的目标,但我感到沮丧的是,我没有做到这一点。 我所有的朋友都离开了城镇,我在这里几乎没有家人,我感到孤独,想离开。

That’s what pushed me. It felt like a fire beneath my feet, I felt I had no choice. You need a strong motivation to do radical changes. I don’t know about you, but I’m a “don’t fix what isn’t broken” kinda person, so it’s really hard to get me to do things just for the sake of doing them.

那就是推动我的原因。 感觉就像脚底下的火,我感到别无选择。 您需要强烈的动力来进行根本性的改变。 我不了解您,但我是一个“不解决未解决的问题”的人,因此很难让我去做某件事。

My hobbies are all very practical and productive: gardening, yoga, cooking. I need to have a reason to do them (I want free veggies, my back hurts, I’m hungry). If you’re anything like me, you will need to find a carrot to keep you going.

我的爱好非常实用且富有成效:园艺,瑜伽,烹饪。 我需要有理由这样做(我想要免费的蔬菜,我的背痛,我饿了)。 如果您像我一样,就需要找到一根胡萝卜来继续前进。

Spend some time thinking about this, what is it exactly that you want to accomplish by finishing freeCodeCamp? What do you want to change or get in your personal life through it?

花一些时间思考一下,完成freeCodeCamp到底要完成什么? 您想通过它改变或改变自己的个人生活吗?

课程+补充资源 (The Curriculum + Supplemental resources)

The following are some of the supplemental resources I used on my freeCodeCamp journey. Bear in mind this is not an exhaustive list because I did tons of Googling, and that some of these courses are not free.

以下是我在freeCodeCamp旅程中使用的一些补充资源。 请记住,这并不是一个详尽的清单,因为我做了很多谷歌搜索,并且其中有些课程不是免费的。

Responsive Web Design: This was the part that I already had some experience with, so it was easy and fun. I used some supplemental resources, especially for Flexbox. My favorite place for this is Interneting is hard.

响应式Web设计:这是我已经有一定经验的部分,因此简单而有趣。 我使用了一些补充资源,尤其是对于Flexbox。 我最喜欢的地方是互联网

JavaScript Algorithms and Data structures: Once I got to the JavaScript modules I got hooked. Everything was super fun, I learned a lot and I was eager to put it into practice.

JavaScript算法和数据结构:一旦进入JavaScript模块,我就会着迷。 一切都超级有趣,我学到了很多东西,并且渴望将其付诸实践。

For this section I used books, mostly. I already had enough exercises with freeCodeCamp, but I needed more in the way of explanations. Beginning JS has tons of exercises as well.

在本节中,我主要使用书籍。 我已经使用freeCodeCamp进行了足够的练习,但是我需要更多的解释方式。 入门JS也有大量练习。

By the time I reached this section, I also joined 1 Million Women to Tech’s (1MWTT) Summer of Code program. I learned basic Python and basic to advanced JavaScript which helped a lot, especially with Promises.

当我到达本节时,我还加入了100万女性参加Tech (1MWTT)的“代码之夏”计划。 我学习了基本的Python和从基本到高级JavaScript,这很有帮助,尤其是Promises。

Learning Python also helped me reinforce some basic programming concepts. I seriously recommend that when you feel confident with JavaScript, you try a new language, just its basic concepts. You will be way more comfortable afterwards once you know how to do the same thing with different tools.

学习Python还帮助我加强了一些基本的编程概念。 我强烈建议您在对JavaScript充满信心时,尝试一种新语言,只是它的基本概念。 一旦您知道如何使用不同的工具来完成相同的事情,之后您就会更加舒适。

JavaScript Frameworks: This section was great too as it gave me a foundation in React and Redux. I had been already following a React course on Udemy, React 16.6 - The Complete Guide (incl. React Router & Redux).

JavaScript框架:本部分也很棒,因为它为我提供了React和Redux的基础。 我已经在Udemy学习了React课程, React 16.6- 完整指南(包括React Router和Redux)

I highly recommend this course and others by the same author. He’s incredibly thorough and his explanations are awesome. This was one of the few Udemy courses where I actually followed along the project that he makes: I normally watch the videos and apply the principles to whatever I’m working on.

我强烈推荐本课程及同一作者的其他课程。 他非常的透彻,解释也很棒。 这是我在他所做的项目中实际上遵循的少数Udemy课程之一:我通常观看视频并将原理应用到我正在从事的工作中。

On 1millionwomentotech we had a React week that was mostly React native and then I started playing around with it. By that time I also started working on my side project with my husband, which we decided was going to be a PWA with React.

在100万womentotech上,我们有一个React周,大部分是React本机的,然后我开始尝试它。 到那时,我还开始与丈夫一起进行我的副项目,我们决定与React一起成为PWA。

I cannot stress how important it is to build something of your own from scratch. I have learned way more in a couple weeks building our app than I have learned with any course or tutorial.

我不能强调从头开始构建自己的东西有多么重要。 与开发任何应用程序或教程相比,我在构建应用程序的几周内学到的东西更多。

APIs and Microservices: This section was a big revelation for me and changed everything. Up until that module I was certain I wanted to be a front-end developer, but after learning Node.js I started thinking about being a back-end or Full Stack developer. Building APIs is just so much fun and you see results so quickly. I started building my first small Full Stack projects and I got very excited.

API和微服务:这部分对我来说是一个很大的启示,它改变了一切。 在确定该模块之前,我确定要成为一名前端开发人员,但是在学习Node.js之后,我开始考虑成为后端或Full Stack开发人员。 构建API非常有趣,您很快就会看到结果。 我开始构建我的第一个小型全栈项目,我感到非常兴奋。

Some of the resources I used:


During this time I was also volunteering for “1MWTT” and I was requested to build a Probot app for on-boarding volunteers with Node. This also gave me some practice with Node, which was great fun.

在此期间,我还自愿参加了“ 1MWTT”活动,并被要求为Node的入职志愿者构建Probot应用。 这也给了我一些关于Node的练习,这很有趣。

QA and Information Security: This module was also an eye opener. Up until then I had never ever written a single test in my life. Now I love writing tests, and I even got super interested in Test Driven Development.

质量检查和信息安全:该模块也大开眼界。 直到那时,我还从未写过一个测试。 现在,我喜欢编写测试,甚至对测试驱动开发产生了超级兴趣。

I mostly used the docs for this section but then I decided to test my front-end as well, and I found this amazing course on Udemy that I cannot recommend enough. The instructor is by far the best instructor I’ve ever seen on Udemy. I cannot wait to consume whatever other courses she releases in the future.

我主要在本节中使用文档,但是后来我决定也测试我的前端,而且我发现关于Udemy的这门令人惊讶的课程值得我推荐。 到目前为止,该老师是我在Udemy上见过的最好的老师。 我迫不及待地想学习她将来发布的其他课程。

- Chai docs

- 柴文档

- React Testing with Jest and Enzyme

- 使用Jest和酶进行React测试

Data Visualization with D3: This was the hardest certificate, hands down. The explanations were good, but once you get to the projects you find out that the challenges only cover the first project, and you’re kinda on your own for the rest. And there aren’t a ton of good resources online. I mainly read the docs and used tutorials. Here are the resources that finally got me through this certification:

使用D3进行数据可视化:这是最难的证书。 解释很好,但是一旦进入项目,您会发现挑战仅涵盖第一个项目,其余部分则由您自己承担。 而且网上没有大量的好资源。 我主要阅读文档和使用过的教程。 以下是最终使我通过此认证的资源:

- D3.js Tutorials by d3Vienno


- D3 documentation


完成课程的提示 (Tips to finish the curriculum)

To sum up, these are the things that helped me the most in accomplishing my goal of finishing the curriculum:


  • Use the curriculum as a roadmap, but supplement with other resources

  • Don’t get stuck for long: ask questions, Google, pair-program.

  • Set realistic goals for each day and week. Don’t beat yourself up if one week you’re slower: life happens. Don’t let it throw you off-course.

    为每天和每周设定切合实际的目标。 如果一个星期慢一点,就不要打败自己:生活会发生。 不要让它偏离路线。
  • Keep your motivation in mind: it’s what will push you through the tough days.

  • Prioritize: you will have to cut down on the time you spend doing other things.

  • Don’t forget to take days off. They are vital to the learning process. And get enough sleep!

    别忘了请假。 它们对于学习过程至关重要。 并获得充足的睡眠!

After freeCodeCamp, I felt a bit lost. This was the roadmap that guided me through my journey from teacher to developer.

使用freeCodeCamp之后,我感到有些失落。 这是指导我完成从教师到开发人员的旅程的路线图。

After a few days of reflection and planning, I devoted myself to my side project which I’m building with my husband. We’re learning and having fun, and we’re very excited about it.

经过几天的思考和计划,我致力于与丈夫一起建立的辅助项目。 我们正在学习并很有趣,对此我们感到非常兴奋。

And yes, I did get a job offer right after finishing the curriculum, but more on that on an upcoming article.

是的,在完成课程后,我确实获得了工作机会 ,但是在下一篇文章中会提供更多信息。

All in all, I couldn’t have learned all that I have learned so quickly had it not been for freeCodeCamp and I’m extremely grateful to everyone who makes such a wonderful project possible.


If you feel the same and are able to give back, please consider donating to freeCodeCamp here.


翻译自: https://www.freecodecamp.org/news/how-i-finished-the-entire-freecodecamp-curriculum-in-9-months-while-working-full-time-f3b10d04e02e/


  • 0
  • 0
  • 0


  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
钱包余额 0