【書評】「マンガでやさしくわかるプログラミングの基本」はプログラミング学習の疑問に答えてくれる書籍
先日、編集部さんよりご紹介いただきまして、「5分間キャリア・コンサルティング」でお馴染みの高橋さんの新著「マンガでやさしくわかるプログラミングの基本」を読ませていただきました。ぜひ感想を書きたいと思い、今回のエントリをアップした次第です。
なお、最初は、どこか別のコンテンツに掲載するものだと勘違いして感想を執筆したため、「ですます調ではない」など普段のエントリと違う部分が多々ある点、ご了承ください。
以下、書評です。
■ はじめに
近年、プログラマではない人や子供たちの間でプログラミングが注目されている。小学校からプログラミングを必修にしようという動きもある。また、プログラミング初心者向けの書籍や言語が次々と発表されている。本書も初学者に向けたプログラミングの学習書で、これから会社でプログラミングに携わることになる社会人が主な対象である。プログラミングとはどういうものかという説明からはじまり、Excelで簡易的な電卓を作成することを最終的な目標としている。
■ 本書の構成
- 序章:プログラミングとは
- 第1章:コンピュータができること
- 第2章:プログラミングの準備と基礎知識
- 第3章:プログラムの動きとつくる手順を考えよう
- 第4章:プログラミングをしよう
- 第5章:プログラミングとプログラマ
■ プログラミングは、わからない?
小学校でのプログラミング必修化を反対する人がいる。私は必修化には賛成の立場であるが、立場によって考え方が十人十色、事情は簡単ではない。なぜ、プログラミングを学んでこなかった人たちはプログラミング必修化に反対なのか。根本にあるのは「プログラミングは、わからない」という理由だと思われる。確かにプログラミングは難しくて、わかりにくい。なぜ、プログラミングは、わからないのか。私も大学時代は「なんとなく面白そう」という理由でプログラミングに手を出しては挫折することを繰り返していた人間なので、その頃を思い返して考えてみた。
- プログラミング、ならびにパソコンを、なぜ学ぶ必要があるのかがわからない
- どのようにして、プログラミングを学べば良いのかがわからない
- プログラミングができることで、何に役立つのかがわからない
本書では、この3つの「わからない」に答えを示している。
1つ目:プログラミングやパソコンを学ぶ必要性
そもそも本書は、社会人のプログラミング初学者に、プログラミングを身近なものであると感じてもらうため、マンガ仕立てになっている。更にストーリーも、プログラミング未経験の社員(主人公:野々原マイミ)が、社運を賭けたプロジェクトにプログラマとして抜擢されたことからスタートする。マイミは、彼女にしか見えない生き物「エニア」(このネーミング!)からコンピュータのことやプログラミングを学び、プログラマとして成長していく物語となっている。(プロジェクトが最終的にどうなるか、マイミが将来どのような道を歩むかは、本書を読んで確認してほしい。)
本書が仕事上のプロジェクトをテーマとしているとおり、コンピュータやプログラムは仕事と密接に結びついている。それがわからないままだと仕事に支障をきたす。仕事ができる人と思われるためにも、パソコンやプログラミングを使えることが大事だという。
個人的には「仕事で必要だから使えるようになる」だけでは足りないと思っている。能動的にコンピュータやプログラムを使うべきではないだろうか。本書では、プログラミングをしていく上で最初に「コンピュータでやりたいことは何か」を考えてほしいと説明している。そもそも何が作りたいのか(ゲームなのか、便利ソフトなのか、etc)、どのような環境で動作するプログラムか(Windows、Mac、スマホ、ブラウザ上、etc)、選択肢は沢山あり、それによって採用すべきプログラミング言語も変わってくる。「プログラミングは、とってもクリエイティブな自己表現」であると本書には書かれている。そのとおりだと思う。「やりたいことを実現する」ためにコンピュータやプログラミングを使って、はじめて「使える」と言えるだろう。
2つ目:どのように学ぶか
本書は、実際に電卓をつくる前に、プログラムの動かし方や動きの手順を考えるよう説明している。要するに「アルゴリズム」や「フローチャート」である。言語より先にアルゴリズムを学ぶ、という意見には私も賛成である。
先述のとおり、私は大学時代に何度もプログラミングに挫折してきた。しかし、アルゴリズム(フローチャート)を理解できたら、突然プログラミングができるようになった。日本語や英語のような話す言語で考えると、会話や作文をするためには「文法」と「表現力」が必要である。先に文法だけ学んでも「言いたいことをどのように表現するか」がわからないと会話も作文もできない。そのことと同様に、プログラミングでも、先にプログラミング言語を学んでも「つくりたいものや表現したいものをどのようにつくるか」がわからないために挫折を繰り返した。プログラミングにおけるアルゴリズムが「表現力」に該当する。いきなり学習書を購入してパソコンの前で格闘する前に、フローチャートをつくってアルゴリズムを学んでいくべきだと思う。
3つ目:プログラミングが何に役立つのか
本書では最後の第5章でキャリアプランを示している。業務システムや各種アプリケーション、家電などの組み込み機器にまでコンピュータがあふれている。そのことを考えてみれば「今の自分の職業を考えてみたところでプログラミングが必要にはならない」とはならないだろう。また、プログラマとして仕事をしていく人に向けたステップアップの道も紹介されている。第4章で電卓をつくったら、それで終わりではなく、第5章も非常に参考になる内容が書かれているので最後まで熟読してほしい。
■ ぜひ何度も読み返して欲しい
もっと言えば、何度も読み返してほしい。毎回、新鮮に情報を吸収できると思われる。たとえば、本書の最初の方でコンピュータの5大装置(入力、出力、記憶、演算、制御)の解説が書かれている。人によっては、1巡目では難しい内容であるかもしれない。しかし、プログラムのアルゴリズムというものを理解し、電卓を作成してみた後に再度この部分を読んでみると、5大装置の意味が良くわかるであろう。ぜひ、一回読みきったら終わりにせず、何度も読み返して、コンピュータとプログラミングのことを学んでほしい。そして、一プログラマとして、一人でも多くの人に「プログラミングがわかってきた!楽しい!」と思ってもらいたい。