フルタイムで働きながら、freeCodeCampカリキュラム全体を9か月で完了した方法

昨年、私は教師としてフルタイムで働きながら、freeCodeCampカリキュラム全体を終了しました。この記事では、私がこれをどのように行ったかについて概説します。特に、どのように時間を整理し、どのような補足資料を使用したか。

バックグラウンド

まず、裏話。私はコーディングに完全に慣れていませんでした。私は小さなハイテク企業で育ちました。

父は私が生まれる前に自分の会社を設立しました。そこでは、コンピューターの修理、他社のインターネット接続とネットワークのセットアップ、コンピューターコースの指導、会社の管理アプリケーションの構築など、テクノロジー内でさまざまな活動を行っていました。それは小さな町だったので、彼らは基本的に町全体の頼りになる「技術者」でした。

会社の事務所は私たちの家にあったので、私は文字通りコンピューターとそれを好きな人たちの間で育ちました。私は子供の頃からVisualBasicをいじり始め(会社の人の1人が使い方を教えてくれました)、自由な時間をすべてオンラインで過ごし、仲間のオタクとチャットしました。

私が12歳の頃、それらのオタクの1人がWeb開発マニュアル(基本的にHTMLを扱う巨大な.txtファイル)を私に電子メールで送信し、それを使用して独自のファンサイトを構築しました。それはそれらのクールな訪問カウンターの1つさえ持っていました。

私はそれをGeocitiesでホストし、無料の短縮URLを取得し、YahooとAltaVistaにリストしました(これらは当時最大のものでした)。

その後、人生は起こり、状況がより「現実的な」アプローチを要求したので、私はプログラマーになるという考えを完全に諦めました。今は詳しくは説明しませんが、基本的には勉強をあきらめて就職しなければなりませんでした。

私は自分の人生を生き続けました。お父さんのクライアントのためにたまにウェブサイトを作って、やがて英語を教え始めることにしました。それは私にとって簡単なことで、基本的にウェブ開発のことをすべて忘れていました。2016年までです。

転職を決意したきっかけ

私は教えるのが大好きです。それはやりがいのある職業で、面白くて楽しいです。しかし、それには欠点があります。最初はすべてが挑戦のように感じましたが、何年もやってみると、目的がないと感じ始めました。私はもう成長も学習もしていませんでした。

私は立ち往生していた。私の仕事のように、毎年同じ年でした。私はちょうど動きを経験していました。それはまた、移転する機会をあまり提供しませんでした。それは後で私にとって非常に重要になったものです。

2013年に夫に会い、翌年には全く別のブログ投稿であるヨーロッパへの3ヶ月のバックパッキング旅行に行きましたが、基本的には非常に低予算で素晴らしい経験をしました。私たちはヨーロッパが大好きで、また長い旅に戻ることにしました。

時が経ち、私たちは他のことをしました、そしてそれから私はCodecademyを見つけてそれで遊んで、そしてフルタイムの開発者になるという考えをもてあそび始めました。HTMLとCSSだけで、JavaScriptを使わずにWebサイトを構築した経験はすでにあります。私はオンラインでたくさんのサクセスストーリーを読んでいましたが、それでもそれが本当のキャリアだとは思っていませんでした。

その間、私たちは次の長旅を計画し、お金を節約し、計画を立てていました。私はますますフリーランスの翻訳者として働き、私のキャリアに深く関わり、小説や詩のようなクールなものを翻訳していました。2017年が来て、今回も2ヶ月間ヨーロッパに行きました。

そこで私たちはたくさんの開発者に会いました。クレイジーでした。私たちが出会ったすべてのカウチサーファーは、ソフトウェア製品マネージャー、開発者、テスターなど、何らかの形でITに携わっているようでした。彼らは皆、私たちがテクノロジーに参入することを奨励しました。その時までに私たちはヨーロッパに引っ越したいとすでに決心していたので、多くの人が私たちにこう言いました。ここでは開発者の需要があり、多くの開発者が必要です。」

旅行が終わる前に、私たちは故郷の近くに新しく設立された工科大学で2年間の技術証明書にサインアップすることを決定しました。プログラムは主にJavaだったので、戻ってきたときにCouseraでJavaコースを開始しました。最初のモジュールは実際にはJavaScriptコースだったので、実際にはすぐにJavaScriptに夢中になりました。

JavaScriptを学びながら、2018年3月の学年が始まるのを待ちました。Uniのスポットは50か所しかなかったので、事前に熱心に学びました。私たちは行き、テストを受け、コースに合格し、そして彼らが決定するまで待たなければなりませんでした。すべての候補者の中で最高の点数を獲得しましたが、それらの点数は違いがありませんでした。スポットは抽選システムを介して割り当てられます。夫が入ってきて、私は取り残されました。

彼は自分で学ぶことを好むと決めました。彼はJavaScriptに夢中になっていたので、Javaにはもうそれほど興味がなかったので、私たちは自分で学び始めました。

私たちはCodecademyから始めましたが、それは私たちにとってあまりにも手持ちでした(私たちはプレミアムアカウントを持っていませんでした)。どこかでfreeCodeCampについて読んだ。そして、最初は非常にゆっくりと開始しました(最初の証明書を取得するのに数か月かかりましたが、途中でカリキュラムが変更され、ラップトップを落とし、修理する必要がありました)。夏休みが終わり、フルタイムで仕事に戻った後、大変なことになりました。

フルタイムで働き、freeCodeCampをフルスピードで実行する

それは簡単ではありませんでした、私は嘘をつきません。それは私の友人や知人のほとんどが私の近くに住んでいないのを助けました、そして私は多くの娯楽の機会を提供しない小さな町に住んでいます。その意味で、プログラミングは命の恩人でした。私は何か楽しいことをしました、そしてそれは私がそれで何時間もの退屈を殺すことができたので中毒性がありました。

ですから、私がメンタルワーク(教育と勉強)に費やした時間に対処するとき、それは大いに役立ちました。

最初の証明書は、私が大学に入るのを待っていたため、そして学年の最初の3か月間1日10時間働いていたため、数か月かかりました。

残念ながら、仕事を辞めてフルタイムで勉強することはできませんでした。請求書を支払う必要があったため、次の3つの点で本当に上手にならなければなりませんでした。

  1. 時間管理
  2. 規律
  3. 組織

時間管理

私は午前7時に仕事を始めたので、ほとんどの日は午前4時30分に起き始めました。私はfreeCodeCampチャレンジとコーヒーで一日を始めました。現在取り組んでいることに応じて、本を読んだり、他のチュートリアルを行ったりすることもありました。昼休みや仕事帰りにも勉強しましたが、仕事の関係で平日はあまり生産的ではなかったということに気づきました。そのため、その週の間、私は主に短いチャレンジや読書などを行いました。そして、私は週末、休日、そして自由時間にプロジェクトに取り組みました。

30分あれば30分読みます。15歳の場合、15分間勉強しました。私は一日の自由な瞬間をすべて勉強に費やしました。

日曜日は、ほとんどの食事を1週間準備するので、料理に時間を費やす必要がなく、不健康なものを食べてしまうこともありませんでした。また、その週の仕事に必要なものをすべて計画して集めたので、通常の労働時間以外に余分な時間を費やす必要はありませんでした。

幸い6月以降、勤務時間が10-12時間から8時間に短縮されたので、今は通常のスケジュールで仕事をしていて、ペースを上げ始めました。

規律

気分が悪い日でも勉強しなければなりません。ここでモチベーションも大きな役割を果たしますが、規律は重要です。特に、あなたが私のようで、ソーシャルメディアや猫の動画に気を取られている場合はなおさらです。

オンラインで記事を読みたいという誘惑と戦うために私があなたに与えることができる最高の秘訣はこれです:あなたが「飛行機はどのように飛ぶのか」のような頭の中で質問を思いついたら。(これは通常、私を夢中にさせ、30分間私を吸い込むタイプの質問です)、どこかにそれを書き留めて、あなたがしていることを終えた後にあなたがそれについてすべて読むことができるとあなた自身に約束してください。

99%の確率で、もう気になりません。気が散りたいので、これらの質問が脳に現れるからです。押し通すと、あなたはそれを打ち負かすでしょう。

規律のもう一つの側面は、他のものよりも研究を選択しなければならないことです。これはそれほど楽しい部分ではありません。勉強をするために楽しんだことはたくさんあきらめなければならず、また戻ってくるのが待ちきれません。できるだけ早く開発者になりたいという理由だけでやりましたが(下記のモチベーションを参照)、私のように急いでいなくても、それを行うのに多くの時間を費やしていることに気付くかもしれません。彼らは楽しくて素敵ですが、あなたの時間の多くを費やしてください。

優先順位を付けて難しい選択をする必要があります。

動機

私には非常に強い動機があり、それは開発者になり、ヨーロッパに移りました。これが長い間私の目標でしたが、それが得られないことに不満を感じるようになりました。私の友達はみんな町を出ました。ここには家族がほとんどいません。孤立していると感じて、去りたいと思いました。

それが私を後押ししたものです。足元が火のようで、仕方がないと感じました。根本的な変化を起こすには強いモチベーションが必要です。あなたのことはわかりませんが、私は「壊れていないものを直さない」ような人なので、それをするためだけにやらせるのは本当に難しいです。

私の趣味はすべて非常に実用的で生産的です:ガーデニング、ヨガ、料理。私はそれらをする理由を持っている必要があります(私は無料の野菜が欲しい、背中が痛い、私は空腹です)。あなたが私のようなものなら、あなたはあなたを続けるためにニンジンを見つける必要があるでしょう。

これについて考えて時間をかけてください。freeCodeCampを終了することで達成したいことは正確には何ですか?あなたはそれを通してあなたの個人的な生活の中で何を変えたい、または取り入れたいですか?

カリキュラム+補足リソース

以下は、freeCodeCampの旅で使用した補足リソースの一部です。私はグーグルをたくさんやったので、これは完全なリストではないこと、そしてこれらのコースのいくつかは無料ではないことを覚えておいてください。

レスポンシブウェブデザイン:これは私がすでに経験した部分だったので、簡単で楽しいものでした。特にFlexboxについては、いくつかの補足リソースを使用しました。これのための私のお気に入りの場所はインターネットが難しいです。

JavaScriptのアルゴリズムとデータ構造: JavaScriptモジュールにたどり着くと、夢中になりました。すべてがとても楽しかったです、私はたくさんのことを学びました、そして私はそれを実践することに熱心でした。

このセクションでは、主に本を使用しました。私はすでにfreeCodeCampで十分な演習を行いましたが、説明の方法でもっと必要でした。JSを始めるには、たくさんの演習もあります。

  • JavaScript第5版の開始
  • あなたはJSを知らない
  • JavaScript、HTML、CSSを使用したプログラミング基盤
  • JavaScriptドキュメント

このセクションに到達するまでに、100万人のWomen to Tech(1MWTT)のSummer ofCodeプログラムにも参加しました。私は基本的なPythonと基本的なJavaScriptから高度なJavaScriptを学び、特にPromisesで大いに役立ちました。

Pythonを学ぶことは、いくつかの基本的なプログラミングの概念を強化するのにも役立ちました。JavaScriptに自信があるときは、基本的な概念だけでなく、新しい言語を試すことを強くお勧めします。異なるツールで同じことを行う方法を知ったら、後でずっと快適になります。

JavaScriptフレームワーク:このセクションも、ReactとReduxの基礎を与えてくれたので素晴らしかったです。私はすでにUdemyのReactコース、React 16.6-完全ガイド(ReactルーターとReduxを含む)をフォローしていました。

このコースと同じ著者の他のコースを強くお勧めします。彼は信じられないほど徹底していて、彼の説明は素晴らしいです。これは、彼が作成したプロジェクトに沿って実際にフォローした数少ないUdemyコースの1つでした。私は通常、ビデオを見て、作業しているものすべてに原則を適用します。

100万womentotechでは、ほとんどがReactネイティブであるReactウィークがあり、それから私はそれで遊んでいました。その時までに、私は夫と一緒にサイドプロジェクトにも取り組み始めました。それは、Reactを使用したPWAになることを決定しました。

自分で何かを一から作ることがいかに重要かは強調できません。私は、コースやチュートリアルで学んだよりも、アプリの構築で2週間ではるかに多くのことを学びました。

APIとマイクロサービス:このセクションは私にとって大きな啓示であり、すべてを変えました。そのモジュールまでは、フロントエンド開発者になりたいと確信していましたが、Node.jsを学んだ後、バックエンドまたはフルスタック開発者になることを考え始めました。APIの構築はとても楽しく、結果をすぐに確認できます。私は最初の小さなフルスタックプロジェクトの構築を開始し、非常に興奮しました。

私が使用したリソースのいくつか:

  • 完全なNode.js開発者コース(第2版)
  • Expressを使用したバックエンド開発のNodeGirls入門
  • ノードドキュメント
  • エクスプレスドキュメント
  • NodeSchool
  • Node.jsの紹介
  • Node.js、v2でのRESTおよびGraphQL APIデザイン(ExpressおよびMongoDBを使用)

この間、私は「1MWTT」のボランティアもしていて、Nodeを使用してボランティアをオンボーディングするためのProbotアプリを作成するように依頼されました。これはまた私にノードでのいくつかの練習を与えました、それはとても楽しかったです。

QAと情報セキュリティ:このモジュールは目を見張るものでもありました。それまで、私は人生で一度もテストを書いたことがありませんでした。今ではテストを書くのが大好きで、テスト駆動開発にも非常に興味を持っています。

私は主にこのセクションのドキュメントを使用しましたが、フロントエンドもテストすることにしました。Udemyでこのすばらしいコースを見つけたので、十分にお勧めできません。インストラクターは、私がUdemyで見た中で断然最高のインストラクターです。彼女が将来リリースする他のコースをすべて消費するのが待ちきれません。

-チャイドキュメント

-JestとEnzymeを使用したReactテスト

D3によるデータの視覚化:これは最も難しい証明書でした。説明は良かったのですが、プロジェクトにたどり着くと、課題は最初のプロジェクトしかカバーしていないことがわかり、残りは自分でやる気になります。そして、オンラインにはたくさんの優れたリソースがありません。私は主にドキュメントを読み、チュートリアルを使用しました。この認定を最終的に取得したリソースは次のとおりです。

-d3ViennoによるD3.jsチュートリアル

-D3ドキュメント

カリキュラムを終了するためのヒント

要約すると、これらはカリキュラムを終了するという私の目標を達成するのに最も役立ったものです。

  • カリキュラムをロードマップとして使用しますが、他のリソースを補足します
  • 長い間立ち往生しないでください:質問をする、グーグル、ペアプログラム。
  • 毎日と毎週の現実的な目標を設定します。1週間遅くなっても、自分を殴らないでください。人生は起こります。コースから外れてはいけません。
  • あなたのモチベーションを覚えておいてください:それはあなたを困難な日々に追いやるでしょう。
  • 優先順位を付ける:他のことをするために費やす時間を削減する必要があります。
  • 休日を取ることを忘れないでください。それらは学習プロセスに不可欠です。そして、十分な睡眠をとってください!

freeCodeCampの後、私は少し迷子になりました。これが、教師から開発者への道のりを案内してくれたロードマップでした。

数日間の振り返りと計画の後、私は夫と一緒に構築しているサイドプロジェクトに専念しました。私たちは学び、楽しんでいます、そして私たちはそれについて非常に興奮しています。

はい、カリキュラムを終えた直後に求人を受け取りましたが、それについては次の記事で詳しく説明します。

全体として、freeCodeCampがなければ、これほど早く学んだことをすべて学ぶことはできませんでした。このような素晴らしいプロジェクトを可能にしてくれたすべての人に非常に感謝しています。

同じように感じて還元できる場合は、こちらからfreeCodeCampに寄付することを検討してください。