プログラミング学習5つのコツ

2020年から小学校 (2021年から中学、2022年から高校でも) でプログラミングの必修化が始まり、プログラミングのスキルは以前にも増して求められる様になってきました。

しかし、多くの人たちが新たなスキルを身につけようと、プログラミングを学び始めたものの、ある程度の割合で挫折する人が出てくるのも事実です。

そこで今回は、職業訓練校や企業研修などで多くの初学者を見てきた筆者が考える、プログラミングを身につけるためのコツを5つ紹介したいと思います。

それぞれについて説明していきたいと思います。

「できる」と信じる

現在、多くの人たちがプログラミングを学ぼうとして、そのうちの何割かの方が挫折していますが、それでも私自身は

「プログラミングに才能はいらない」

と考えます

確かに、普段使わない考え方をしなければならず、それを身につけることを「簡単」だとは言いませんが、積み重ねていくことで確実に身につけられるものです。

例えば車の運転の場合、自動車学校に通って始めて運転したときには、色々な事が難しかったと思います。

常に前方やミラーを見て安全を確認しないといけないし、信号や標識にも対応、曲がる時の内輪差、バックの方法、マニュアルだとギアの切り替えなど、身につけるべきことはたくさんあります。

しかし、それでも自動車学校を卒業する頃には、誰もがそこそこ運転できる様になってきますし、免許を取り立ての頃はぎこちなかった運転も、日常生活レベルで使ったりすると、どの様に運転するのか?というのは考えることもなく無意識でできる様になっていきます。

実際、自分には車の運転の才能があるのか? と考える人はほとんどいないと思います。

プログラミングもそういう物だと思います。
決して、才能のある一部の人たちが身につけられる特殊能力ではありません。

ですので、まずは自分が「プログラミングができる様になる」と信じることが大切です。

暗記はしない

「調べられるものを、いちいち覚える必要はない」

上記の台詞は、相対性理論で有名なアルベルト・アインシュタインがある博士から「自分の電話番号も分からないの?」と言われたときに応えた物です。

これは本当にその通りで、プログラミングにも同じことが言えます。

プログラマーと言えば、パソコンに向かって、カタカタとキーボードを叩き、ひたすらコードを書いているイメージがあるかもしれませんが、あれはドラマや漫画の世界だけの話で、実際の現場のプログラマーは、かなりの時間「調べる」ことに時間を費やしています。

つまり、プログラムは調べながらできればそこがゴールで、何も見ずに書く必要など、どこにもありません。

いろいろとプログラムを書いているうちに、よく使うものを結果的に覚えてしまうことはあっても、意図して暗記して覚えようとするのは、プログラミングの学習でほとんど効果はないので、やめておくべきです。

失敗を恐れない

多くの人が持っている誤解に

「失敗はしない方が良い」

というものがあります。

これは「失敗」が「成功」と相反するという考えが元になっていると思いますが、実は「失敗」というのは「成功」までのステップの一つにしか過ぎません。

成功と失敗

特にプログラミングでは、この考えが重要になってきます。

実は、プログラマーというのは最初から正しいコードを書くというのは非常に稀で、多くの場合は

というステップを繰り返して、最終的にきちんと動くものを作っています。

つまり、プログラマーとして必要な能力は、最初から正しいコードを書く力というよりはむしろ、失敗の結果を受けて改善していくことの方にあります。

そう考えるとプログラミングで「失敗」というのは「しても良い」どころか「しなければならない」ものだと言うことができます。

自分で考えてやってみる

筆者はプログラマーとして働く前は、学習塾で高校生たちに数学や物理を教える仕事をしていました。そこには当然、勉強ができる生徒、できない生徒、色々な生徒がいましたが、こと数学にかけては、できる生徒とできない生徒の間に顕著な傾向が見てとれました。

それは、数学ができない生徒は問題の「解答ばかり見ている」・・・つまり、問題の解答を理解することに一所懸命になってしまうのです。

では、できる生徒はどうかというと解答も当然見ますが、それ以上に問題を「自分で解く」ということを、それ以上にやっています。

これはプログラミングの方にも見てとれる傾向です。つまり、プログラミングができる様になる人は自分でコードを書くことを積極的にやっているのに対し、ならない人は、ずっと書籍などの他の人が書いたプログラムを理解する方に一所懸命になってしまうのです。

これは、「直接学習」ができているかどうかに関連してきます。

直接学習間接学習
説明自分で実際にやってみる。講義を聴く。
本で読む。
長所・深く学べる。
・言語化しにくいものも学ぶ事ができる。
・効率よく学べる。
・リスクがない。
短所・効率が悪い。(時間がかかる)
・場合によってはリスクが発生する。
・学びが浅くなりやすい。
・言語化しにくいものは学ぶことが難しい。

プログラミングにおいては、自分で実際にプログラムを作ってみるのが「直接学習」。授業を聴いたり書籍を読んだりするのが「間接学習」になります。

「直接学習」は時間がかかって効率があまりよくない反面、深く学べる、言語化しにくいものも学べるという特徴があります。

つまりプログラミングが「できる」様になるまで身につけるには、この直接学習が不可欠なのです。

たまに生徒から「自分でプログラムを書いてみようとしたら、調べたりエラーを解決するのに気づいたら数時間かかってしまう事がある」と相談を受けることがありますが、これは解決すべき問題どころか、きちんと直接学習ができている良い傾向であると言えると考えます。

また、多くの人が「プログラミングができる様になったら何か作ろう」と考えますが、プログラミングができる様になる人の多くは「何か作っているからプログラミングができる様になる」というルートを辿っています。

プログラミング習得のルート

継続する

最後は「継続する」という話になります。

世の中にはいろいろな能力、スキルがありますが、私はこの「継続する」という能力を持った人が最強だと考えています。

前節で、私が昔 学習塾で高校生たちに教えていたお話をしましたが、生徒たちには東大や京大に行ってしまう、自分よりも頭の良い生徒たちも何人かいました。

そして、彼らの凄さは何かというと、彼らは決して「一所懸命に勉強している」から凄いのではない。そうではなくて「当たり前に勉強している」から凄いのだと気付かされました。

頭の良い人たちが「全然勉強していない」という事を言うことがよくありますが、あれは実は半分嘘で半分本当だと思います。

半分嘘というのは、当然勉強していないことなんてないのですが、半分本当というのは彼らは勉強することが「習慣化」されていて当たり前になっており、一所懸命やっているという感覚があまりないのです。

プログラミングは一朝一夕で身に付くものではありません。小中高生の勉強と同じ様に経験と時間を積み重ねていく必要があります。その為にはプログラミングに触れる「習慣」が大切になってきます。

私は職業訓練校などで生徒たちに

「明日の1時間より今日の15分」

ということは毎回話しています。

明日の1時間より今日の15分が大切な理由は

という2つの理由があります。

まず「明日1時間やろう」は結局今日やることを先延ばしにしてしまっている為に、その癖がついてしまう。明日やろうで本当に明日できれば良いのですが、明日は明日の都合が出てくるので明日になってもできない事が大半になってしまいます。

もう一つの習慣化は、通常21日連続でやれば習慣になるということが言われますが、この「連続でやる」というのが習慣にしていく上で不可欠なものになります。そうすると「明日の1時間」と「今日の15分」では勉強時間だけをみると明日の1時間の方が多い様に見えますが、習慣化という観点からみると今日やらないというのは大きなマイナスになってしまいます。ですので、まずは習慣化・・・15分でも良いから毎日やるという考え方が必要になってきます。

まとめ

ここまでプログラミングのコツ

について説明してきましたが、これらの観点を意識しつつプログラミングの学習にのぞんでみて下さい。