こんにちは、元ITベンチャー企業でプログラマーをしていたおしま狩人です。
2020年から小学生への義務教育にプログラミングが必修化されますが、もしあなたのお子さんから

プログラミングってなに?難しいの?
と聞かれたときには

プログラミングは家づくりと同じだよ!
という答えでOKだと思います。
プログラミングを義務教育化する理由として、”論理的な思考を育てる”という目標が立てられていますが、
子どもにとっては抽象的でわかりにくいですよね。
”論理的な思考を育てる”というのは、プログラミングを学んでいく中で気づいたらそうなっていた!
という副産物的な要素です。
プログラミングを学んでできるようになることに
- スマホやPCで動くアプリを作れる
- WEBサイトを作れる
- エクセルの作業を自動化できる
などがあげられますが、
今回はお子さんにもあなたにとってもイメージがつきやすい、スマホで動くアプリを家づくりと比べながら説明していきますね(`・ω・´)
アプリ = 家づくり
スマホのアプリを家づくりで説明していきます。
まずは必要な項目を書き出してみましょう。
比較項目 | 家 | スマホアプリ |
骨格 | 鉄筋や木材、コンクリート | HTML |
装飾 | フローリングや窓ガラス | CSS |
外部との連携 | 水道や電気、ガス | JavaScript, Python, Rubyなど |
それぞれをサクッと解説していきますね。
骨格
家でもアプリでも、骨格となる部分が必要不可欠です。
建物にコンクリートや鉄筋、木材が使われるのと同じように、ぼくらが慣れ親しんでいるTwitterやInstagramの画面上の骨格部分はHTMLというプログラムでできています。
家の骨格部分がボロいと欠陥住宅になるように、アプリのHTML設計が下手くそだとエラーが表示されますし、雑に設計すると美しくありません。
装飾
家に壁や屋根をとりつけただけ…だけでも、住むことはできますが、おしゃれな窓ガラスやデザイン性の高い装飾をしたいですよね。
スマホアプリにおいても適切な配色をしたりアニメーションをつけることによって、みやすく使いやすいデザインになっていきます。
プログラミングでその役割を担っているのがCSSという言語です。
外部との連携
家を建てただけでは、快適な生活を送ることはできません。
水道や電気、ガスの供給をすることで不便なく生活することができますよね。
アプリにおいても、外部との連携をとり持つプログラミング言語が存在します。
骨格 = HTMLと表現しましたが、外部との連携をするPythonやRuby、Javaはアプリの”心臓”といってもいいです。
You TubeやInstagramを支えているプログラミング言語は最近人気のPythonで、Rubyは日本人が開発したプログラミング言語なんですよ。
まとめ

プログラミングってなんだろう?
という疑問でつっかかってしまうのは、プログラミングでできることが多く、イメージがしにくいというのが原因だと思っています。
今回はプログラミングのイメージを掴んでもらうために、身近なスマホのアプリを例にして紹介しました。
余談ですが、少し前まではHTMLやCSSを文字通り”手書き”で入力してキレイな画面を作り上げていましたが、
最近ではクリック&ドラッグで、HTMLやCSSの知識がそれほどなくても設計できるようになっています。
小学生の義務教育にも、まずはこのようなドラッグ&ドロップでプログラムが動くことを体感していくことから始まるようです。
あなたとお子さんのプログラミング理解に、少しでも役に立てたのであれば幸いです。

おしま狩人でした。