2016年の発売直後から大きな話題を呼び、中国・ドイツ・韓国・ブラジル・ロシア・ベトナムなど世界各国にも広がった「学び直し本」の圧倒的ロングセラーシリーズ「Big Fat Notebook」の日本版が刊行された。藤原和博氏(朝礼だけの学校 校長)「プログラミングは新しい言語の獲得だ」、野田クリスタル氏(お笑い芸人・マヂカルラブリー)「プログラミングがやりたくなる! まるでゲームの攻略本みたい!」、尾原和啓氏(元グーグル・IT評論家)「プログラミングを通して、ビジネスにも応用できる考え方が見えてくる!」と絶賛されている。本記事では、全世界700万人が感動した同シリーズのプログラミング編『アメリカの中学生が学んでいる 14歳からのプログラミング』より、本文の一部を抜粋・掲載します。
エンジニアリング設計プロセス
コンピュータ科学者は、コンピュータやプログラムを設計するとき、エンジニアリング設計プロセスに従って、設計を理解し、改善していくことが多い。
その目的は、プログラムをなるべく効率的で使いやすいものにすることにある。
エンジニアリング(工学)とは、機械や構造物の設計、構築、使い方について研究して、問題を解決していく科学の一分野のこと。
コンピュータエンジニアリングとは、コンピュータ科学の研究やエンジニアリングの技法をコンピュータのソフトウェアやハードウェアへと応用すること。
ソフトウェアエンジニアリングとは、コンピュータエンジニアリングのひとつの応用のことだ。
ステップ1:問題を突き止める
まず、ソフトウェアエンジニアは問題を突き止めて、解決に何が必要なのかを考える。たとえば、こんな感じだ。
解決したい問題は?
・例:学校から、図書館とスーパーに寄って、家まで帰る最短ルートを見つける。
問題の解決に役立つ情報は?
・施設の場所を示す地図
・場所どうしの距離
・利用する交通機関の種類
問題の解決に必要な能力は?
・計算する能力
・地図を描く能力
この段階では、きみと同じ問題に直面している人々から、データを収集して分析することも必要かもしれない。
たとえば、インタビュー、アンケート、観察なんて方法が考えられる。それから、センサーやGPS追跡装置を使う手もあるかもしれない。
ステップ2:解決策を計画する
次に、ソフトウェアエンジニアは、問題を解決するための計画を立てる。たとえば、解決策のリストやロードマップを作成する。計画はなるべくくわしく立てるのを忘れないようにしよう。
ステップ3:解決策をつくる
コードを書いて、解決策のほかの要素をプログラムへと加える。
実際に使える形になったら、「解決策をつくる」ステップは完了だ。
ステップ4:テストする
次に、完成したソースコードや解決策をテストして、不具合を見つける。ソフトウェアエンジニアは自分のつくったものをだれかに使ってもらい、フィードバックを求めることが多い。
テストには、いくつかの段階がある。初期の段階では、プログラマ自身でテストをおこない、そのあとで同僚たちにその解決策をテストしてもらう。
終盤になると、たくさんのユーザーに解決策をテストしてもらいフィードバックを集めるのだ。
ステップ5:改良する
問題を修正して、解決策を改良する。この段階では、「テストする」のステップで見つかったバグや問題を修正していこう。
今日から、エンジニアリングを始めよう
いまでは、強力なテクノロジーが、どんどん小さく、どんどん安く、どんどん使いやすくなっていっている。
つまり、きみだって、だれだって、すごいモノを設計したり、つくったりすることができるということだ。LEGOロボット、ドローン、3Dプリンタ、卓上レーザーカッター、micro:bit、Arduino、Makey Makey……。
こうしたツールを使えば、きみも今日から立派なエンジニアの仲間入りができるのだ!