コーディングを学ぶときに犯した間違い

Unsplashのニコライ・タラシェンコによる写真

時間をさかのぼることができれば、間違ったことに取り組む無数の時間、日、月から自分を救うことができます。私が今知っていることを知っていると、コーディングを学ぶときに私が違ったやり方でやることがたくさんあります。この記事が時間を節約し、多くの初心者が犯す間違いを避けるのに役立つことを願っています。すべての人の経験は異なっており、これは一人(私)からの視点であることに留意してください。ただし、独学のプログラマーであり、この時点まではかなり成功したキャリアを持っていることを願っています。

コメントであなた自身の経験を共有し、この恐ろしい山に登ろうと最初に始めたとき、どこであなたが圧倒されたか覚えておいてください。始めたばかりの人に役立つかもしれません。

あなたは誰?

気になったら、読み進めてください。それ以外の場合は、次のセクションに進んでください。私は独学のプログラマーです。私はいくつかの大手ハイテク企業で働き始めたので、物事は私にとって非常にうまくいきました。昨年、私は状況を変えて、プログラミングの指導も始めました。現在、194か国から約80,000人のプログラマーに最新のプログラミングスキルを教えています。そのうちの何人かは、間違いなく聞いたことがある大規模なハイテク企業で働いています。また、数え切れないほどの友人が高価なコーディングブートキャンプを経験し、卒業後もまだ仕事をしていないのを見てきました(いくつかのチュートリアルやブートキャンプの主張とうそに非常にイライラさせられたことは認めざるを得ません)。私は決して最高のプログラマーではありませんが、少なくとも中程度の成功を独学で学んでいます。私については十分です。あなたの旅に役立つと思われるいくつかのレッスンを見てみましょう…

間違った教師/メンターを選択する

私が何年も前に学び始めたときと比較して、コードを学ぶためのオンラインリソースの数は指数関数的に増加しました。本当に質の高いコンテンツがいくつかあります。しかし、今では選択のパラドックスがあります。すべてを勉強することは不可能です。誰を信頼し、どのリソースを使用しますか?数え切れないほどのYoutubeビデオ、書籍、コーディングブートキャンプ、オンラインプログラム、Udemyコース、無料のCodeCampレッスンなどがあります。最新情報は何ですか?誰が実際に良いインストラクターであり、誰があなたを売ってお金を稼ぐためだけにそこにいますか?

何を学ぶ必要があるかわからないときは、オンラインで1人または2人の人から記事を読んで、次のことを決めるのは簡単です。

「はい! PHP、cPanelを学ぶ必要があります。また、30のプロジェクトを作成し、ポートフォリオに追加してから、Pythonと機械学習も学ぶ必要があります。今暑いそうです。ああ、それから仕事を得るためにすべてのフロントエンドフレームワーク(Vue、Angular、React)を見てみましょう。JavaScriptも学びましょう。みんなからすべてを勉強します。それから、ブロックチェーンのこともやります。いくつかのビデオをYouTubeにしましょう」

これは間違った考え方です。

すべてのコンテンツが同じように作成されるわけではありません。テクノロジーは常に進化しており、学習者を選択することは、成功するための最も重要な基準の1つです。インストラクターに従う、本を読む、またはコースを行うことに決めた場合は、その教材を教えている人の背景を必ず確認してください。

現在、プログラマーには大きな市場があり、多くの「教師」がいます(はい、私も含めて)。誰もがあなたの注意を引き付けようとし、「これが正しいやり方だ」と言っている。ただし、何を知る必要があるかわからない場合、どのようにこれを確認できますか?以下に簡単なチェックリストを示します。

  1. インストラクターはGithubでアクティブですか?彼らは彼らがあなたに教えているもので働いた歴史がありますか、それとも彼らはマーケティングが得意ですか?
  2. コンテンツが最後に更新されたのはいつですか?インストラクターはコースの更新に関与していますか?
  3. 彼らは(偽の証言だけでなく)成功した​​過去の学生を持っていますか?彼らと連絡を取って、彼らの経験について尋ねてもらえますか?
  4. 彼らが教えている役割でフィールドで働いていましたか(LinkedInプロファイルを使用してこれを確認できます)。彼らは現在、スキルを維持するために何をしていますか?それとも、長い間フィールドにいなかった生涯のコンテンツクリエーターですか?
  5. 彼らはあなたに愚かなプロジェクトを構築することを教えていますか? (いいえ、犬のデートアプリ、電卓、todoリストアプリは印象的ではありません)
  6. 彼らはブログを持っていますか?彼らのテクニカルライティングのようなもの/ビデオは何ですか?彼らは提供しているコンテンツを超えた信頼性を持っていますか?

適切な教師を選択してください。あなたの側の少しの研究は、あなたが間違った場所に時間を投資するのを防ぐことができます。

(私の意見では、これは最高のインストラクターであり、すべてのインストラクターはDavid J. Malanレベルの品質を目指して努力する必要があります。また、フロントエンドマスターのようなものは、インストラクターになるには、さらにデューデリジェンスを行う必要があります。)

最後に、すべてを教えることができるインストラクターは一人もいません。異なる視点や専門知識を考慮できるように、複数のインストラクターから学ぶことができます。

間違ったコース/リソースを選択する

上記の点と同様に、オンラインで学習するためのリソースや資料が不足することはありません。誰もがあなたの注意をつかもうとしています。しかし、ここに問題があります。どのコースを使用する必要があり、どの教材を学習する必要がありますか?すべてのリソースは異なります。最初の段階では、誰が真実を伝えているのか、どのコースが古く、どのコースが関連しているのかを判断するのは困難です。コースに飛び込む前に、これがあなたが興味を持っているタイプの仕事(つまり、Web開発、モバイル開発)であることを確認してください。これは、物事を行う現代的または正しい方法です。コースは最後に更新されましたか? 3歳ですか?テクノロジー業界は絶えず変化しているため、1年前のコースでもおそらく更新する必要があります。これは優れたリソースではないという意味ではありませんが、考慮する必要があります(それほど変わらないコンピューターサイエンスの基礎ではなく、Reactのようなライブラリを学習している場合はさらに当てはまります)。

すべての問題を解決し、あなたを雇用するリソースが1つもありません。学校で「成功」に関するコースが1つしかないのと同じです。さまざまなリソースを使用してナレッジツリーを作成しますが、デューデリジェンスを行い、適切なことを学んでください。素敵なチェックリストは次のとおりです。

  1. コースは更新されましたか?
  2. コースを終了した学生はいますか?
  3. このコースは、トレンドや仕事の要求に合わせて表示されますか?ここでこの記事で行ったようなトレンド分析、またはHNTrendsやStackOverflow Surveyのようなものを使用できます。
  4. このコースは、フィールドにいる人や生涯のインストラクターによって教えられていますか(上記のセクションを参照)?
  5. コースは、就職先の求人に表示されるコンテンツをカバーしていますか?
  6. 最初のいくつかのビデオを見てください。コースはきちんと構成されていて、コースの構造、概要、準備に多くの思考と作業が費やされているように見えますか?それとも、その場で作成されたものですか?

完璧なコースはありませんが、あなたの時間は貴重なものですので、あなたが正しいものにそれを費やしていることを確認してください。人気のあるリソースは、実際にはコンテンツの品質ではなく、マーケティングが行われているために人気があります。

一度にすべてを学ぼうとする

誤解しないでください。テクノロジースペクトル全体の相違点を理解することは良いことです。好奇心を持ち、できるだけ多くのことを学びたいと思うのは良いことです。しかし、3つのプログラミング言語を習得したい場合は…

ねえ、GoogleがGoを使用していると聞き、Pythonが機械学習に使用されていると聞きました。 WebアプリにもJavaScriptが必要です。 Python、Go、JavaScriptを学び、スーパースターになります!

あなたはそれを間違っています。

職歴がない場合は、1つの言語に固執し、その言語で作業します。採用されるのに十分なほど取得します。その言語でチームで作業を開始します。それが本当の学習の始まりです。実際のプロジェクトに取り組み始めるときです。

他の言語、ツール、またはフレームワークの学習を開始するのは、学習することには明確な利点があり、市場にニーズがあるためです。最初に本当にうまくやることを学びましょう(または、少なくとも、採用するのに十分なほど)。

ReactとAngularおよびVueを学習しようとしていて、職務経験がありませんか?おめでとうございます。3つのフロントエンドライブラリ/フレームワークを学んだだけで、1日の終わりには同じことを行い、データベースでインデックスを使用する理由を学ぶ時間はありませんでした。 1つを選んでそれを使い続けます。

集中してください!特定のことを行う1つの言語/ツールを学び、実際の経験を得るために採用を試みます。

完璧を目指して

完璧なプログラマーはいません。誰もが間違いを犯します。誰もが欠陥を持っています。私たちはみんなバグのあるソフトウェアを書いています。完全なコードはありません。怖がらないでください。あなたのプロジェクトが傑作になることはありません。とにかく2〜3年後にはおそらく時代遅れになるでしょう。コードがクリーンでなくても機能するものを構築するだけです。間違いは大丈夫であり、奨励されています。彼らは学ぶための最良の方法です。実際のところ、コードを習得した人でさえ完璧ではなく、悪いコードを書いています。

その山に登って頂上にたどり着くと、ここにいる全員が大人の体に閉じ込められた子供に過ぎないことに気付くでしょう。私たちは皆、できる限り最善を尽くしてコードを進めようとしています。一部の人々は、他の人よりもそれをよく隠しています。

ですから、はい、おそらくあなたは完璧を待つのをやめて、仕事に応募し始め、そのプロジェクトを出荷し、またはあなたが考えていたそのプロジェクトを始めるべきです。物事を行い、コードを出荷する人々は、常に待つ人々に勝ちます。

間違ったツールを選択する

プログラミングについて学び始め、React、GraphQL、Node.js、MongoDB、Storybook、React Hooks、AWSなどを学ぶ必要があることを読みます。ライブラリが何をするのか、なぜ人気があるのか​​を理解せずにライブラリの学習を始めます。あなたができる最悪のことは、それが解決する問題を理解せずに、あらゆるトレンドに飛び乗ることです。

React Hooks YEY! Reactでクラスコンポーネントを使用する必要はもうありません。すべてが関数です。私は今、すべてを機能的なコンポーネントに変換しています!

いや。再試行する。

なぜそれが良いのですか?それを友達に説明できない場合は、時流に乗る前にまずそれを学ぶべきです。 TypeScriptは静的に型付けされたJavaScriptのスーパーセットであり、コードのバグが少なくなりました!その場合、動的に型付けされた言語と厳密に型付けされた言語の違いをよく理解し、賛否両論を理解します。

完璧なソリューションはありません。

では、始めたばかりで何を学ぶべきかわからないときに、どのように適切なツールを選択しますか?この記事で1つの答えを確認できますが、デューデリジェンスを自分で行う必要があることに注意してください(ただし、おそらくJavaScriptから始める必要があります)。また、ほとんどのライブラリは時間とともに進化し、変化することを忘れないでください。何も一定ではないので、基礎を学ぶことに集中してください。

チュートリアル煉獄で泳ぐ

人々のコードを見て、YouTube、Udemy、またはその他のプラットフォームですべてのチュートリアルを終了しようとしないでください。独自のプロジェクトの構築を開始します。できる最善の学習は、実際のプロジェクトとチームで作業することです。自分に言っているYouTube動画を視聴している場合...

これらの5つのコースを見終わったら、すぐに仕事に応募し始めます!

あなたはそれを誤解している。

自分で物を作って…拡張してください。学ぶことは常に良いことですが、チュートリアルを続けて行っており、まだ仕事をしていない場合、または「トレンド」であるという理由以外で何かを学ぶ理由がある場合は、一時停止して振り返ります。あなたは物事を正しくすることは決してありません。ものを構築するだけです。コードはダメです。関係ありません

100本のYouTube動画を視聴することは誰にとっても印象的ではありません。誰でもできます。ほとんどの人がしていないことを構築する必要があります。

覚えておいてください:あなたは物事を構築するこれらのツールを学びます。結局のところ、プログラミングにより、実際の人々が使用する実際の物を構築するためのツールにアクセスできます。人々はあなたが知っているツールではなく、これらのことを気にします。サッカーで世界中のすべての動画を見ているようなものですが、実際には練習していません。あなたはサッカーのトライアウトに参加し、どの選手よりも多くのサッカーのビデオを見たことがあることをコーチに伝えます。誰も気にしない。

完了するまでに1日以上かかる独自のプロジェクトの構築を開始します。すぐにコーディングを学んでいる人の90%からすぐに目立つようになります。

ブートキャンプに行くべきですか?

99%の時間、答えはノーです。あなたが使うお金があり、あなたが話をして、信頼できるブートキャンプに成功した卒業生がいることを確認したら、ブートキャンプをします(はい、そこにいくつかの良いものがあります)。ただし、ブートキャンプが提供するものは、オンラインで見つけることができるものと同じであることに留意してください。こちらで詳細を読むことができますが、今日のあらゆる時代と同じように、良いブートキャンプと悪いブートキャンプがあります。何かに10,000ドル以上を費やしている場合は、望みどおりになっているかどうかを確認してください。ただし、ほとんどの場合、オンラインで独自のリソースを見つけることができ、これらの高価なブートキャンプは必要ありません。ブートキャンプの仕組みの性質により、実際には、オンラインリソースと比較して、コンテンツの適応と更新の柔軟性が低くなります。彼らが提供する利点の1つは、明確な構造(および登録費用が高すぎたための利害関係)とクラスメート(適切なオンラインコースとコミュニティオンラインをブートキャンプなしで達成できること)です。

ブートキャンプをすることは成功への確実なチケットではありません。あなたはまだ勤勉と規律が必要です。人生で持つ価値のあるもの、または十分に支払うスキルは、ハードワークを必要とします。なぜなら、定義により、獲得するのが難しく、才能を見つけるのが難しいからです。

リラックスしてそこに着きます

確かに、優れた開発者になるために必要なすべてのことを知る機会はないようです。いいでしょう誰もしません。すべてを知っており、すべてのコーディングの質問に答えることができる完璧なプログラマーのようなものはありません。技術は常に進化しています。これは、常に学びたい人のための道です。学ぶべきことがたくさんあり、すべてを学ぶのに十分な時間がない場合クラブへようこそ、あなたの乗車をお楽しみください。学習するための毎日の小さなステップでさえ、10年で複合効果をもたらします。 1か月ですべてをマスターし、7桁の給料を稼ぎ、3年で退職することを考えているなら、おそらく間違った分野にいるでしょう。

習得に集中し、知識を絶えず進化させ、重要な本物を構築したい場合は、歓迎します。

質問をする

何かわからない場合は尋ねてください。隣の人がそれを知っていると思うので、何かが何を意味するのかを知っているふりをしないでください。長い目で見ればこれです。これは完璧なインスタグラム投稿ではありません。インフィニティプールの横に座って、抹茶を飲みながら山を見ながら、自分の人生がどうなっているのかを話します。これがあなたのキャリアです。質問をして、すべてを把握していないことを示すことは問題ありません。

結論

最後に、オンラインコースやチュートリアルを盲目的に受講しないでください。自分の時間を何かに投資するときはいつでも、何か他のことをする機会をあきらめています。すべての学習が平等に作成されるわけではないので、時間と労力を何に費やすべきかを決定するために少し時間をかけて研究を行ってください。改善するために最も多くの作業を詰め込むことではありません。成功するのは、効率的に学習できる人です。これは、単にコードを学ぶことを超えたスキルです。

しかし、一日の終わりには、私の言葉を受け入れないでください。この記事で述べたように、独自の調査を行い、独自に調査し、信頼できるメンターを見つけてください。最終的にそこに着きます。ハードルを乗り越え、ほとんどの人が断念して振り向くその山に登ると、それはあなたが利益を見始めたときです。貴重です。

私の執筆を楽しんだら、私の他の記事のいくつかを好むかもしれない:

→ジュニア開発者にならない
 →2019年にコーディングを学び、採用され、その過程で楽しんでください

ここまで読んでくれてありがとう。この投稿を楽しんだ場合は、共有、コメント、および長押ししてくださいfew数回(最大50回)。 。 。十分な関心があればこれらを続けます!

あなたが私の文章に遅れないようにしたい場合は、TwitterまたはMediumでフォローしてください。ところで、私のフルタイムの仕事は、可能な限り最も効率的な方法でコーディングを人々に教えることです。以下に私のコースを見ることができます(クーポンコードLEVELUPZTMを使用すると、割引があります):

または、より高度な他の3つのコース:

JavaScriptの高度な概念

コーディングインタビューをマスターする:データ構造+アルゴリズム

ジュニアからシニアのWeb開発者ロードマップ(2019)

覚えておいてください。この記事を読んでいるので、先に進んでコースを購入しないでください。独自の調査を行い、何をしたいのかを把握し、最適なものを決定します。