これからプログラミングを学ぼうと考える場合、大きく 「独学で学ぶ」、「スクールで学ぶ」の2つの選択肢が出てきます。
スクールが良いのは分かるけど、お金がない・まとまった時間が取れないことから独学を選択する人も多いかと思います。
この記事を読むことで独学のメリット・デメリットが分かります。把握したうえで本当に独学を選ぶべきなのか、プログラミングスクールに通うべきなのかを検討してみてください。

目次
独学で学ぶのは無理?

就職や副業をゴールとするのであれば無理ではありません。実際に私自身も独学からスタートしています。
とはいえ、独学で初めて挫折する人が圧倒的に多いのも事実です。
・手に職をつけたい!プログラミング思考を身に着けたい
・何したらいいか分からない・・
・とりあえず本を買おう
・全く意味不明で挫折 ←大半はここで離脱
つまり離脱率の多さから独学難しい、無理ゲーという流れになっています。
他にもいくつか理由があるので紹介していきます。
分からない場合に全て解決しようとする
特に完璧主義者に多いですが、解決できない→ 自分には向いていない→離脱コースとなっている人です。
ベテランエンジニアでも即解決できない問題も沢山あります。諦めて次に行きましょう。
全てを解決しながら先に進むのは時間の無駄です。
課題に対して調査して解決するスキルは非常に重要ではあるのですが、始めたばかりのタイミングでは特に意識しなくて問題ないです。
初心者向けじゃない本を購入する
これもよくありがちです。
・1週間で分かる〇〇
・○○超入門
・はじめての○○
・漫画で分かる〇○
9割ゴミです。本選びは車と同じくらい慎重に検討しましょう。
プログラミングに限らないですが、外れの本を読む時間は本当に時間の無駄です。
ここで言う外れの本としては、初心者を4章あたりから急に置き去りにする本や専門用語を並びたてて、ひたすら時間を無駄に消費させる本です。
外れ本を選択することで、初心者の向けの本で分からない→自分には向いていない→離脱コースです。
実は著者にも悪意がないケースもあり、本選びは非常に難しいです。
目的が明確ではない

実は一番重要なポイントになりますが、「とりあえずプログラミングが出来るようになりたい」でスタートするのはNGです。
英語を勉強するときに、「ひとまず英語を学んでおきたい」人より、「英語を学んで海外のXXXで働きたい」人のほうが成功しますよね。
プログラミングも同じで「XXXを作ってみたい」、「○○○」が出来るようになりたいのような具体的な目標を持つべきです。
考えても出てこないようであれば、一度やめて時を待ちましょう。
数パーセントの明確な目的なくても出来ちゃうスーパーマンいますが、大半の人はモチベーション保てずに離脱します。

プログラミング独学のメリット

お金がかからない
プログラミングスクールで学ぼうとすると一気に数十万吹き飛びます。
先ほど車選びと同じくらい重要と話しましたが、本当に車が買えてしまうレベルです。
逆に独学の場合はインターネットとPCさえあれば始められます。スマホでは無理です(出来るけど)
1万円台の中古PCでもいいので買いましょう。プログラミングにマシンパワーはいらないです。あとは入口として書籍が1,2冊あるとよいです。
あとよくありがちなのが、iPhoneアプリを作成するためにいきなりMac買っちゃう人です。
99%離脱してyoutube用PCになるので絶対にやめましょう。
時間がある人には有利
プログラミングスクールはカリキュラムが決まっていることが多く、周りと合わせたスピードでゴールまで確実に進んでいきます。
プログラミングスクール等と相対的にみると、自分のペースで出来ることから、時間を惜しみなく使える学生などには独学のほうが有利です。
自分のペースでどんどん進めることが出来るので、本気でやれば1か月でお金を稼げるレベルまで上達することも可能です。
課題解決力が身に着く
先ほど全て解決する必要はないと話しましたが、実は解決する時間が一番伸びます。
そして初心者ほど解決まで時間がかかります。時間がかかる=寄り道するのですが、その寄り道中に効率的な探索方法であったり、周辺知識を得ることが可能です。
プログラミング思考とも呼ばれていますが、プログラミングスクールなどの正解がすぐに分かる環境では身に付きづらいスキルの一つであり、独学を選択する最大のメリットです。
時代が合ってる
いまは様々なサイトから無料で学べるので本当にPC一つで学び始めることが可能です。
ひと昔前までは独学のハードルが高かったですが、いまではやる気さえあれば誰でも初めて学べる環境が整っています。
見方を変えるとプログラミングスクールと独学の差が縮まってきていると考えることもできますね。
プログラミング独学のデメリット

困ったときに解決できない、時間がかかる
よくある「何が分からないのか分からない」状態に必ず陥ります。
ひたすらWeb検索してWeb検索して。。のループに入ります。この流れを耐えることができるか、ある程度見切りをつけて進むことができるか、非常に重要です。
いい問題と悪い問題があるのですが、悪い本にあたってしまうと悪い問題にあたりやすいです。
例)言語を覚えたいのにWindows特有の環境構築でつまづく。しかもメジャーな環境でもなく使えない知識。。
目的を作りづらい

プログラミングの目的は大事なのですが、実はプログラミングスクールの一つのメリットとして近い未来の目標をいくつか立ててくれる点です。
XXXのサイトを作ろう!○○○を修正して△△△にしよう!みたいな感じですね。
なので、あまり目標を意識しなくてもモチベーション維持してくれて続けられる仕組みが整っています。
ただこの話は目的が無い状態で一旦立ち止まることが出来れば問題ないです。
挫折しがち
やはり前述のとおり、挫折リスクは高いです。独学はハッキリいって意志の強い人向けです。
しつこいですが、意思の弱い人でも続けてるために「明確な目標設定」は必要不可欠です。
一人でもくもく取り組まないといけない
一緒にやる仲間がいれば別ですが、大抵は一人だと思うので、モチベーション維持はしづらいです。
その分周りにペースを乱されない・引っ張られないというメリットもあります。
個人的にはメリット推しです。
その他のデメリット
プログラミングスクールは就職に繋がりやすいという声もありますが、あまり変わらないです。副業なりアルバイトなりで実績を積んで理想とする企業に転職も出来ます。
プログラミングスクールに通っていた=一定の知識はあるというお墨付きのようなものなので、githubなどで知識を示せるものがあればデメリットになりません。

結局どうやって始めればいい?
とりあえず、ここまで読んで離脱ポイントは把握したメリット・デメリットも読んだ上で、プログラミング独学は結局どうすればいいの?という疑問が残っていると思います。
以下記事で本の選び方や目的を持つ必要性の話など、もう少し詳細に説明しているので、続けて読んでみてください。