プログラミング独学は無理じゃない!習得へのロードマップはこれだ!

独学でプログラミングを学ぶのは無理だよという話が巷では囁かれていますが、やり方によっては全然そんなことはないので、今回は、僕が独学をしたときの進め方(だめな例)と、今だからこそ痛感しているこう進めたほうが効率的だと思う独学の仕方について共有していこうと思います。
こういう人は独学できる、できない
前置きとして、プログラミング独学の適性がある人はどんな人か書きます。
独学できる人
->作りたいものがある人
->プログラミングと聞いてワクワクする人
独学できない人
->ただなんとなく学びたい、稼げそうだから学びたい人
->参考書は最後まで読まないと気がすまない人
1つずつ見ていきます。
独学できる人
まず、独学できる人について。
1つ目の作りたいものがある人、こういうタイプの人は割とすぐ習得できてしまいます。
プログラミング学習では実際に手を動かすことが大事なのですが、作りたいものがある人は、全くの初心者であっても作りながら覚えていくことができます。
実は、プログラムでなにか1つの作品を作るとき、そんなに大規模でもない限り必要になる技術はそこまで多くありません。しかも、ほとんどの技術については事前の勉強はさほど必要なく、ネットで調べるとすぐに出てきます。
また、作りたいものがある人は、モチベーションの持続もしやすいです。その結果、どんどんレベルを上げていくことができます。
2つ目のプログラミングと聞いてワクワクする人、このタイプは、勉強のモチベーションを保ちやすいです。
勉強中に行き詰まる場面が何度も出てくると思いますが、このタイプの人であれば、ある程度諦めずに継続することができます。プラスでなにか作りたいものを見つけることができれば、鬼に金棒です。
独学できない人
次に独学できない人について。
1つ目のただなんとなく学びたい、稼げそうだから学びたい人、このタイプの人は、ゴールの見通しがない中で闇雲に習得を目指す必要があります。
プログラミングを一人前レベルまで習得するには多くの時間がかかり、その途中途中で目指すべきポイントをいくつか設定しながらでないと、心が折れてしまいます。
ただなんとなく学びたい人は、勉強が辛くなったら、「自分はなんのためにやっているんだろう?」となってやめてしまいますし、稼げそうだから学びたい人は、終わりの見えない勉強に「いくらやっても稼げそうにないじゃん!」と勉強を投げ出してしまいます。
最低でも、「まずはこんなアプリ、サイトを作る」という目標を1つは設定してください。そうすることで挫折の可能性を大きく減らすことが可能です。
2つ目の、参考書を最後まで読まないと気がすまない人、参考書を読んでいる途中で飽きてしまうorなえる可能性が高いです。
参考書に書かれている内容は全く面白くありません。ですので、全内容網羅しようと読んでいくと、途中で百発百中なえます。プログラミングをやっていて面白いと思うときは、自分が書いたプログラムが自分の思った通りに動いたときだけです!
参考書は、面白く感じる(思ったとおりにプログラムが動く)場面に持っていくためだけに利用するくらいの感覚が良いです。
そもそもプログラミングは実際に手を動かさないとなんの力も身につかないので、参考書の中身をすべて理解したところでスキルは0のままです。
このパターンもやはり、はじめに「こういうものを作りたい」と設定して制作にすぐとりかかり、参考書はあくまで必要になった場合だけ読んでみるというようにすると、挫折対策になります。
自分が独学したときのロードマップ(だめな例)
少し前置きが長くなってしまいましたが、ここからは、自分が独学したときのやり方を紹介していきます。
ただ、これは自分が挫折しかけただめな例ですので、反面教師にしてもらえたらと思います。
1.参考書を購入
※これは参考書を買うこと自体が悪いと言っているわけではありません。僕が勉強を進めた流れの一部です
かなり昔の話で、当時中学生です。
一番最初に買った参考書はC言語の本でした。
C言語を選んだ理由は、名前を聞いたことがあるしカッコ良さそうだと思ったからです。
2.参考書をいちから読む
このときは、まだプログラミングが何かということすらあまりわかっていなかった頃ですので、効率的な勉強方法も知りませんでした。
参考書を最初から最後まで網羅的に読み込めばプログラミングの技術を身につけることができると思っていたんですね。大間違いでした。
また、C言語の参考書だと思って買ったその本は、基本情報技術者という資格に出てくるC言語問題対策の教本でした。
それでも体系的にC言語について学べはしたのですが、環境構築の手順が優しくなく(書かれた通りにやっても全く動かない。ネットで調べても出てこない)、実際に動かして確認するという一番重要な作業を飛ばして勉強を進めていました。
もちろんやっていくうちにつまらなくなってやめてしまいました。このときプログラミングの理想とギャップに打ちのめされました(もっと楽しく勉強できると思っていた)
1回目の挫折です。
3.Javaで再チャレンジ+手を動かしながら勉強
それから1年ほど経過した頃、またプログラミングやってみたいという気持ちが出てきたので、前回挫折時と同じく参考書を買いに行きました。
他に知っていた言語にJavaがあったので、次はJavaの参考書を買いました。
このときは、前回挫折したときの経験から、絶対に実行結果を確認しながら進めないと、途中でつまらなくなってやめてしまうと思い、PCで環境を用意してから始めました。
ただ基本的な勉強方法は前回と同じく、参考書をいちからやれば自ずと力がつくだろうと思って進めました。
結果としては、毎回実行結果も確認しながら、なんとかJavaの参考書を最後まで読み進めることができました。
最後の方はすでに飽きていて、ほとんど惰性で勉強していた記憶があります。
僕の勉強法が正しければ、この時点でJavaでアプリの1つくらい作れるようになっていなければなりません。
しかし、参考書を読破して気づいたことは、自分の中に残っているのはどこで使うかもわからないJavaの知識だけで、Javaを使用して何かを作るスキルは一つも身についていないということでした。
この事実に気付いた僕は、軽い絶望感を感じ、途方に暮れ、そのままプログラミング自体をやめてしまいました。
2回目の挫折です。
4.高校の情報科で学ぶ(結局独学じゃない)
高校を選ぶとなったとき、自分の中にはまだプログラミングを習得したいという気持ちはあったので、迷わず情報科がある高校を受けました。
無事合格し、そこでまた一からプログラミングについて学び始めます。
授業の内容としては、自分が挫折したときと同じく、参考書の内容を一からやっていくというものでした。これについてはそこまで大した力はつかなかった気がします。
僕は部活動も情報部に入りました。
ここでは先輩たちがC言語の文法を新入部員に教え、きりの良いところまで教えたら演習問題を解かせるという流れでした。
この演習問題を解くというのが僕にとっては効き目があったようです。
なぜなら、問題内容が自分でロジックを考えて解くように仕向けられていたからです。
これまで僕が読んできた参考書では、
- 〇〇という機能があります、実際に試してみましょう。
- コードを書き写す
- 実際に動くことを確認する(物足りない)
といった流れでした。自分の頭を使うというフェーズがどこにもなかったんですね。
しかし、高校の部活での演習問題では、if文を使用して〇〇の場合は△△させなさい(簡単な例)のような感じで、プラスで応用問題もついてくるといった流れでした。
これは、C言語自体の勉強というより、プログラミングの考え方そのものを学ぶことができました。
ここで気づいたことは、プログラミングの勉強において一番重要なことは、自分の頭で考えることだと言うことです。
そして、参考書をなぞるだけでは、いつまでも成長することはできないと気づきました。
プログラミングの考え方を学んでからは、作ってみたいものが次から次へと思い浮かんできたので、自分の思うままにアプリ、ゲームを開発してきました。
このときにちょうど、参考書がなくてもネットで調べると大概のことは解決できるとわかりました。
参考書はあくまで勉強をはじめる足がかりでしかなかったんです。
ここまで幾度か辛い思いをしてきましたが、こうして最終的にはアプリを一から開発する力を身につけることができました。
僕が今から始める場合の独学ロードマップ
ここまでとても長い文章を読んで頂きありがとうございます。
それでは、効果的な勉強方法がわかっている今の僕が、プログラミングの知識が全くのゼロの状態で勉強を始めるとしたら、どうやって独学していくか考えを共有したいと思います。
さっきの話では、「結局お前は独学で習得したわけではないじゃないか」という声が聞こえてきそうですが、勉強のやり方さえわかっていれば独学でもさほど苦労しなかったと思います。
ですので、過去の自分に独学で勉強するならこうしたほうがいいよと教えるつもりで書かせていただきます。
1目標を決める
まずは目標を決めます。
理由はシンプルにモチベーションを継続させるためです。
目標は達成可能で目に見えやすく、達成の基準がはっきりしているものがいいです。
一番わかりやすく効果的なのは、作ってみたいものを見つけることです。
例:
・勉強がてら目覚ましアプリでもつくろうかな
・ファイルをリンク化してみんなと共有できるwebアプリ作りたい!
また、それを作るために必要な技術を逆算しながら勉強して作っていくことで、役に立つ技術だけを集中して習得することができます。
つまり、学習効果を最大に高めることができます!
2実際に手を動かす
目標が決まれば、後は実際にプログラムを書いていきます。注意点として、初めから座学をしようとしないでください。
C言語を使ってアプリを作るから、まずはC言語の変数について勉強して、次はクラス、ポインタ…
なんてやっていると日が暮れてしまいます。
イメージは、
C言語で目覚ましアプリ作りたい!じゃあ手始めに今の時間を取得してみよう。どうしたらいい?よしググろう!->「C言語 現在時刻取得」
のような感じです。
とりあえずやってみるが一番大事になってきます。
とは言っても一番最初は何から始めればいいの?と思った方もいるかと思います。
その場合、足がかりとして対象のプラットフォームや、アプリ種類を考えてみてください。
- Webアプリ
- スマホアプリ(Androidかiosか)
- スマホゲーム
- PCゲーム
すると、ググり方も見えてくるはずです。例:webアプリ 作り方
調べてみると、次の疑問点もすぐに浮かび上がり、自ずと開発を始めることができます。
そうこうしながらアプリを組んでいると、いつの間にか開発力を身につけることができているでしょう。
以上が僕がプログラミングをこれから始めるとしたらの独学ロードマップになります。
割とシンプルで拍子抜けしたかと思いますが、実際にやってみると本当に効果的で驚きます。
スクールに通うのも手の一つ
ここまで独学で習得する話をしてきましたが、とはいっても独学だけというのは至難の業です。
実際僕も幾度か挫折を経験し、高校の情報科で教えてもらってやっとできるようになりました。人に教えてもらうというのは効果絶大です。
独学が難しいと思った場合は、プログラミングスクールへの入校を考えてみると良いかもしれません。
作りたいものがある人は強い
ということで今回は独学のやり方について紹介していきました。
この記事で最も強く言いたいことは、作りたいものがある人は強いということです。
僕も、自分が作りたいものを必死に作っていたときが一番楽しかったですし、一番成長を実感する瞬間でもありました。
ぜひこれから独学したい方は、なんでもいいので1つ作りたいものを見つけてみてください。