見出し画像

【初心者】プログラミングはどうやって学んでいくべきか-Part2

5.プログラミングを継続していくためには?

ではプログラミングを続けていくために必要なものは何なのでしょうか。

■プログラミングが好き、楽しいと思えること

あたり前のことかもしれませんが、好きこそ物の上手なれ、というように、プログラミングの事自体が好きだ、楽しいと思える人にとってプログラミングを続けていくことは、それほど辛いことではないと思います。とはいえ、プログラミングが好きな人であっても他のことに時間を取られてなかなかプログラミングに時間を避けない時期もあると思いますので、1週間に1回は特定の言語で簡単なスクリプトを書く、など軽いノルマを設けるのも良いかもしれません。

まだ全然プログラミングが好きとかそういうレベルに達していない、という人もいると思います。そういった人はプログラミングを好きになる努力をしてみるのも良いと思います。例えば、何か自分の好きなものや興味あるものと絡めてプログラミングを学ぶのが良いと思います。少し例になりそうなものを上げてみたいと思います。

・マインクラフト

マインクラフトではプログラミングしながらゲーム内のオブジェクトを操作してくようなことができます。環境構築もそれほど難しくないようですので、簡単に始められるのも利点です。

・iOSのショートカットアプリ

iOSに搭載されているショートカットアプリ上で自分なりのショートカットを作成するのも良いと思います。このショートカットアプリにはプログラミング要素はあまり必要ないのですが、自分で論理を組み立てることができ、またちょっとした操作を楽にするボタンが作成できるのでそういった達成感を味わうことができます。私はプログラミングの本質は、「一定の操作の自動化」にあると思いますので、自作ショートカットの作成はプログラミングの楽しさの一端を気軽に味わえる点で良い方法だと思います。

・エクセルVBA

実用性を求める人は、エクセルのVBA(マクロ機能)を利用するのが良いと思います。エクセルのVBAは、エクセルさえPC内に入っていれば使用できますので、こちらも環境構築がとても簡単です。そしてエクセル上での操作をマクロとして記録する機能もあるので、困ったときはこの機能でやり方を学ぶ事もできます。私も過去に何度かVBAでマクロを作成したのですが、こうした機能を仕事で活用できると少し楽しい気持ちになりますよ。

・Adobe Illustrator

Adobe IllustratorにはJava ScriptやApple Scriptを読み込んで作業を自動化する機能が備わっています。毎回決まって行うような作業を自動化してしまうことで、作業効率を向上させることができます。ネット上に無料で公開されているスクリプトもあるので、まずはそういったものを実際に使ってみて、不便に感じた所があればその箇所だけ修正していく、といった方法で少しずつプログラミング言語を学んでいくのも良いのではないかと思います。

色々試してみて自分にはプログラミングが向いているかも、結構楽しいかも、と思えれば、そのあとプログラミングを継続していくことはそれほど苦にならなくなると思います。なかなかプログラミングに馴染めない人は、そういった視点でプログラミングと向き合ってみるのも良いのではないでしょうか。

■モチベーションの維持

上でも少し書きましたが、いくら好きとはいってもモチベーションを維持できないと、なかなか続けられないものです。モチベーションをいかにコントロールするか、というのは重要な課題になってきます。モチベーションを保つ上で大事なことは、(1)目標を明確に持つこと(2)定期的にアウトプットすること(3)その言語でできることを理解すること、ではないかと思います。

(1)目標を明確に持つこと

プログラミングを使って作りたいもの、やりたいことがはっきりしていると、そのために何を学ばなくてはいけないのか、なんのために勉強しているかがはっきりするので、プログラミング学習の定着度が上がります。学習の定着度が高まると成長している実感も得やすいので、モチベーションも高まります。特に、難しすぎない目標を最初にたてることができれば、参考書の内容をすべて終えていなくても、必要な箇所だけ学んで作りたいものを形にすることができるのではないかと思います。そうすることで、徒労感なく学習を継続でき、目標をクリアした達成感からモチベーション向上につなげることができます。

私の場合は、初めてPythonに触れたときには、作りたいものが明確にありました。その時は、「データを読み込み、所定の計算を行って、そのデータをアウトプットする」というスクリプトを作りたいと思い、Pythonの勉強をはじめました。当時の私にとってPythonはマクロ以外で初めて触れるプログラミング言語でしたので、できるだけ簡単な本で概要を掴みたいと思って下記の本を読みました。

Head First Python 第2版 ―頭とからだで覚えるPythonの基本

その時はあまり時間もなかったので、ファイルの読み込みと書き出しをどうやるのかはネットで調べ、Pythonで初めて触れたリストの使い方だけ上記の本で勉強しました。ざっと説明を読んで、少し例題をやる程度で終わらせました。計算の処理は、ネットでnumpyの使い方を調べれば、あとは数学的な問題なので試行錯誤しながら欲しい物を作っていきました。このとき私が感じたのは、上記のような簡単なスクリプトであれば、データの読み込み、リストへの格納、そしてそのデータの書き出しの方法がわかればなんとか形にできるんだ、ということでした。

もちろん、基礎を徹底的に学ぶことも大事だと思います。私は飛ばし飛ばし勉強したこともあり、まだクラスの概念もそれほど理解しているわけではないですし、とてもPythonを使いこなしているとは言い難いと思います。ですが、それでもモチベーションを維持してPythonで何かを作ることを続けられているのでそれでも良かったのかな、と思っています。あくまでモチベーション維持ができている一例として参考にしてもらえると良いかと思います。

(2)定期的にアウトプットすること

ある程度プログラミングが楽しいと感じる人にとっては、何かスクリプトを書いてそれを作り終えたときは、それがたった数行のものだったとしても多少の達成感を感じると思います。さらに、私の場合はこうしてアウトプットしたものが実際に、日常生活や仕事で活かせたときや、noteなどに投稿して人から見てもらえたり、反応がもらえたりしたときに「やってよかったな」と感じます。このように自分で考えたものを実際にスクリプトという形でアウトプットし、それを活用したり、人に評価してもらったりする機会を持つことでやる気がアップすることも大いに有り得るので、これを積極的に利用してみてはどうでしょうか。

モチベーション維持からは少し話がそれますが、自分の作ったものを他人の目に触れるようにする機会を持つことは非常に重要だと思います。なぜかというと、他人の目に触れることを意識することで、プログラムを書く際にもできるだけ簡潔に書ける方法がないかということを考えたり、自分以外の人が自分の書いたプログラムを読んで理解しやすいような注釈を入れたりと、自分だけでプログラミングをしていたときとは異なる視点でプログラム作成ができるようになります。自分一人で作業をしているとどうしても細かいところや体裁などは軽視しがちになり、後で見返したときに「この行はなんのために存在するんだっけ?」と思うようなところが出てきます。ですが、他人が理解しやすいプログラミングを意識していくことでプログラム自体の可読性が向上し、後で見返しても比較的わかりやすいプログラムを作成できるようになります。私は結構ズボラな人間なのでプログラミングの可読性などは軽視しがちでしたが、作成後1ヶ月以上が経過したプログラムをあとから読むと、自分が何を思ってそうしたのかわからず、読むことすらめんどくさくなってしまうこともよくありました。決してこうなってはいけません。

(3)その言語でできることを理解すること

私はある言語の底が見えそうになったとき、モチベーションの低下を感じてしまいます。大体の場合は、その言語でできることを理解しきれておらず、使い方の一端だけを知っているために起こる現象だと思うのですが、マクロ機能などを使っているときには本当に限られたことしかできないこともあります。言語の底が見えてしまうと、「こんな機能は搭載できるかな」とか「この機能はこういう風に使えないかな」といった創造的な発想の妨げになってしまうし、なんとなくその言語への期待感が失われてしまうので私個人としてはモチベーションがかなり下がります。そういった意味では、その言語でできることをしっかり理解しておいて、言語のごとの役割を把握しておくことで、「この言語の範疇はここまで」と自分の中で切り分けができるようになるのでこの種のモチベーション低下は起こりづらいのでは、と思います。

この話はもう少しだけ続けようと思っています。次回は、プログラミングを学んでいく上での障壁や勉強の仕方のついて、私なりの考えをまとめたいと思います。ではでは。

この記事が気に入ったらサポートをしてみませんか?