- Pythonロードマップが多すぎて、どれがいいのかわからない
- どのロードマップも、完了した時のイメージができない
半年でGoogleに入社できる(らしい)ロードマップは次の通り
- 【Pythonの基礎を学ぶ】learnpython.org
- 【Pythonの例題を解く】12 Beginner Python Projects – Coding Course (YouTube)
- 【プログラミングの知識を身に付ける】Data Structures and Algorithms (UDACITY)
- 【面接練習】Leetcode
すべて英語です
はじめまして。普段はメーカーで機械設計をしているベルと申します
この記事では、下記の動画で紹介されている、半年でGoogleに入社できる(?)ロードマップをご紹介します
Pythonの学習ロードマップを探していたところ、Googleに半年で入社できる(?)ロードマップを紹介している動画を発見
作成者であるSahii氏は、プログラミングをはじめて2年でAmazonに入社
さらに2年後に、Googleに入社した方で、YouTubeで「半年でGoogleに入社できる(?)ロードマップ」を公開
あなたが、わかりやすい目標があるロードマップを探しているのであれば、参考にしてみてください
すべて英語は難しいという方に向けて、代替案の提案もしていきます
ロードマップは4段階のみ
ロードマップの中身は単純で、やるべきことは次の4つ
- 【Pythonの基礎を学ぶ】learnpython.org
- 【Pythonの例題を解く】12 Beginner Python Projects – Coding Course (YouTube)
- 【プログラミングの知識を身に付ける】Data Structures and Algorithms (UDACITY)
- 【面接練習】Leetcode
順番に解説していきます
1. 【Pythonの基礎を学ぶ】Learn Python
最初は、Pythonの基礎を学ぶため、learnpython.orgを1周します
海外サイトなので、すべて英語で、Pythonの基礎知識の解説を読む
その後、Pythonを実行できるウィンドウのコードを修正して、課題をクリアしていきます
日本語が良ければ、Progateや、YouTubeのPython基礎動画で代替できます
英語に弱い、まったくの初心者の方がいきなりlearnpython.orgをやるのは非推奨
どこまでが解説で、どこまでが問題なのかが、わかりづらいため
すでに取り組んでみましたが、はやたすさんの動画で学んだ内容でカバーできます
復習にはなりますが、個人的にはこういう基礎は繰り返したくないので、英語の勉強として取り組んでます
【Pythonの例題を解く】12 Beginner Python Projects – Coding Course (YouTube)
Python基礎を使えるようになるため、動画を見ながら自分の手を動かして、実際にプログラムを作ります
Kylie Ying氏が、実際にコードを書いて、プログラムを作る、一連の流れを見ることができます
初心者の私は、まずは例題のコードを写経して、何をしているのか把握
その後、演習問題としているコード解説は見ずに、作成して、答え合わせをしています
Kylie Ying氏はMac環境でコードを書いていますが、私のWindows環境でも、今のところ問題はありません
【プログラミングの知識を身に付ける】Data Structures and Algorithms (UDACITY)
実際にコードを書けるようになったら、Data Structures and Algorithms (UDACITY)で、プログラミングの技術的な知識を身に付けます
理由は、面接などで技術質問に答えられるようになるため
Data Structures and Algorithmsとは、訳すと”データ構造とアルゴリズム”
これは、DSAと略されることもあります
超ざっくり言うと、プログラミングの原理にあたる知識で、プログラムの動きの考え方
ただ、おそらくここが一番の山場
まだ取り組んでいませんが、知識なので、身に付けるにはそれなりの時間を要する見込みです
さらに、紹介されているData Structures and Algorithms (UDACITY)は、お金もかかります
講義の評価が非常に高いので、やってみたいとは思いますが、お金もかかる上、英語で学ぶには少々ハードルが高そう
そのため無料で、さらに日本語の講義で何か代わりになるものはないのか、探しています
東京大学などの、日本が誇る有名大学が、無料で公開している”データサイエンス”など謳っている教材で代用できそうです
見つかり次第、この記事に追記しようと思います
4. 【面接の受け答え】Leetcode
プログラミングの知識を身に付けたら、面接で聞かれる問題を、Leetcodeで練習します
Leetcodeは、GoogleやAmazonの面接で実際に聞かれた設問を、難易度別に解くことができるサービス
ただ、実際に面接で聞かれた設問を解くには、有料プランへの加入が必要です
ロードマップをやる理由
私が実際にこのロードマップを実践しようと思った理由は、次の通り
- 英語の勉強になる
- 目標がわかりやすい
- やりたいことに繋がっている
英語の勉強になる
教材がすべて英語ですので、英語の勉強を目的としています
さらに役立つこととしては、プログラミング用語の意味を知ることで、プログラミング学習の効率も上がります
例えば、プログラムでエラーが表示される内容は、すべて英語
エラー内容は、専門用語が多くある文章ですので、Google翻訳を通しても、意味がわかりません
しかし、専門用語の英語も、意味を知ることで、英語のまま理解できるようになります
その結果、エラーが表示された時に、訳された文章よりも理解しやすくなりました
「あの単語はそういう意味だったのか!」と新しい発見もあり、楽しいため覚えやすいです
目標がわかりやすい
“Googleに入社できる”という、わかりやすい目標があるのが、このロードマップをやる気になった大きな理由
特別Googleに入社したいわけではありませんが、もちろん、入れるならば入ってみたいです
Pythonを学ぶきっかけは、”目の前にある仕事の効率化”を目標に、取り組んでいます
しかし、数多く存在するロードマップの中で、どれが最適かは、正直わかりにくい
それに対してこのロードマップは、”Googleに入社できる”と非常にわかりやすいです
身の目標とは違うかもしれませんが、わたし程度の目標ならば、Googleに入社できるレベルならば実現できると、勝手に考えています
そのため、Pythonに注力して、Googleを目標としているロードマップを選びました
また、世界最高峰の会社が求めるレベルを体感できるのも、大きな理由
身に付けば儲けものだし、実際にGAFAMに行ければ大儲け
例えGAFAMに行けなくても、人生変わりそうと思いました
やりたいことに繋がっている
たとえGoogleに入社できなくとも、やりたいことに繋がっているため取り組んでいます
私のやってみたいことは、次のようなものです
- 手書き図面の画像認識・文字認識をしたい(機械学習で実現可能?)
- お客様のパーツ購入履歴から、次に売れそうなパーツを自動で予測
- お客様のメンテナンス履歴から、次回メンテナンス時に推奨できそうなパーツを自動で提案
一度トライしましたが、いろいろなサイトを見ても理解できず、実現できませんでした
逆に、これらに近いサービスは存在するため、高確率で自作も可能と考えました
ただ、このようなサービスを作り上げるには、それなりの知識が必要です
そこで、それなりの技術や知識は、Googleに入社できるレベルならば備わると考えました
そのため、このロードマップに取り組むことで、自身のやりたいことを実現することを目指します
やるのはいいけど難しい
実際に取り組んでみて思ったのは、英語で新しいことを学ぶのはクソ難しいということ
TOEIC690点の英語力では、英語で新しいことを学ぶと、単純に意味が分からないことが多いためです
やってみて思ったのは、learnpython.orgを進めるだけでは、Python基礎を身に付けるのは難しい印象
英語の勉強にはちょうどいいですが、Pythonの勉強には不向きに感じました
その理由は、英語は簡単なのですが、概念そのものが難しいため
訳しても「はぁ?」となる時が多いです
序盤でも、意味がわからないところがポツポツとあるので、後半は意味不明なところが増えると考えられます
ただ、英語の勉強にもなりますし、モチベを保ちやすいロードマップです
AmazonやGoogleは、重工メーカーで機械設計している人間からすると、別世界なので、もはや入社難易度が想像もできません
しかし、万が一、いや兆が一でも行けるならば…と考えると、モチベが湧いてきます
まとめ:明確な目標があるロードマップを実践しよう
半年でGoogleに入社できる(らしい)ロードマップ
- 【Pythonの基礎を学ぶ】learnpython.org
- 【Pythonの例題を解く】12 Beginner Python Projects – Coding Course (YouTube)
- 【プログラミングの知識を身に付ける】Data Structures and Algorithms (UDACITY)
- 【面接練習】Leetcode
このロードマップに限らず、明確な目標があるロードマップを実践することをオススメします
理由は、目標が明確であるほど、ロードマップをやりきる確率が上がるため
プログラミング学習は、とにかく挫折しやすい
理由は数多くありますが、”目標が明確ではない”ことは原因のひとつ
それに対して、このロードマップは目標が明確なため、挫折しにくいです
私自身、今の仕事が楽になる方法を模索しているだけ
それでも、偉大なプロジェクトはモチベーションをあげてくれます
GAFAMエンジニアになることを夢見て、このロードマップを実践してみませんか?
Googleに入社できるかは別にして、このロードマップをやりきることができれば、有益な何かを得ることができると確信してます
また、実際にロードマップをやるときは、長い時間がかかることを見込んでおきましょう
プログラミングは一朝一夕では身につかないため、腰を据えてやるのがオススメ
忙しい社会人が、毎日15分から1時間、学習するほうが身に付きやすいです