駆け出しエンジニア必見!プログラミングの勉強方法
Twitterをみていると、最近、本当にプログラミングを勉強する人が増えてきたなと思います。
おそらく「プログラミングのWeb制作で稼げるらしいぞ!」という情報を聞きつけて、副業的に勉強している人が大半だと思います。
確かに、HTML、CSS、JavaScript、WordPressなど、少し勉強して月に10〜25万円ほどの副業としては高単価な案件が取れるのは、プログラミングだけじゃないかなと思います。
動画編集も副業としてはアツいし、自分もおすすめしてますが、YouTubeの動画編集なら、1本あたり3000円〜10000円くらいのレンジなので、到底一つあたりの単価ではプログラミングには敵わないです。
もちろん、プログラミングは高単価な分、一つの案件にかかる時間は、動画編集よりも圧倒的に長いです。
そのため、時給換算で言ったら、人によるのでなんとも言えないですが、どっこいどっこいかもしれないです。
だから、プログラミングと動画編集は、基本的には自分がやってみたいと思う方を選んで見ればいいと思います。
もちろん、デザインだったり、サムネイルの制作だったり、アニメーション制作だったり、他にも色々と副業は考えられるので、初めのうちは色々と手を出して見ればいいと思います。
そして、数ある副業の中でプログラミングを選んでみたものの、行き詰まっちゃったという人は多いと思います。
プログラミングは、さっき例に出した副業と比べると、おそらく一番学習コストが高いです。
動画編集は数週間で案件を獲得できるレベルに持っていくことができるし、他のAdobeソフトを使ったデザインなんかも1ヶ月もあれば十分だと思います。
一方で、プログラミングの場合は、それらと比べると、それなりに覚えることも多いし、挫折をしやすい性質を持っているので、誰でも簡単に習得できるかというと、そういうわけにはいかないです。
スポーツテストの1500m走と同じくらい途中で挫折します。
そのため、本記事では、これからプログラミングを勉強し始める人をサポートすべく、プログラミングを勉強する時の基本的な姿勢についてまとめていきます。
本記事では技術的なことには触れません。
なぜ触れないかというと、副業で稼いだり、エンジニアに転職するレベルであれば、技術的に難しいことはないし、ネット上に無料の学習教材はたくさん落ちているからです。
駆け出しエンジニアにとっては、技術的なサポートよりも、明らかにそれ以外の学習姿勢やモチベーションをサポートしてあげる方がよほど重要です。
これからプログラミングを勉強する人は、これから紹介することは必ず全て頭に叩き込んで、実行してください。
WHY:プログラミングを学習する目的を明確にする
プログラミングを学習する上で、重要なことの1つ目は「プログラミングを学習する目的を明確にすること」です。
プログラミング以外のことでも同じことが言えますが、プログラミングの場合は特に目的なしで学び始めると、必ず挫折することになります。
強い動機なしで学び続けられるほど、プログラミングの学習は甘くはないです。
そのため、現時点でプログラミングを学習している目的を、即答えることができないのなら、学習を進める前に、そこをしっかり詰めるようにしましょう。
パソコンでもスマホでもなんでもいいので、どんどんとプログラミングを学びたい理由を列挙していってください。
ここで注意してほしいことが、WHYは2回は掘ってほしいということです。
例えば、プログラミングを学ぶ理由として、「月に20万円ほどの副収入が欲しいから」と考えているとします。
これはWHYを1回掘った状態です。
ここで終わると、かなり動機が浅くて、ほとんど目的を設定していないのと変わらないレベルです。
そこでもう一回このWHYを掘ってみてください。
例えば、「月に20万円の副収入が欲しいのは、ワンランク上のマンションに住みたいから」とか、「YouTubeの広告費にガンガンお金を使いたいから」などが考えられます。
できたらもう一回くらいWHYを掘ってもいいですね。
「ワンランク上のマンションに住みたいのは、女の子を連れ込みたいから」とか「YouTubeに広告費を大量投下したいのは、自分の商品を売りたいから」とかです。
ここまで目的を掘っておくと、プログラミングを学ぶ動機はかなり明確になり、この目標が学習する上で大きなエネルギー源となるでしょう。
プログラミングを学ぶ理由なんて、他にもいくらでもあります。
- 会社にいきたくないので、リモートワークしたいから
- 開発してみたいサービスがあるから
- 将来、海外で働いてみたいから
- ノマドワーカーをやってみたいから
とにかくプログラミングを学習する時は、学ぶ目的を最低2回、できたら3回くらい掘って、自分の目につくところにメモしておいてください。
WHAT:何を学ぶのかを決める
プログラミングを学習する上で、重要なことの2つ目は「何を学ぶのかを決めること」です。
プログラミングを学ぶといっても、Webアプリケーション、インフラ、機械学習、データサイエンス、iPhoneやAndroidアプリなど種類はたくさんあります。
この中で、一体自分は何を学びたいのかをはっきりとしましょう。
「Web開発もしたいし、機械学習もしたい」は、駆け出しのうちは無理だと思ってください。
一つのことだけでも継続できるかわからないのに、あれもこれもと欲張って手を出すのは絶対にNGです。
とはいっても現時点で特に絶対にこれがやりたいというものがない場合は、ひとまずWebアプリの開発を学んでみましょう。
理由は、
- 初学者向けの学習教材が豊富であるから
- 最も副業がしやすい分野だから
- 一番身近で初学者でもとっつきやすいから
です。
Webアプリの開発に必要な言語は、フロントはHTML、CSS、JavaScriptがあり、バックエンドはRubyやPHPを用いることが多いです。(HTML、CSSは言語ではありませんが、便宜的に含めました。)
JavaScriptは、最近最もあつい言語でVue.jsやReactなどのフレームワークが存在します。
RubyはRuby on Rails、PHPはLaravelというフレームワークを使って開発していくことが多いです。
これらの言語、フレームワークを学ぶ教材は、無料、有料ともにかなり多いので、プログラミングを使って何をやりたいのかがわからないのであれば、無難にこれらを学んでおきましょう。
WHERE:最適な学習環境を整える
プログラミングを学習する上で、重要なことの3つ目は「最適な学習環境を整えること」です。
プログラミングに限った話ではないですが、何かを勉強や作業をしていく上で、学習環境というものはかなり重要です。
当然、数時間、もっとする時は10時間以上、勉強することになるので、長時間集中するのに向いていない学習環境しかないと、すぐに脱落してしまう原因になります。
今あなたの学習環境を思い浮かべてください。
デスクは、使いやすいものを使っていますか?
小さすぎたり、高さがあっていないなどはありませんか?
椅子は、座椅子のような腰を痛めやすい椅子を使っていませんか?
また、長時間座っていると尻が痛くなるような椅子を使っていませんか?
学習する場所の照明は、学習に集中できるものになっていますか?
暗すぎたり、明るすぎたりしませんか?
学習する部屋に閉塞感はありませんか?
適度に風通しが良くて、外のちょっとした雑音が聞こえるくらいが最適でしょう。
プログラミングを勉強するとなったら、まずは学習環境にしっかり投資しましょう。
一度、学習環境に投資しておけば、プログラミングの他の勉強だったり、作業をする時にも役に立ちます。
コンビニでからあげクンやお菓子ばかり買うことはお勧めできませんが、お金を使うべきところはちゃんと使いましょう。
WHEN:ルーティンを整えること
プログラミングを学習する上で、重要なことの4つ目は「ルーティンを整えること」です。
このルーティンを整えるということができていない人が結構多いです。
ルーティンとは、毎日どの時間に何をするのかを決めること。
なぜルーティンが大事なのかというと、人のモチベーションは不安定なものだからです。
調子がいい時は勉強が捗るかもしれませんが、調子が悪い時は一気に勉強をする気が失せてしまいます。
しかも、自分の好きな趣味など楽しいことをするならまだしも、プログラミングというそこまで好きでもなく、初めてすることに対しては、十中八九、気分が乗らない時の方が多いでしょう。
よほどの勉強好きでもない限り、モチベーションに頼っていたら、一生机に向かわないことになります。
だからこそ、仕事がある人ない日のそれぞれで、どの時間帯に学習するのかを完全に固定してしまいましょう。
例えば、自分が猛烈にプログラミングの勉強をしていた頃は、平日は仕事が始まる前の朝の7:00〜9:30、仕事終わりの19:00〜23:00を勉強に費やすと決めていました。
そして、一度ルーティンを決めたらそれは絶対に守ってください。
王様からの命令だと思ってください。
心配しなくても、初めのうちは大変でも2〜3週間経てば、その生活が当たり前になります。
このルーティン化ができるかが、プログラミングの勉強を続けられるかどうかに大きく影響してきます。
WHO:仲間と一緒に勉強する
プログラミングを学習する上で、重要なことの5つ目は「仲間と一緒に勉強すること」です。
プログラミングはよほど意思が強かったり、勉強好きでないと、一人で学習するとかなりの確率で挫折します。
自分の場合は、中学三年生の時から真面目に勉強を継続してきたので、一人で長時間勉強することも作業することも、全く苦でありませんが、ほとんどの人はそうではないと思います。
昔からちゃんと学校の勉強をして、受験勉強も真面目に上を目指してとやってきた人なら、なんら問題ないですが、ずっとサボってきた人が急に机に長時間も向かえるはずがないのです。
そのため、少し一人でやってみてもしダメだと思ったら、すぐに仲間を作るようにしましょう。
仲間の作り方はいくらでもあります。例えば、
- Twitterで同志を集める
- プログラミングのコミュニティに入る
- スクールに通う
などがです。
仲間ではなくてもメンターという形でも大丈夫です。
MENTAというサービスを使えば、簡単にメンターを見つけることができます。
お金を払うことには抵抗があるという人も、学習を継続できるのであれば、お金を払う価値は十分にあります。
とにかく一人で無理して勉強しようとしないことです。
HOW:正しい勉強方法を理解する
プログラミングを学習する上で、重要なことの6つ目は「正しい勉強方法を理解すること」です。
これまでの紹介してきたことを実行してくれれば、プログラミングを勉強する環境やマインドはおよそ整えることができます。
環境やマインドが整ったところで、ようやく学習に移るわけですが、もちろんただ闇雲に勉強すればいいということではありません。
正しい勉強方法を理解した上で、進めていかないと効率が悪いだけでなく、すぐに挫折してしまうことになってしまいます。
ここから説明するプログラミングの正しい学習方法については、必ず忘れないようにしてください。
暗記はいらない
初学者が一番勘違いしているのは、プログラミングは暗記しなければいけないということです。
これに関してはネット上で、自分も含めて色々な人が指摘をしていますが、いまだに勘違いしている人が大勢います。
プログラミングは各文法の記述方法を全部丸暗記する必要なんて1mmもありません。
大前提として、プログラミングはネットでカンニングしながらコーディングしていくものだと思ってください。
正直、全て暗記しなければいけないんだったら、自分もやりたくないです(笑)。
そもそもプログラミングというものは、変化が早いため、業務で使用する言語が変わるなんてことも全然あり得るので、逐一暗記なんてしていたら身が持たないです。
しかも同じ言語であっても、バージョンが変わると記述方法が変わったりするくらいです。
もはや暗記をするなんてことは、プログラミングを学習する上で最もやってはいけないことです。
どんなベテランエンジニアさんもずっと横でGoogleで検索しながら、コーディングしています。
プログラミングは暗記するものではなくて、カンニングしながら書いていたら勝手に暗記してしまうものです。
初めから覚えようとしている人は誰もいません。
まずは、プログラミングに暗記はいらないということを絶対に押さえといてください。
インプットは最小限にしてすぐアウトプット
初学者が押さえなければいけないポイントの2つ目は、「インプットは最小限にしてアウトプットを重視すること」です。
とにかくインプットばかりする学習は、初学者ほどやりがちです。
インプットは読書と同じで、やっていて気持ちがいいんですね。
頭に入れるだけなので、手が止まるなんてことも、つまずくこともないからです。
しかも勉強した気にもなるので、大変でつまずきまくるアウトプットをなかなかしない初学者がたくさんいます。
ただ、いくらインプットを繰り返したところで効率が悪いだけです。
一回寝て起きたら50%以上はもう頭に残ってもいません。
だからこそ、インプットベースの学習ではなくて、アウトプットベースの学習に切り替えてください。
つまり、何かを作りながら、わからないことがあればその都度調べて解決していくということです。
インプットとアウトプットを高速に繰り返すことこそが、最も効率のいい勉強方法です。
アウトプットは確かに大変ですが、大変だからこそ成長が早いのです。
楽な道に成長なんてありません。
楽じゃないのが嫌ならやめてしまった方がマシです。
「プログラミングを勉強するんだ!」と決めたなら、腹をくくって気合い入れてください。
必要最低限だけ学習する
初学者が押さえなければいけないポイントの3つ目は、「必要最低限だけを勉強するということ」です。
初学者は、あれもこれもと過剰に勉強範囲を広げがちです。
適当に勉強をしていると、自分の目的には全く不必要な知識まで勉強しているなんてことは往々にあります。
Web開発をしたいなら、Pythonに時間をかけるべきではないし、AngularのようなJavaScriptのフレームワークも初学者が勉強すべきではありません。
フロントをメインでやりたいのに「PHPの勉強も念のためにしておくか」ということで時間をかけて勉強している人もいる。
念のためとか、出来るだけ広い知識を持っておいた方がいいとか、そんなの初学者にいりません。
とにかく自分の目的を達成することに必要なことだけを勉強してください。
そのためには、2つ目で話した、アウトプットベースの学習が効いてきます。
自分が作りたいものを作りながら、わからないことがあればその時に都度インプットしているので、本当にその制作物に必要なインプットしかしなくなります。
初学者はこれでいいです。
あれもこれもと手を出すのではなく、必要なことだけに集中特化して学ぶようにしてください。
まとめ
ここまでで、初学者がプログラミングを学習する際に押さえなければいけないポイントについて、まとめてきました。
基本的には本記事で書いたことを守ってくれたら、挫折する確率をかなり下げることができます。
また、これらに加えて、もしお金があるのであれば、自分はすぐにプログラミングスクールに通うことをオススメしています。
お金を投資するだけで、本記事にまとめた内容を全て提供してくれて、なおかつ短期間でプログラミングを習得することができます。
短期間で習得できれば、それだけ早く副業で稼げたり、エンジニアに転職することができます。
自分の場合は初めから独学をせずにすぐにスクールに行くことを決めました。
何故ならば、スクールにお金を投資したとしても数ヶ月後にすぐに元を取れることをわかっていたからです。
今となってはその投資した金額の、何十倍にもなって自分に返ってきています。
今時、優良教材やスクールはいくらでもあるので、自分に合いそうなところを探してみてください。
自分は一番初めに、TechAcademyのフロントエンドコースを受講しました。
その結果、たった1ヶ月でフロントのコーディングを行えるようになり、その後副業でも稼げるようになったし、エンジニアにも転職することができました。
TechAcademyのレビューについては、他の記事でまとめているので、詳しくはそちらをご覧ください。
- プログラミングを学習する目的を明確にする。
- 何を学ぶのかを決める
- 最適な学習環境を整える
- ルーティンを整える
- 仲間と一緒に勉強する
- 正しい勉強方法を理解する
今回の内容については以下の動画でも解説しているので、ぜひご覧ください^^