エンジニア

プログラミングの勉強法|文系出身エンジニア流の独学術【失敗談あり】

how-to-learn-programming
プログラミング初心者
プログラミング初心者
プログラミング勉強してみたいけど、お金もあんまりないし、どうやって勉強したらいいのか分からない。
効率的なプログラミングの勉強法が知りたい!
プログラミングスクールとかいいから、無料でできる独学法を教えて欲しい。

今回はこんな悩みを、僕の実際の失敗談を踏まえつつ、解決していきます。

  • プログラミング完全初心者大歓迎
  • お金がなくても問題なし(無料の学習法アリ
  • プログラミング未経験からエンジニアになった筆者が、最も効率的にプログラミングを独学する方法を伝授(経験談)

プログラミングの独学というものは、自分のやる気のみを頼りに継続していくことが非常に難しいです。

現在僕はエンジニアとして毎日プログラミングを仕事として生活していますが、エンジニアとして就職するまでは、誰かにプログラミングを教えてもらったりすることなく、完全に独学でプログラミングを勉強していました。

当時の僕は、どうやって勉強していたらいいのかも分かりませんでしたし、

とりあえず本を買って勉強してみるものの、エラーが起きてはどうやって解決したらいいのかも分からず、どうやって検索したらいいのかも分かりませんでした。

本記事は、そんな当時の僕のような、

プログラミングを勉強したいという気持ちはあるけど、スクールに通うほどのお金はないし、どうやって独学で勉強していったらいいのかよく分からない

といった方に向けて、現役エンジニアである僕流のプログラミング独学術を全公開していきます。

✔︎この記事を読んで分かること
  1. プログラミング完全初心者でもどうやって独学していけばいいのかが分かる
  2. 無料でプログラミングを学習する方法
  3. 【数千円でOK】コスパが最強なオススメプログラミング学習教材|より効率的に独学したい人向け

この記事を読んで、効率の良いプログラミング勉強法を習得して下さい!

それでは早速本題に入っていきましょう。

プログラミング勉強法でよくある”間違い”

プログラミング初心者でよくやってしまう”間違い”というものが2つあります。

実際に、僕もこのよくある間違いに気がつかず我流で勉強していたがために、非効率的な学習をしていました。

「これから独学でプログラミングを勉強しよう」と意気込んでいるあなたも僕と同じような”非効率的”な学習をしないようにするためにも、この、よくある間違いにはぜひ注意してください。

その”よくある間違い“とは下記の2点です。

既にこれら2点が当然に思える方は、この章を飛ばして次の「プログラミングを独学で学ぶための3STEP」に進んでいただいてOKです。

「あれ、もしかしたらやってしまっているかも。。」
「自分だったらやってしまいそう」

そう思った方は、ぜひこのまま読み進めてください。

1つずつ解説していきます。

インプットばかりでアウトプットをしない|暗記する必要なし

1つ目のよくある間違いは「インプットばかりでアウトプットをしない」です。

プログラミングの学習において、この「インプットとアウトプットのバランス」は非常に重要です。

プログラミングのレベルが上がれば上がるほど、このバランスの中でもアウトプットの比率が上がってくるのですが、とはいえプログラミング初心者であっても「アウトプット」は適宜行っていく必要があります。

僕がまだプログラミングを勉強し始めた頃は、このことを知らずに、ひたすら本や動画教材でインプットをし続けていました。

もちろんプログラミングを全く知らない初心者の人がインプットを全くせずにプログラミングを勉強することは不可能なので、インプットをしていくこと自体は非常に大切です。

しかし、このインプットに比重を置きすぎてしまうと一つ大きな弊害が起こってしまいます。

それは、一通り学習を終えた後に、「それで何ができるようになったの?」と自分に問いかけてみると、それにうまく答えられないのです。

頭の中では、断片的に本や動画教材で学んだことを知識として覚えてはいますが、実際に自分の手を動かしてアウトプットをしていないので、その知識を単純に記憶に留めている程度にすぎません。

プログラミングを学ぶ上で重要なことは、本当にその知識を理解した上で、自分で使いこなせるようになることです。

実際に自分がエンジニアとして就職して働くようになってから、よく分かったのですが、使いこなせない暗記した知識というのはほとんど無価値です。

つまり、僕が以前行っていたようなインプット過多の勉強法は基本的に時間の無駄です。(もちろんゼロではありませんが、もっと効率的な勉強法が存在します。)

これからプログラミングを勉強しようとしている方で、この記事を読んでいる方には僕と同じような失敗はして欲しくないので、ぜひとも注意してください。

大切なことなのでもう一度言いますが、

本や動画教材をみるだけのインプットだけの勉強法は”NG”ですよ

完璧に理解してから次に進もうとする

これは特に”完璧主義”な性格の初心者によくありがちな間違いです。

僕が大学受験の勉強をしていた時のモットーは「理解できるまで何回も繰り返し読む」でした。

この名残から、プログラミングを勉強している時もついつい完全に理解できるまで次に進みたくなくなってしまいます。

しかし、プログラミングを勉強していると、特に初期の頃は、中々頭で理解しきれない概念がしょっちゅう出てきます。(例:オブジェクト指向、インスタンス、コンストラクタ等々)

もちろん、こういった概念を初見で理解できるにこしたことはありませんが、よっぽど賢い人間でない限り不可能です。

僕もこういった難しい言葉や概念と出会った時はかなり心が折れそうになりました。

そんな時に大切なことは、1回で全てを完全に理解しようとしないことです。

その時は「何となくこんな新しい概念があるんだな〜。難しそうだな〜。」くらいにしておいて、どんどん先に進んでいくべきです。

そして、勉強をし続けていれば、いつかまたその難しい概念に出会うことになると思うのですが、その時にまた調べ直せばよいのです。

たいていのことは1ヶ月でもプログラミングの勉強を継続したら解決できるものです。

つい最近僕も上記のような経験をして、こんなツイートをしました。

「難しすぎたら一旦放っておくのもアリ」

例えば、この記事
数週間前に初めてネットで見つけて読んだ時は
さっぱり理解できませんでした。

なのでしばらく寝かせておいて、
今日久しぶりに開いてみたらかなり読めるようになっていました。

未来の自分はやっぱりスゴイ☺️

完璧主義の方には最初抵抗があるかもしれませんが、どんどん次へ次へと学習を進めていって、達成感を味わいながら時々振り返る位が案外ちょうどいいのです。

プログラミングを独学で学ぶための3STEP

それでは、ここから本題の「プログラミング独学勉強法」について解説していきます。

手順はすごくシンプルで、この3STEPで学習を進めていけば効率よく実力をつけていくことができます。

✔︎プログラミングを独学で学ぶための3STEP

STEP1:動画教材/本でインプット
STEP2:Progateで簡単アウトプット兼復習
STEP3:オリジナルサービスを作ってみる

具体的にどんな教材を利用したらいいのかということについても詳細に紹介していますので、ぜひチェックしてみて下さい。

STEP1:動画教材/本でインプット

まず、何はともあれ少なくとも多少の知識はインプットしておく必要があります。

「プログラミングとはどんなもので、どういったことができるようになるのか」ということが多少なりとも具体化できるようなレベルになることがこのステップでの目標です。

なので、先にも述べましたが、インプットしすぎによる罠には引っかからないように、軽く一通り学習したら次のステップへと進むようにしましょう。

「どのくらい本や動画教材を勉強すればいいのか」ということについてですが、これは正直その教材にもよりますが、本であれば一冊、動画教材であれば3〜4時間程度のものを一通り視聴する、というのが目安になります。

具体的なオススメのプログラミング学習教材は下記です。

プログラミング学習教材
  • 書籍(有料:¥2,000程度)
  • ドットインストール:動画(無料)※プレミアム会員:¥1,080/月
  • Udemy:動画(有料:¥2,000程度←セール時のみ)

一つずつ簡単に紹介していきます。

書籍|有料:¥2,000程度

とりあえずプログラミングの勉強を始めようと思って、まず最初に「書籍」が思いつく人も多いのではないでしょうか。

手軽に始めることができますし、まずはじめの一歩を踏み出すという意味で、本を購入して学習を初めてみるのは誰でも始めやすいのではないかと思います。

また、書籍での方が何となく勉強しやすい、という方にもオススメです。

とりあえず「プログラミングを勉強しよう」という気持ちをもって”大きめ”の本屋さんにいってみて、これなら自分でも理解できそうだな、と思う本を手にとってみてください。

「本屋にいくのが面倒」という方は、Amazonや楽天で人気(初心者向け)の本を注文すればOKです。

ドットインストール|無料(※プレミアム会員:¥1,080/月)

引用元:ドットインストール(https://dotinstall.com/

「本よりも動画で勉強したい」
「とりあえず無料で勉強してみたい」

こういった方にオススメなのがドットインストールというサービスです。

こちらはメールアドレスで会員登録(無料)さえしてしまえば、プログラミング学習の講座を視聴することができます。

月額1,080円でプレミアム会員に登録すれば、さらにたくさんの講座を視聴することができるのですが、プログラミング初心者の方であれば、とりあえず課金せずに無料でも十分に勉強できるだけのコンテンツが揃っているので、無料でも十分です。

Udemy|有料:¥2,000程度(セール時)

引用元:Udemy(https://www.udemy.com/

Udemyもドットインストールのような動画教材を提供しているサービスです。

ドットインストールと異なる点は、月額で料金を支払うのではなく1つ1つの講座を購入していくスタイルである、ということです。

通常料金は数万円のコースが多いUdemyですが、セール時は95%OFFで数万円の講座が2000円程度で受講できることも多く、さらに通常数万円の講座というだけあって、質が非常に高いです。

もし、本気でプログラミングを学習しようという決意があるなら、セール時に初心者向けの人気コースを2000円くらいで試しに1つ購入してみることをオススメします。(30日間の返金補償付きです。)

【番外編】金銭的に余裕があるならプログラミングスクールを利用すれば間違いない(¥100,000/月〜)

「独学」という趣旨からは離れてしまいますが、もし「プログラミングを学びたい!」と思っていて、しかも金銭的に余裕があるのなら、プログラミングスクールに通ってみるのも、かなり有効な手段です。

プログラミングスクールなら、全くの未経験の状態から数週間で自作のアプリを作成できるようになれたりします。

初心者が躓きやすいポイントであるエラーの解決等も、講師の方にバンバン聞いていけばいいだけです。

かなり効率の良いプログラミング学習ができることは間違いないでしょう。

詳しくは下記の記事をご覧ください。

巷にあふれているプログラミングスクールを厳選して3つに絞りました。

STEP2:Progateで簡単アウトプット兼復習

引用元:Progate(https://prog-8.com

STEP2では、簡単なアウトプットを通して「言語の基本的な文法を知る」ということを目的とします。

それがタイトルにもある通り”Progate“というサービスです。

Progateは、一言で言うと「プログラミングを学習するためのサービス」です。

とはいえ先に紹介した、ドットインストールやUdemyのような動画教材を提供しているサービスではなく、Progateでは実際にプログラミングを自分で書いて動かすことができます。

このサービスもドットインストールのように“無料”である程度利用することができて、さらに980円/月を支払えばさらにたくさんのサービスを利用できるようになっています。

本や動画で学んでも、実際にコードを入力して実行できる環境を構築することは、初心者には結構ハードル高いですよね?

しかし、Progateでは、初心者には小難しい環境構築をすることなく、すぐに自分でコードを書いて試すことができます。

めちゃくちゃ便利です。

Progateはかなり多くのプログラミング初心者が利用したことがあるのではないかと思います。

実際に僕もプログラミング始めたての頃はかなり利用しました。

僕は主にJavaを勉強する際にProgateを利用したのですが、Javaの全てのコースを無料では利用することができなかったので、1ヶ月間だけ有料会員として登録しました。

そして、Javaのコースをその月の間で一気に受講して、翌月に変わる前に有料会員をやめました。

また新しく言語を学ぶことになったら、ほぼ間違いなく利用することになると思います。

一応、僕のProgate利用履歴はこんな感じです。

コースをクリアしていくと段々レベルが上がっていく仕組みになっているのですが、ポケモンみたいにレベル上げにハマってしまっては本末転倒なので、そこだけは注意するようにしましょう。

このSTEP2の目的はあくまでも「基本的な文法を知る」というところにありますから。

STEP3:オリジナルサービスを作ってみる|足りない部分は再インプット

本や動画教材で一通りインプットし、Progateで基本的な文法を抑えることができたら、あとはどんどんアウトプットしていきましょう

たったこれだけのことでアプリやサービスが作れるようになるの?

こう思われる方もたくさんいるのではないでしょうか。

正直なところ、これですぐにアプリケーションを作成できる、という訳ではありません。

アプリケーションを作成して世の中に公開するとなると、もっともっとたくさんのことを知る必要があります。

しかし、先にも述べたように、プログラミング学習において「アウトプット」をすることが非常に大切です。

これでまた、サービスを世間に公開するための知識を本か何かでインプットしようとするとまた時間がかかってしまいます。

それでは本当に非効率です。

知らないことは、自分でアプリやサービスを作成していく過程の中で、必要な情報をその都度インプットしていけばよいのです。

その方が知識を自分ごととして捉えることができるので、理解のスピードが圧倒的に早くなります。

基本をSTEP1,2で抑えたら、あとはひたすらアウトプット(必要な知識はその都度インプット)していくことがプログラミングを独学していく上で一番効率的です。

ぜひ、自分の作りたいものをその手でどんどん作っていきましょう。

ちなみに、「Webサービスやアプリケーションを作成して公開するに当たって一つ一つGoogle検索していくのが大変そうだな」と思った方には個人的にはUdemyの講座を探してみることをオススメしています。

※実際に僕も下記の記事で紹介している講座をみながらサービスを作成しているのですが、公開の仕方までかなり分かりやすく解説されていました。

今やプログラミングを独学で勉強しても、世界に広まるようなアプリケーションを作成できる時代です。時代の波に乗っかっていきましょう!

まとめ

いかがでしたでしょうか。

この記事を読んで、少しでもプログラミングの効率的な学習に役立てていただければ幸いです。

僕自身、非効率的な勉強で失敗してしまっていたので、みなさんには僕と同じような失敗をしていただきたくないので今回このような記事を書きました。

自身の失敗談を踏まえた上でこれがベストなプログラミング独学法だと思いますので、ぜひ参考にしてみてください。ブックマークしておけば、また忘れた頃にも見返すことができます。(※この記事は逐一アップデートしていきます。)

また、僕自身Twitter(@YoshioEngineer)でも、プログラミング初心者に向けた役立つ情報をどんどん発信しています(ブログの更新情報も)ので、ぜひそちらもよかったらみてみて下さい。

本記事の感想もよかったらTwitterにてシェアしていただけたら嬉しいです。

最後になりますが、ここまでお読みいただきありがとうございました。

ぜひ、プログラミングを勉強してさらなる自分に成長していきましょう。