プログラミングをこれから習得したいと考えている人が、まず最初に理解しないといけないことは、プログラミングは手段であり目標ではないということです。
何事もそうですが、何かを習得するには継続が重要です。
目標なしの手段の習得は、いわゆる「お勉強」になってしまうので、長続きさせるために意志力を必要とします。
使うかもわからない重要ではないプログラムの書き方に捕らわれ、面白くもない例題に時間を費やすことになります。これでは継続できなくても仕方ありません。少なくとも筆者には耐え難いです。
逆に、目標達成のために、必要にかられるという状況にすることで、好奇心を原動力にできるため意志力が不要になります。
プログラミングにおいては、製作するアプリケーションを目標として設定し、達成したら新たな目標を立て、それを続けることが、継続するコツです。
目標となるアプリケーション作成に成功すると、とても気持ちが良いです。癖になりやめられなくなります。嫌でも継続することになるでしょう。(筆者のことです笑)
また、習得すべきは「プログラミング」であり、「プログラミング言語」ではないという点にも注目したいです。
目標が定まれば、プログラミング言語(手段)は自ずと決まります。逆に、目標無き手段(プログラミング言語)は貴方にとって習得不要と言えます。
本記事では、プログラミングを最短で習得するために最も重要な目標の決め方について、ご紹介します。
目次
まずは作りたいアプリケーションを思い描くことが大事
まずは、作りたいアプリケーションを思い描きましょう。
ポイントは、ちょっとでも心が動いたものを作るということです。
- これが作れたらかっこいいと思うもの
- こんなのがあったら面白いと思うもの
特に、新しいものや有用なものでなくても良いと思います。
自分が作りたいと思った、その気持ちを大切にしてください。
作りたいアプリケーションに必要な機能を洗い出す
作りたいアプリケーションが決まったら、必要な機能をリストアップします。
例として、To-Doアプリを作成する場合を考えてみましょう。
To-Doアプリには下記機能が必要です。
- リスト表示
- データ保存
- 編集機能
- 追加
- 変更
- 削除
- チェックボックス
アプリケーションの構成を考える
機能がリストアップできたら、次はアプリケーションの利用方法を決めます。
パソコンを使うのか、タブレットやスマホを使うのか、OS依存するアプリケーションで良いのか、OS依存しないほうが良いのか。
はたまた、パソコンやスマホを利用せず、ArduinoやESP32、M5Stackなどを利用するのか等を決めます。
また、複数端末でデータを共有する場合は、サーバが必要になります。
アプリケーションの構成決めは、情報収集が肝になります。
IT革命以降、システム構成の選択肢は増え続けています。
技術革新は基本的に便利な方向に向かうため、新しい技術を使えば目標物の作成が楽になる可能性があります。
逆に枯れた(古い)技術を利用すれば、書籍やWebの情報も多く、不具合が出尽くしているため、安定したアプリケーションを作成可能です。
簡単にですが、To-Doアプリの例を考えます。
スマホを使ったOS依存しないものにしたいけど、複数端末間でデータ連携不要としたい場合は、ブラウザアプリになります。
WebサーバにHTMLファイル(CSSとJavaScript)を置いて、スマートフォンのブラウザでHTTPアクセスして利用します。
ブラウザアプリの場合、言語は、JavaScriptか、TypeScriptを利用できますが、簡単のためJavaScriptとします。Webサーバはレンタルサーバ等でWebサーバのミドルウェア(Apacheやnginx等)を利用するのが簡単です。
世の中には先駆者がいくらでもいるもので、車輪の再発明を防ぐためにも、アプリケーションを楽に開発できる手段を考えるべきです。
フレームワークやライブラリを利用すれば、短いコードで必要な機能を実装できます。
選ぶコツは、ずばり利用者が多いことです。
利用者が多いほどWeb上に情報が多く、サンプルプログラムを得やすいです。
迷ったらGoogle検索結果数が多い方を選ぶようにしましょう。
Webや書籍から必要な機能のサンプルプログラムを集める
次に、作りたいアプリケーションに必要な機能のサンプルプログラムをWebや書籍から見つけてきます。
Webで済ますか、書籍を購入するかは、その人のレベルによって変わってきます。
プログラミング歴10年以上の筆者でも、全くの未知の領域であれば書籍を購入します。サンプルプログラムが十分に載っていそうなものを選びます。
ある程度の知識を持っていれば、検索ワードが頭にありますので、Web検索すれば十分な情報が出てくる場合もあります。
守破離の順でアプリケーションを構築
ここからは、「守破離」が重要になります。
最初はサンプルプログラムをそのまま動かして、動きが理解できたら、自分なりにアレンジしてみる。問題なければ自分の作りたいアプリケーションに取り入れるという流れです。
しゅ‐は‐り【守破離】
剣道や茶道などで、修業における段階を示したもの。「守」は、師や流派の教え、型、技を忠実に守り、確実に身につける段階。「破」は、他の師や流派の教えについても考え、良いものを取り入れ、心技を発展させる段階。「離」は、一つの流派から離れ、独自の新しいものを生み出し確立させる段階。
https://kotobank.jp/word/%E5%AE%88%E7%A0%B4%E9%9B%A2-689006
【守】サンプルプログラムを単体で動かす
サンプルプログラムをそのままコピーして、問題なく動くことを確認します。
Webには不完全なサンプルプログラムも多々存在するため、どうしても動かなければ、別のサンプルプログラムを試してみるのも良いでしょう。
無事に動いた場合は、ソースコードの内容を理解するように努めます。
【破】サンプルプログラムを少し変えて動かす
サンプルプログラムのソースコードを変更して思うように動くことを確認する段階です。
ソースコードを変更するには、ソースコードの正確な理解が必要になります。
ここがポイントで、ソースコードで分からない部分があれば、徹底的に調べます。
この時にプログラミングの能力が無意識に高まります。
【離】作りたいアプリケーションにコードを取り込む
サンプルプログラムを変更しても問題なく動くことが確認できれば、モノにできたも同然です。
あとは、自分の目標とするアプリケーションにソースコードを取り込みます。
守破離を繰り返す
必要な機能を取り込み終えるまで、上記の守破離を繰り返します。
プログラミングに慣れている人は、いきなり【離】からでも問題ありませんが、たまに使い方の予測を外すことがあり、その場合は原点である【守】に立ち返るようにします。
プログラミングにつきもので時間を要するものといえば、エラー修正です。
エラー修正は長引くほどモチベーションが奪われるため、挫折を招きます。
守破離の順を守れば、【守】で既に動くものを用意しているので、それほどエラー修正に時間がかかりません。
武道にも通じる守破離が、プログラミング習得の最短ルートです。
作りたいアプリケーションができる頃には、いつの間にかプログラミング言語を使いこなせるようになっています。
目標となるアプリケーション例
プログラミングを習得する上で、まずは、目標を決めることが大事ですが、何を作ったらよいか分からない方もいると思います。
筆者も前述の通り、癖になりやめられなくなっているので、何か作りたいという欲求が常にあり、目標物設定には結構悩みます。
というのも、本記事に書いたことを実践すれば、プログラミング能力が確実に高まり、目標物がすぐにできるようになってしまいます。これにより目標物が枯渇するのです。。
そんな方のために、下記ページでは、目標となるアプリケーション例をいくつかご紹介しています。いくつかは、サンプルプログラムとしても利用可能です。
ぜひプログラミングの守破離を実践し、プログラミング能力を高めてください。
コメント