これは結局プログラミングって手段なんだよねと関連することなのだが、プログラミングの学習で頓挫するケースの大半はプログラミングの学習を「ある課題(アプリ開発やバグ修正などを)を解決するという目的を達成するための手段」と捉えているのではなくて、「プログラミングを学習すること自体が目的」と化している可能性が高いのではないのかと考えている。
プログラミングの学習をある目的を達成するするための手段とした場合
個人的にはプログラミングの学習を「ある目的を達成するための手段」として捉えた場合、例えばとあるアプリを開発するといった場合などでは、それを完成させるためには何が必要なのか、どういうアルゴリズムを立てる必要があるのか、どういうフレームワークを使えばいいのか、どういうコードを書けばいいのかをある程度組み立てることができるようになる。そうすることによって、必要なものを学習し、適宜アウトプットできるようになり、のちにも似たようなことがあった場合、対応しやすくなるのではないのかと考えている。
こういう学習の仕方をした場合、たとえ他の言語を使うことになった場合でも、最初は言語やフレームワーク、ライブラリーなどの違いで戸惑う可能性はあるのかもしれないが、似たような解決方法を調査して実現しやすくなるだろうと考えている。
プログラミングの学習自体が目的となってしまった場合
では、プログラミングの学習自体が目的となってしまった場合は私はこのように考えている。それは、関数やオブジェクトの使い方、ライブラリーの使い方など、言語仕様やライブラリーの知識はつくだろうとは考えている。しかしながら、どういうアプリあるいはライブラリーなどを作りたいのか、どういうものを作る必要があるのかということまでに目がいかないために、実際の開発には対応できずに、結果として頓挫してしまうというのが多いのではないのかと考えている。
当方の経験から
実際のところ、私の場合、プログラミング入門書はほとんど読んだことがなく、初めて作ったパソコンアプリについては、どうしようのないものであったが、いきなり見様見真似で、なおかつどういうことが必要なのかを適宜インターネットやリファレンスなどで探してそれを使うというやり方で学習していった。
若干プログラミングとは離れるが、今このブログを運営しているサーバーの構築も、基本的には自力でやってみて、わからないところを調べて作り上げた結果である。
最後に
正直なところ、プログラミングの学習は入門書を読むことでその言語での言語仕様や関数の使い方は学習することはできるだろう。しかしながら、実際にどういうアプリを作りたいのか、どういうところを修正したいのかといった実践面では限界が出てくる可能性が高いと考えている。
ゆえに、個人的にはプログラミングを学習するあたっては、まずは何を作ってみたいのかに着目して学習してみてはいかがだろうか。特に頓挫した場合はなおさらである。
ウェブマスター。本ブログでITを中心にいろいろな情報や意見などを提供しています。主にスマートフォン向けアプリやウェブアプリの開発を携わっています。ご用の方はコメントかコンタクトフォームにて。