
「独学でプログラミングをやってみたいけど、どうすればいいの??」
そんな人のために、独学から現役エンジニアになった僕が、自身の経験に基づいた効果的な学習方法について解説していきます!!
2020年11月、プログラムなんて1文字も書いたことがなかった僕は、
家にあったパソコンを出してきて、
見様見真似でコードを書いて動かしました。
"画像が右に動いた"
たったこれだけのことが、嬉しくて、どんどんハマっていきました。
その間、書籍とブログ記事とYoutubeだけで勉強していました。
メンターはおらず、完全な独学でした。
それから約半年後、初めての案件を獲得し、
さらに半年後、僕はエンジニアへ転職することが出来ました。

この記事でまず伝えたいことは、
プログラミングは、
独学で十分習得が可能であるということです。
理系も文系も、学歴も全く関係ありません。
しかし、同じ独学であっても、
「途中で挫折をしてしまった…」
「勉強してみたけど、実際に"作れない"」
という人を多く見てきたことも事実です。

つまり、独学でも習得は可能だけれども、
プログラミング特有の勉強法を試行錯誤して、
正しく勉強することがとても重要であるということです。
この記事では、
僕が試行錯誤して、実際に効果があった勉強法をお伝えしたいと思います。
プログラミングは奥が深いです。
ベテランエンジニアさんからしたら、別の意見があるかもしれません。
僕自身もまだまだプログラミングスキルを高めていかなくてはいけないと感じていますが、「初心者が、最短・効果的にゼロからプログラミングで作品を完成する」という点では、経験談をもって理解しているつもりです。
これから紹介する方法は、
誰でも簡単に出来ることなので、ぜひ実践してみてください。
結論からいうと、次のステップです。
- 作りたいものを決める 【悩んだらWeb】
- 基本を書籍で勉強する 【流すでOKです】
- サンプルコードを書きまくる
- サンプルコードを改良して、自分の作品にする
- 出来る出来ないを差し置いて、自分で設計する
- 自分だけのオリジナル作品を作り上げる 【転職・案件獲得が有利に進みます】
目次
プログラミング初心者は、"基礎理解+ググる"でいける!
各ステップの解説に入る前に、知っておいてほしいことがあります。
それは、
最初のプログラミング学習は、"基礎理解+ググる"である程度クリア出来るということです。
ノートを書いたり、覚えようとしたりする学習はありません。
今の時代はググればコードが出てくるからです。
覚えるのではなく、仕組みを理解するだけでいい。
大切なのは「ググり力(検索力)」です。

学校でする勉強のような、ノートを作って構文丸暗記はやめましょう。
これは、初心者の学習法で失敗しやすいポイントなので、必ず知っておいてください。
具体的な基礎理解の勉強法については、【STEP1】で解説していきます。
【STEP0】何を作りたいのかを明確にする
プログラミングを始める前に、
まず「何を勉強するか」を決めましょう。

プログラミングと一言にいっても、かなり多くの言語・開発ツールがあります。
作るものによって、適した言語・ツールが変わるのです。
よく、「初心者は、何から学べばいい??」と聞かれることも多いのですが、
基本的には「作りたいと思うものから学ぶのがいい」というのが答えになってしまいます。
なぜなら、作りたいものでないと、モチベーションが上がらないからです。
人気や需要とかよりも、モチベーションがあがるものを学ぶべきです。
とはいえ、
「作りたいものが分からない…」
「それでも、需要の高い言語を学びたい!」
という人もいらっしゃると思いますので、
下記に初心者におすすめの言語の一例をまとめてみました。
ホームページ制作・ブラウザゲーム | HTML/CSS Javascript PHP |
ゲームアプリ | Unity(使用言語:C#) |
AI | Python |
アプリ | Java Flutter(使用言語:Dart) |
関連記事
この中でも決められないという人は…
Webを学んでおけば間違いありません。
現代は、どんな業種でもホームページを持っているし、悩み事はすぐに検索する時代です。
当然需要も多いので、転職でも副業でも稼ぎやすく、どんな仕事であっても生かせるスキルとなるからです。
PCについて
PCについても、よくご質問をいただきます。
最初はインターネットに繋がっていれば、どんなパソコンでもOKだと思います。
しかし、ゲーム開発やAI・3Dなどの負荷の高い処理を行う場合は、
早めにハイスペックパソコンの購入を検討されることをおすすめします。
【STEP1】基本を書籍でサラッと学ぶ
作りたいものや学んでみたい言語が決まったら、
次に「基礎」学習を始めましょう!
【ステップ0】で解説した通り"ググり力"が大切になるのですが、
前提として基礎理解は必要です。
基礎理解でおすすめなのは、
「書籍」を使った勉強法です。

今はインターネット上に多数の情報があり、
Youtube、その他プログラミングサービスなど様々な手段がありますが、
僕は次の理由で「書籍」をオススメしています。
・体系的に学ぶことが出来る
・直書きでメモしたり・付箋をしたりして自分だけの辞書として使える
・索引がある
付録として書籍内のコードをダウンロードすることが出来たり、著者に質問出来る書籍も多いので、躓いたときにも便利です。
書籍学習で気をつけるポイントは、次の通りです。
1.Amazonなどの評価が星4つ以上のものを買う
2.合わない書籍だったときは、すぐに中断して、別の書籍を購入する
【合わない書籍は挫折につながるので、自己投資だと思ってください!】
関連記事
書籍のほかにも、 Progateなど人気のサービスもあるので、
書籍とミックスして活用したりするとより理解が深まります。
「本でなく、ネットで勉強したい!」という方向けに、
当ブログでは、自身の勉強経験をもとに、
体系的に学べるように構成しているので、ぜひ活用してみてください。
この基礎理解の学習で挫折しないためには、ポイントが3つあります。
1.文法解説は"とりあえず読む!"でOK
2.なんとなく進んでいるけど、いまいち理解できているのか分からない という感覚があるが、とりあえず進めるでOK
3.ググったり悩んだりしても分からないところは、諦めて飛ばす勇気をもつ
文法は実践していく中でわかってくるものなので、具体的に理解できなくてもOKです。
悩んでも分からないエラーなどが発生することがあります。
これらは飛ばして次に進みましょう!
少ししてからもう一度見直すと「そんなミスだったのか」と分かるようになっているものです。
「挫折をさける」をモットーにしていきましょう!
【STEP2】とにかくサンプルコードを作りまくる
基礎理解(最低書籍1冊すべて)が出来たら、
学んだことをもとにして、どんどん作ってみましょう!

…といっても、
いきなり作れるものではありません。
サンプルコードを見ながら、
実際にゲームやサイト、アプリなどを作ってみるのです!
サンプルコードはインターネット上や書籍で見つけることが出来ます。
「パズル 作り方 Javascript」
「サイト サンプルコード HTML」
「模写コーディング」
でググればたくさんヒットするはずです。
この時にも、「細かく理解する」必要はありません。
なんとなく、
「このコードで大きさを変化させているんだなー。」
とか
「ここで画像を右に動かしているんだなー。」
みたいな感じでOKです。
【STEP3】サンプルコードを改良して、自分の作品にする
サンプルコードをいくつかやったら、
それらを改良して自分のものにしてみましょう!

例えば、画像を変えてみたり、文字を変えてみたりしてみるのです。
ホームページなら、
サンプルコードをもとに自分のホームページを作ってみるのも面白いですね!
ゲームなら、イラストを独自のキャラや好きなキャラクターに変えてみたり、難易度を高めてみたりしてみましょう。
「このサンプルコードを使い回せば、TOP画面のスライドショーは作れるな」
「このコードのコピーで、スライドパズルは作れるな」などと、
サンプルコードのストックを自分の中で増やしたり、
組み合わせていくことで幅広い制作に対応出来るようになります。
【STEP4】"出来る出来ないを差し置いて"、自分で設計してみる
ここからは、
「エンジニアとして生きていきたい!」とか「自分で作って稼いでみたい!」
と考えている人には必須の学習法になります。
サンプルコードで学んだことを活用しつつ、
独自のゲームやサイト、アプリなどを考えてみましょう!
「どんなゲームにアレンジすれば、ユーザーに楽しんでもらえるコンテンツになるかな。」とか、
「どんなサイトなら、長く見てもらえるのかな〜」とか、
自分なりに考えて、設計してみましょう。
なぜ、"出来る出来ないを差し置いて"なのかの理由は次の通りです。
1.自分の技術や知識の幅が広がるから。
2.実際のクライアントは、エンジニアの技術内から出来ることを依頼するのではなく、
世の中が求める機能を依頼するから。
【STEP5】自分だけのオリジナル作品を作り上げる
【STEP4】で自由に設計をしたものを、実際に作ってみましょう!
ただし、これまで経験していない機能や技術もあると思います。
そんなときは、ググってみます!!

すると、案外簡単に出来たり、想像以上に難しかったりします。
あまりにも難しい技術だった場合は、「挫折をしないことが最優先」と考えて、
今は保留にしたり、今の自分でもできそうな代替案を調べてみるのです。
少なくとも、「この機能を作るには、この技術が必要」という知識が手に入ります。
これらの知識は、エンジニアになる上でとても重要です。
また、新しい技術であっても、興味が湧けば、また【STEP2】の基礎理解から繰り返して、習得してみましょう!
私自身、この基礎理解のあとの【STEP4】と【STEP5】を繰り返すことこそが、
エンジニアとして価値を高める最高の方法だと考えています。
STEP5で作ったものは、「ポートフォリオ」にすることも出来ます。
転職時や案件獲得時に見せることで、自分の実力をしっかり相手に伝えることが出来ます。
実は、このポートフォリオを作らずにエンジニア転職に挑む人が本当に多いです。
IT業界は、即戦力がほしい業界です。
ライバルに大きな差がつけていきましょう。
【まとめ】今日から出来る!具体的なアクションプラン
最後に、今日から出来る具体的なアクションプランをまとめておきます。
- 作りたいものを決める 特にないのであれば、「WEB」一択!
- 基本を書籍で勉強する Amazonの★5の書籍を1冊買ってみる。
- サンプルコードを書きまくる サンプルコードをネットや書籍で探してきて、作りまくる。
- サンプルコードを改良して、自分の作品にする サンプルコードの色や画像などを変えてみて自分のものにする!
- 出来る出来ないを差し置いて、自分で設計する 自分の作ってみたいものを妄想する。
- 自分だけのオリジナル作品を作り上げる
【転職・案件獲得が有利に進みます】
ネットや書籍で調べながら、試行錯誤して作り上げる!
プログラミングは1言語でも習得出来れば、2言語目は楽なので、あまり悩まなくてOK。
あまり理解出来なくても、1冊やりきればOK。
書籍が合わなかったら、すぐに別の書籍に変えること!
【おまけ】最優先事項は「挫折しないこと」と心得る

プログラミング学習には、エラーがあったり、新しく知ることが多くて大変なのも事実です。
エラーは、一度詰まると2〜3日なんてのもザラにあります。
その時に、
「もうやめてしまおうかな…」
「やっぱり向いていないのかな」
などと考えてしまいがちです。
でも、
完璧に理解しなくてもいいし、
どうしても分からないエラーは飛ばして、次の制作に取り掛かってもOKなのです。
とにかく、
挫折だけは絶対に避ける!!
と心に誓いましょう。
自分に合わない書籍は、さっさとやめて、新しい書籍を買う。
分からなかったら、飛ばす。
そのくらいの気持ちで、プログラミング学習に取り組んでいただければと思います。
1人でも多くの方が、
「プログラミングって楽しい〜!」
という感覚を味わっていただけることを願っています。