独自の個人学習カリキュラムの構築
公開: 2022-03-102019年3月にブートキャンプを完了した後、私は独立した学習を継続し、うまくいけばそれらのとらえどころのないジュニア開発者の仕事の1つを獲得するために選択しなければならなかったフレームワーク、ライブラリ、言語、およびコースの選択に圧倒されました。 私が話をしたほとんどの人は、何が重要で追求する価値があるかについて異なる意見を持っていましたが、彼らのほとんどは、彼らが何であるかを実際に特定することなく、「基礎」を学ぶことが重要であることに同意しました。
去年の夏に最初の開発者の仕事に就いた後でも、この新しい役割の要求を満たすために定期的にカリキュラム外の学習をしなければならないことがすぐに明らかになりました。 しばらくの間、Udemyのコース間を行き来しましたが、学習している間、自分で問題解決スキルを身に付けることなく、インストラクターをコピーするという動きを経験することがよくありました。 新しい素材を実際に把握するには、自分で小さなスクラッチパッドのサイドプロジェクトを作成する必要がありました。 だから今、私は自分の学習スタイルが何であるかを知った。コースや職場でのアイデアへの最初の露出、概念を固めるためのプロジェクトのスケッチを作成し、可能であればこの新しい学習を日常業務で使用する。
私たちのほとんどは、短期的に最もよく学ぶ方法についてしっかりした(苦労して得た場合)感覚を持っていますが、それは長期的な課外学習の構造にどのように変換されますか? この問題を自分でどのように解決したかを説明します。 これらの戦略は、ソフトウェア開発に不慣れな人でも、熟練したエンジニアでも、さまざまな経験で機能します。
あなた自身の個人的なカリキュラム
これが私の学習カリキュラムの作り方です。 時間に限りがあり、持続的で集中的な作業を犠牲にして衝動性のそよ風にさらされる傾向がある人として、私はこの方法が私の脳と一般的なリズムに最も適合していることを発見しました。 もちろん、マイレージは異なる場合があります。
「ドリームジョブ」の役割仕様を使用して目標を設定する
このステップは、周囲の騒音をすべて消し去り、今後5年ほどで自分のキャリアに実際に役立つことに集中するのに非常に役立ちます。 (フロントエンドの開発者として、私はRustの学習にグーグーの目を向けていることに気づきました。魅力的ですが、それは必ずしも優先事項ではありません。)
自分で巨大なテクノロジー企業で働きたくないかもしれませんが、大企業は業界全体の方向性を決める傾向があるため、採用時に何を優先するかを検討する価値があります。 いつか行きたい非邪悪な会社の小さな買い物リストがあり、それらはすべて同じ優先順位を広く共有しています:セマンティックHTML / CSS、優れたバニラJSスキル、アクセシビリティ、そして人気のあるフレームワーク。 いつかRustを学ぶつもりですが、今のところ、これらのスキルに取り組むことが私の最優先事項です。
市場に出回っている幅広い仕事を手に入れるために、Indeed、Guardian JobsとLinkedInを好む傾向がありますが、Twitter([興味のある会社名]と「仕事」を検索するだけ)も同様に役立ち、定期的に監視します数ヶ月ごとにあなたの好きな数社の「キャリア」ページで。 @jesslynnroseとしてツイートするJessicaRoseは、他の場所ではあまり公表されていないこともある「非悪意のある企業」での求人の長いTwitterスレッドを頻繁に書いています。
いくつかの仕事の仕様を集めたら、それらの間の共通点を見つけて、それらを書き留めてみてください。 次のステップで使用します。
必要なスキルを開発する機会を特定する
私が言及したそのリストを覚えていますか? 2列に分割します。 1列目:日常業務で取り組むことができること。 2列目:自分の時間に見る必要があるもの。
職場での学習
あなたの日課でカバーされているあなたのリストの事柄はあなたが最も心配する必要のない事柄です。 いずれにせよ、これらの分野でのあなたのスキルは時間とともに向上します。 さまざまなレベルの年功序列と専門性を持つ多くの開発者が配置された巨大な組織で働く人もいます。率直に言って、それだけの価値があることを搾り出すことをお勧めします。
アクセシビリティがあなたの知識のギャップであり、改善したい場合は、神経を飲み込んで、チャット/ズームコーヒーのスキルを持っている職場の誰かにアプローチしてみてください。 コーディングの問題ではないものを「ペアリング」できることを理解した上で、それらとペアリングしてみてください。 彼らがどこで彼らの情報を見つけているか、彼らがどのTwitterアカウント、ブログ、ポッドキャストに追いついているか、そして彼らがどのように彼ら自身の新しい開発について最新であるかについて彼らとチャットしてください。
在宅学習
1年前に9週間のブートキャンプで業界に参入した、どちらもコンピュータサイエンスに関係のない、2つのキャリアを持つ人として、私はコンピュータサイエンスについて基本的な理解を持っており、多くの人が同じ状況にある可能性があります。
私は、コンピュータサイエンスの原則とより具体的な学習に関する非常によく設計されたコースに関して、フロントエンドマスターが非常に貴重であることに気づきました。 個人的には、フロントエンドマスターに関するWill Sentanceのコースは、バニラJavaScriptに関して、その方法と理由を理解するのに役立つと思いました。 同様に、ブライアンホルトの「5時間のコンピュータサイエンスの4学期」コースでは、技術面接で発生する可能性のある種類の概念に学生をさらします。
フロントエンドマスターには月額のサブスクリプション料金があり、それだけの価値はありますが、すばらしい無料のリソースがたくさんあります。 まだ登録していない人は、CS50に登録することを強くお勧めします。 ハーバード大学が運営するこのコースは、C、Python、JavaScript、および倫理と基本的なデータ構造に関するモジュールを紹介する、すばらしい無料のリソースです。 講義はとても楽しいです、そしてあなたは時間の制約なしであなたが好きなだけコースをすることができます。
同様に、FreeCodeCampは、独学の開発者と既存のスキルを強化したい開発者の両方にとって重要な出発点としての地位を十分に獲得しています。Udemyでの興味に関連するコースを探すことをお勧めします(大幅な割引がないUdemyコースを購入すると、数週間に1回の売り上げがあり、割引コードが常に浮かんでいます)。
私の特にお気に入りは、AndrewMeadによるCompleteNode.js開発者コースです。ColtSteeleのコースが大好きです(アルゴリズムとデータ構造については特に優れたコースがあり、アルゴリズムが多い方に役立つコースがあります。技術面接スペクトルの)。 Smashing Magazineはまた、スキルの向上に役立つさまざまなテーマに関するオンラインワークショップを頻繁に開催しています。
ご存知かもしれませんが、テクノロジーで人々に仕事をさせるスキルは、人々が仕事で使用する必要のあるスキルとは異なることがよくあります。 これらのコースでは、面接に機敏に対応しながらコンピュータサイエンスの基礎を学び、さまざまなデータ構造の簡潔な合計とその長所と短所で、潜在的に押しつぶされるような沈黙を埋めるのに役立ちます。 重要なのは、これらすべてのコースを実施することではなく、目標とする職務仕様に適合するコースを特定して組み合わせることにあります。
Twitterは、コードの問題についてチャットする人を見つけるのに非常に役立つことがわかりました。 去年の春、私はAndroid Studioで発生した問題について空虚に叫び、10分も経たないうちにAndroid開発者とビデオ通話をしていることに驚きました。それだけでなく、彼は喜んで助けてくれたようです。
開発者コミュニティの優しさを過小評価しないでください。また、必要なときに助けを求めることを躊躇しないでください。また、同じような世界の人々と話をすることができる状況に身を置くために最善を尽くしてください。テクノロジー業界のより広い文脈。 #CodeNewbieハッシュタグは、助けが必要な場合に便利なものです。
目標とタイムテーブルを設定する
今度は、自主的な学習目標をいくつかの目標に結び付けるときです。 基準を高く設定しすぎないようにしてください。1週間でUdemyコースを完了するのが非現実的である場合は、人生の他の重要なことを犠牲にして目標を達成するために、自分自身を強く押し込もうとしないでください。または目標を達成できず、失敗のように感じさせます。 やる気を維持するために穏やかな圧力をかけながら、自分を軌道に乗せることを目的としていますが、圧倒されてやる気を失うほどではありません。
朝の人として、私は一日の仕事が午前9時30分に始まる前の時間に勉強に集中することが最も良いと感じています。 これを念頭に置いて、すばらしい時間追跡ツールであるTogglを使用して、週に午前7時から午前9時までコードの学習に費やしています。 Togglを使うことは私にとって非常に重要でした。なぜなら、いくらやっても、それだけでは不十分だと感じることがよくあるからです。 しかし、Togglの助けを借りて、私は週に最低4時間(必要に応じて夕方と週末に余分に)行っていることを確実に確認でき、ラップトップから離れて休むことができるようになりました。自分の基準で許容できる時間を稼いだことを知っていれば、時間は過ぎて安全でした。
進捗状況を測定可能にする
あなたの平均的な週のスケジュールについて考えて、あなたが途切れることのない焦点を確保する最高のチャンスに立つ日のうちのある時間をブロックするようにしてください。 あなたの何人かは介護者であるか、さもなければ非常に忙しいでしょう、そしてあなたがそれを得ることができるときそしてあなたがそれを得ることができるときあなたがあなたの時間をとることはおそらくあなたにとってより良いでしょう。
例を見るのに役立つ場合、私の個人的なターゲットは次のとおりです。
- 2月末までにNode.jsUdemyコースを完了してください。
- 毎日仕事の前にプログラムを実行する30分を行います。
最初のターゲットセットについては注意を怠ってください。 必要に応じていつでもプレッシャーを上げることができますが、いくつか成功したら、そうすることをお勧めします。 軌道に乗るために何をする必要があるかに本当に集中できるように、精神的および肉体的に余裕があることを確認してください。
メンター、バディ、またはその両方を見つけましょう!
メンターシップは、ほとんどの開発者がスキルを向上させるために推奨するものですが、私の個人的な経験から、あなたを導く時間のある人を見つけることは、特に今は挑戦です。 Coding Coachなどのリソースが役立ちます。また、交流会やソーシャルメディアで夢のメンターを見つけた開発者もいますが、完璧に一致するものを見つけるのは簡単です。
ThinkfulのインストラクショナルデザイナーであるFalinaLothamer(Massive Open Online Course(略してMOOC))に、専門家がどのように独立した学習に取り組むかについて話を聞きました。 彼女は、メンターを見つけて協力することが、開発者としてのスキルを向上させるための鍵であることを非常に明確に示しました。
「何かをレイアウトする必要がある場合は、そのメンターに「ここに焦点を当てるべきだと思います」と言ってもらい、彼らが仕事で何をしているのかを示し、あなたの地域の将来について意見を共有します。の技術は大いに役立つでしょう。 業界には、そのメンターの役割を果たし、誰かが彼らのためにしたことを他の人のために喜んでやってくれる人がたくさんいると思います。」
いくつかのUdemyコースでレンガの壁にぶつかったことへの不満を表明した後、情報を保持していることに気づき、他の分野や他のプロジェクトにそれを適用するために学んだことに必ずしも自信を持っていなかった、Fallinaは他の人(理想的にはメンターですが、あなたと同じくらいの専門的経験を持つ別の開発者)に説明責任を負うことが不可欠であることを明確にします。
「開発者として、あなたは自分が知っていることと、どのように学んでいるのかを示す機会を探す必要があります。 あなたが直面している課題について他の誰かに話しかけてもらい、誰かと話し合って「私がやろうとしていることは複雑です。私はひどい開発者ではありません」と気付くためのスペースがあります。検証は膨大なものになる可能性があります。」
上級開発者を見つけられない場合は、Fallinaのアドバイスを受けて、同じレベルの業界の他の誰かに説明責任を負わせることをお勧めします。 開発者が団結してストーリーを共有することで、この仕事は大変であり、いつか仕事をこなすのに苦労しているエンジニアは彼らだけではないことがわかります。 この仕事は非常に感情的に負担になる可能性があり、何もうまくいかないように見える当時は、仲間と一緒に苦労することは非常に貴重です。
スキルレベルと専門分野に応じて、インタビューケーキ、プログラムの実行、または関連するUdemyコースに登録し、バディとほぼ同時に同じエクササイズを完了することをお勧めします。 何が簡単で、どこに倒れたかについて話し合い、ずっと連絡を取り合ってください。 あなたは確かにこれらのことを一人で行うことができますが、コミュニティの感覚を育むことはあなたが仕事を続けるのを助け、あなたがそれに固執する可能性を高めます。
スクラッチパッドアプリケーションのケース
仕事に加えて大規模なサイドプロジェクトに注ぐ時間とエネルギーがあれば、より多くの力が得られますが、そうするというプレッシャーはやや負担になります。 代わりに、私はスクラッチパッドプロジェクトのファンです。主な理由は、一度にたくさんの新しいアイデアをフォローすることで本当に恩恵を受け、個人的なプロジェクトにすぐに無関心になり、私を追いやる時間のプレッシャーがないからです。
サイドプロジェクトがAPI呼び出しを行い、情報を魅力的な方法で表示し、プロセスから何かを学び、プロジェクトをより大きなアプリケーションに構築することが、神経学、思いやりのあるスケジュールに合わない場合、またはあなたの好み、そしてあなた自身に休憩を与えます。 スケッチをするためにアーティストを嘲笑することはありません。また、プロセスから何かを得ている限り、サイドプロジェクトが半ば形のミュータントである場合でも、気分が悪くなることはありません。 私のGitHubリポジトリは、過ぎ去った優れたアイデアのエレジーであり、私はそれで平和を築きました。
切り上げする
現在の世界の状況を考えると、私が最後になりたいのは、封鎖の生産性を要求する別の声です。 それはこれが何であるかではありません。 これらは、燃え尽き症候群や自分自身に過度のプレッシャーをかけることなく、時間をかけて学ぶ必要があるときに私のために働いた単なるステップです。 彼らがあなたのために働くなら、素晴らしい。 そうでなければ、心配はありません。 私たちは皆、自分のペースを持っています。
手順
- 仕事の仕様を使用して、主要なスキルを特定します。
- これらのスキルを、職場での学習と自分の時間での学習に分けてください。
- 明確で、測定可能で、現実的な目標を設定し、リズムを見つけたときにのみそれらをステップアップします。
- あなたがそれらの目標に責任を持つように、メンターまたはバディを見つけてください。
- リラックス! 乱雑な学習は、学習しないよりはましです。
役立つリソース
- Udemy
- インタビューケーキ
- CS50
- プログラムを実行する
- コーディングコーチ
- トグル
- #CodeNewbie
- スマッシングマグのオンラインワークショップ
- FreeCodeCamp
- フロントエンドマスター
- それはそう
- ガーディアンジョブズ
幸運を!