内容紹介
■ プログラムの設計力を身につけよう!「プログラミングは勉強したのに、自分でプログラム作れない……」
そう悩んでいる人、けっこう多いんです。プログラミングの入門講座や入門書で、ひと通りプログラミング言語の文法やツールの使い方は学んだという人に本書を読んでいただきたい。きっと講座で取り上げられたコードや、書籍に掲載されたコードは、何をやるプログラムかはもう理解できますよね。自分で実際にコードを入力して、動作させることもできましたよね。でも、自分で「こんなプログラムを作ってみたい」と思って、自由自在にコードを書けていますか?
実は、「こんなプログラムを作ってみたい」というアイデアがあっても、それをすぐにプログラムにするのは簡単なことではありません。そうしたアイデアをプログラムにするための過程が欠けているからです。アイデアとプログラムをつなぐのが“設計”です。入門講座や入門書には、この設計の説明がほとんどないのです。プログラムを作れるようならないのは、そのためです。新米プログラマーがすぐに自分でプログラムを書けるようにならないのはもっともなことなのです。
でも悲観することはありません。そんなプログラミングの初心者に向けてソフトウェア設計の初歩の初歩を解説するのが本書です。「設計」といっても難しく考える必要はありません。本書ではじゃんけんやすごろく、あっち向いてホイなど、誰もが知っている遊びを取り上げ、それをプログラムにするために何を考えなければならないか、プログラムにするにはどうすればいいかを、一つひとつステップを踏みながら説明します。
設計のプロセスで大切なのが、アルゴリズムとフローチャートです。人がその作業をするとき、何をどのように、どの順でやっているのか、それを明らかにします。これにより、コンピュータにどのような処理をさせるのか、プログラムをどう動作させるのかを定めます。これがアルゴリズムです。
それをさらにプログラムにするために、どのような判断をさせる必要があるのか、どのような条件で何回同じ処理を繰り返すのか、繰り返すのはどこからどこまでかを明らかにするために図式化します。これがフローチャートです。これがプログラムの設計図になります。「こんなプログラムを作りたい」「こういうプログラムが必要だ」というアイデアと「あとはコーディングするだけ」の間を埋めるのがアルゴリズムとフローチャートです。
この段階ではパソコンは必要ありません。紙とえんぴつがあれば十分です。特別なツールが必要ないということは、プログラミング言語にもプラットフォームにも依存しないということ。つまり、設計のスキルはどんな開発にも通用する汎用のスキルなのです。
「でも、じゃんけんをプログラムにすることを学ぶのが何の役に立つの?」と思う人がいるかもしれません。本書が取り上げる設計は、業務システムなど本格的なソフトウェア開発の中では詳細設計にあたるプロセスの手法です。顧客の要件を定義し、サーバーやデータベースなどのインフラを設計したあと、どのようなプログラムを作るかを定めるのが詳細設計です。本書で身につけたスキルは、こうしたシステム開発でも必ず役立つ実践的なスキルです。
だからこそプログラミングを学び始めた段階で、設計の基礎をしっかり身につけることには意味があります。「これをコンピュータでできたら便利なのでは?とひらめいたら、すぐにプログラムを作れてしまう。そんなスーパープログラマーへの第一歩を、本書で踏み出してみませんか?
■主な内容
第1章 プログラミングは紙とえんぴつから
第2章 ソフトウェアの設計
第3章 じゃんけんプログラムのためのフローチャート
第4章 コンピュータが実行できる形に
第5章 データを構造化する
第6章 じゃんけんをPythonでコーディング
第7章 プログラム設計のための実習問題