プログラミング学習は安全・快適・簡単!?
ITの発展により、ITを活用した効率化が、世界中で不可欠になってきました。
日本でも、ITの人材不足により、2020年から小学校でプログラミング教育が必修化されます。
今後は、誰でも簡単にプログラミング技術を習得できる教材やカリキュラムが必要になるでしょう。
プログラミングは魔法じゃないので、仕組みは調べたら必ず分かるようにできています。プログラミングは順番に説明すれば誰でも理解できるものです。
問題は、知識が膨大だと学習に時間がかかることですね?
どんな勉強でもインスタント、ショートカットはありませんが、枝葉の知識よりも先に、幹となる本質的な考え方を押さえることが、早道につながると思います。
Pythonの入門書に、プログラミング学習の参考となる話が紹介されていたので、取り上げてみます。
(p.1) 第1章 Pyの味
簡単ななぞなぞから始めよう。次の2行はどういう意味だろうか。
(Row 1): (RS) K18,ssk,k1,turn work.
(Row 2): (WS) Sl 1 pwise,p5,p2tog,p1,turn
なんらかの技術的なコンピュータプログラムのようなものに見える。しかし、実際には、これはニットパターンだ。細かく言うと、靴下のかかと部分をどう曲げるかを説明している。うちの猫がニューヨークタイムズのクロスワードクイズを見てきょとんとするように、私にも意味不明だ。しかし、私の妻なら完璧に理解できる。編み物をする人ならよくわかるはずだ。
では、次の問題。最終的に何ができあがるかはわからなくても、何のためのものかはすぐにわかるはずだ。
1/2 c. バターまたはマーガリン
1/2 c. クリーム
2 1/2 c. 小麦粉
1 t. 塩
1 T. 砂糖
4 c. 潰したじゃがいも(冷やしたもの)
小麦粉を加える前にすべての材料をかならず冷やしておいてください。
すべての材料を混ぜ合わせ、しっかりとこねてください。
20個に分けてボール状にします。次の工程に入るまで冷蔵庫に入れておいてください。
ひとつひとつのボールを次のようにします。
布の上で小麦粉を散らします。
のし棒で平らな丸い形にしてください。
フライパンで茶色い点々が現れるまで焼いてください。
ひっくり返して反対側を焼いてください。
料理をしない人でも、これはレシピだということが分かっただろう。食材のリストがあって、そのあとに準備の方法が書いてある。でも、いったい何ができあがるのだろうか。トルティーヤに似たノルウェーのお菓子、レフセだ。バター、ジャム、その他なんでも好きなものを塗って、くるくると巻いて食べる。
ニットパターンとレシピには、共通する特徴がある。
- 単語、略語、記号といった語彙が決まっている。よくわかるものもあれば、謎に感じるものもある。
- 何をどこで言うかについて決まりである構文規則がある。
- 実行すべきことが順に並べられている。
- たとえばレフセの表裏を焼くという作業のように、ときどき同じ作業の繰り返し(ループ)がある。
- ときどき、なんらかの作業の参照が含まれる(コンピュータの用語では関数と呼ばれる)。レシピでは、じゃがいもを米粒状に潰すためにほかのレシピを参照しなければならない。
- 内容についてある程度の知識があることを前提としている。レシピでは、水とは何か、それを沸かすにはどうすればよいかを知っていることが前提となっている。ニットパターンでは、たびたび失敗して自傷したりせずに表編み、裏編みができることが前提となっている。
- 期待される結果がある。この例では「足を包むもの」と「胃を満たすもの」ができあがる。もちろん、それらを混ぜこぜにしてはならない。
今挙げた特徴は、すべてコンピュータプログラムにも当てはまる。このようなプログラムではない例を持ち出したのは、プログラミングはそんなに神秘的なものではないということを示すためだ。「正しい言葉」と「規則」を学ぶだけのことである。
では、こういった代用物ではなく、本物のプログラムを見てみよう。次のプログラムは、何をしてくれるのだろうか。
for countdown in 5, 4, 3, 2, 1, "hey!":
print(countdown)
次のような出力を生成するPythonプログラムなんじゃないかと思ったのなら、
5
4
3
2
1
hey!
確かにあなたはレシピやニットパターンよりも簡単にPythonを身に付けられる。そして、Pythonプログラムは、熱湯や先が尖った編み棒のような危ないものにびくびくせずに、机の上で安全快適に書くことができる。
いかがでしょうか?
- ニットパターン(編目記号)
- 料理のレシピ
- コンピューターのプログラム
どれも、「規則」と「順番」があるだけですね?
プログラミングで間違えても、パソコンが爆発するような危険はありません。(笑)
プログラミング学習も肩肘張らずに、楽しくどんどんやりましょう!