
未経験でプログラミングを独学で進めているけど、全然分からない。もはや何が分からないのかも分からない。独学でプログラミングなんて、可能なの?やっぱりスクールに通ったりした方がいいの?

こういった疑問に答えます。
この記事を書いている私は、プログラミング歴10年でして、現在はクラウドエンジニアとして活動しています。
プログラミング独学方法について、私の実体験に基づいて解説します。
プログラミングの独学は可能です
結論、プログラミングの独学は可能です。
というより、プログラマーになると独学は必須です。
なぜかというと、プログラマーはどうやってその問題を分析し、解決に導いていくかを一人で考えていく必要が出てくるためです。
プログラマーになり、日々技術を学んでいくと、いつか誰も知らないエラーや問題にぶつかることがあります。その時には、本やその辺の人に聞いてもすぐに答えは出てこないことが殆どです。
つまり、プログラマーとして常に最新の技術を学び続けるためには、ある程度独学で学んでいける経験を積む必要があります。
補足:独学といっても常に一人でやる必要はありません
こういうことを書くと「ずっと独りで学習しなければいけないんですか?」と不安に思われてしまうかもしれません。
独学をする中でも、適切なタイミングで交流や有識者への質問をすることで、プログラミング学習を加速させることができます。
例えば、プログラミング界で有名なJavaScriptフレームワークであるNode.jsというものがありますが、これはGitHubで公開されています。
GitHubはオープンソースソフトウェアという無償でソースコードを公開するサービスです。ここでは無料で開発者に質問する機能が備わっており、そのソフトウェアについて質問したいことや改善したいアイディアを共有することができます。
こういった所で質問をすることで、プログラミング業界の有識者と繋がることができますし、自分の技術力に自信をつけることができます。
つまり、独学でプログラミングを勉強することも可能ですが、適宜分からないことがあれば、各技術の有識者に質問することで、効率的に自身の技術力を高めていくことができます。
プログラミングの独学は「何かを作りながら学ぶ」がおすすめです
結論として、プログラミングを通して何を作るのかテーマを決めることをおすすめします。
プログラミングの本を読んだりスクールに通って技術を学ぶだけでは、その技術がなぜ必要なのかということを意識することができないからです。
例えば、プログラミング技術の中で「オブジェクト指向」という考え方があります。私はオブジェクト指向を勉強した時に「これが何で必要なんだ?」と思いました。しかもそれがかなりの期間分からないままでいました。
でも、いざ「これを作ろう」と自分で決めてプログラミングをしてくるとやりずらい所がいっぱい出てきました。そこで始めて「オブジェクト指向」がなぜ役立つかということを理解しました。
つまり、自分の作りたいものに対して必要な技術を的確に学ぶことができるため、理解度が深まります。
よくある質問①:作りたいものが無い場合はどうすればいいですか?
「そもそも、何を作りたいのか決められない場合はどうすればいいの?」という疑問があると思います。
そういった場合には、まずは電卓を実装してみることをおすすめします。
電卓によって、様々なプログラミングにおけるスキルを身につけることが可能となります。
電卓は、基本的には簡単な四則演算を持っています。でも関数電卓という、様々な演算機能を組み合わせた電卓を作ろうとすると、プログラミングをする上で必要なテクニックが登場してきます。
例えば、演算の中身を正確に把握するために「正規表現」が必要になったり、演算機能を抽象化させてコード量を小さくするために「オブジェクト指向」が必要になったりします。そういった経験の中で、プログラミングのテクニックがなぜ必要なのか、どういう所で使えるのかを実践を通して学ぶことができます。
これはあくまで例ですが、まずは「自分が動作内容をイメージし易い」簡単なものを作ってみることがおすすめです。
よくある質問②:作っている中で躓いたらどうしたら良いですか?
「作りたいものを決めて、実際に作ってみました。でも分からないエラーが発生して中々前にすすめません」という質問が出てきます。
そこで、次に説明する独学テクニックをご紹介します。
プログラミングで躓いたときは「とりあえずググる」がおすすめです
結論、プログラミングで躓いたときは「とりあえずエラー内容でググる」ということを実践しましょう。
なぜかというと、エラー内容をググると同じような問題で躓いている人が、それをインターネット掲示板等で質問していたり、ブログ記事にしていることが多いためです。
例えば、WordPressを使っているとこのようなエラーが出てきます。
「送信された URL に noindex タグが追加されています」
一見意味わからないですよね?noindexって何?とかタグって何のタグ?とか色々・・・。
もはや初見だと何が分からないのか分からない状態です。
そこで、上記のワードをとりあえずググってみます。そうすると、検索したワードがそのままヒットして、その原因と改善方法が分かりそうなサイトがいくつか発見できます。
よくある質問:ググっても分からない場合はどうしたら良いですか?
「ググってみました。でも似たような内容が出なかったり、試してみても上手くいかなかった場合はどうしたら良いですか?」という質問も出てきます。
結論、ここで初めてプログラミングスクールを検討するのがおすすめです。
今の段階でプログラミングスクールを検討すれば、今あなたが何を実現したいのかがより明確になっているため、スクールの選定もし易いですし、スクールに通うことに対する明確な行動内容が定まるためです。
プログラミングスクールには、様々な学習コースが用意されています。例えばHTMLやCSS、Ruby等を学びたい場合はWebアプリケーションコース、アプリ開発を学びたい場合はAndroid/iPhoneアプリコース、といった具合です。自分に合ったコースを探して受講していきましょう。
プログラミングスクールの選び方についてはこちらで詳しく記事にしていますので、ご興味あれば是非ご覧ください。
ということで、今回は以上になります。
最後まで読んでいただきありがとうございました。