2020年の4月から小学校でプログラミングが必修となりました。文科省によると、プログラミング学習を実施することで、
「自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力」(文科省より)
を身につけることが目的なんだそうです。
これって、普通に小学生だけではなく、社会人にも必要なスキルですよね。だから今一度、社会人もプログラミングについて概要だけでも知っておく必要があるんじゃないかと思います。
文学部出身のボクも、最初は何もわからずIT業界に飛び込み、そこで右往左往しながら仕事を覚えていきました。そんなIT業界に飛び込む前に読んでおきたかった本の一つですね。
今回、読んだのはコレです。
この本はプログラミング言語の知識はほぼ不要です。プログラミングコードはほんのごくわずかしか出てきません。それでも、「プログラミングってどんなことをしているのか」がよくわかります。
プログラミング入門といった本は、ほとんどの場合横書きですが、この本はガチガチの縦書きです。
文系の人が教養として「プログラミング」とは何か?を知る上でおススメの本とも言えます。
各章のコラムは読み物としても興味深く読めますよ。
ここでは目次をみながら概要について述べていこうと思います。
■目次
Chapter1 プログラミングはあなたの隣に
プログラミングを学ぶと、どうなる
プログラミングとは何だろう
プログラミングは「人類の叡智」である
あらゆる場面に応用される、プログラマーの思考法
実社会で活きるプログラミング1 長篠の戦い
実社会で活きるプログラミング2 ブラックマンデー
実社会で活きるプログラミング3 結婚
実社会で活きるプログラミング4 柔術と柔道
プログラミングに関する二つのアプローチ
【COLUMN】 コンピュータ開発の黎明期
そもそもコンピュータとは何だったのか
自動計算機とIBMの誕生
蒸気機関のコンピュータ
第1章では「プログラミングの超基本」がテーマ。
プログラミングが実は昔からヒトのそばにあり、いろんな場面で使われていたことが紹介されています。私たちの生活の中でもプログラミング的な考え方があり、アルバイトのマニュアルもある種のプログラムと言えます。
Chapter2 コンピュータ不要のプログラミング入門
プログラミングの鉄則1 「伝え漏らすべからず」
プログラミングの鉄則2 あくまで「コミュニケーション」の一様態
プログラミングの鉄則3 「フールプルーフ」を活用しよう
プログラミングの鉄則4 「インデント」や「カラーリング」でメリハリを
プログラムの事例1 「占い」
プログラムの事例2 「ゲーム」
【COLUMN】 戦争とコンピュータ
コンピュータの進歩を加速させた第二次世界大戦
コンピュータの原型、チューリング・マシン
プログラム内蔵式コンピュータの登場
第2章では、プログラミング言語を全く使わず、4つの基本原則を元ににプログラミングを体験します。
Chapter3 今すぐ役立つプログラミングテクニック----プログラマーの思考法を知ろう
アルゴリズム----効率的な作業手順を「形」にする
処理、分岐、ループ----プログラムの基礎パーツ
ルーチンと関数----繰り返すだけなら、省いて表現
ハイパーリンク----別の情報にワープする
ハッシュ+テーブル----名簿の管理を効率的に
計算テーブル----考える手間と時間を、劇的に短縮
デザインパターン----「問題への対処法」を汎用化
【COLUMN】 企業と宇宙とコンピュータ
IBMとともに発展を遂げたコンピュータ
トランジスタとシリコンバレーの誕生
日本人の貢献
宇宙開発競争とコンピュータ『グーテンベルクの銀河系』と『全地球カタログ』、そして iPhone
第4章では、実際のプログラミング言語を使うとき、基本的な「型」があり、その「型」の考え方がよくわかる内容となっています。
特に「アルゴリズム」をつくったり「処理、分岐、繰り返し」は小学生のプログラミング授業でもあるぐらい基本の「型」です。小学校での「プログラミング的思考」はここまで求められているようです。
Chapter4 簡単コンピュータプログラミング講座
いよいよコンピュータプログラミングを始めよう!
MOONBlock を使ってみよう
時限式プログラムを作ってみよう
おみくじプログラムを作ってみよう
ゲームも作れます
【COLUMN】 パーソナルコンピュータの時代
パソコンはどうしてこの形なのか
パーソナルコンピュータの父、アラン・ケイ
第4章では、筆者が開発した「MOONBlock」でプログラミング体験できる内容です。これはWEB上で利用できるので、この本を片手に実際にやってみるのもいいかも。
Chapter5 プログラミングの未来
プログラミングは普通の文章に近づく
小学校でプログラミングを学ぶ時代
バグが無いことを証明するプログラミング
触れるプログラミング
この世の全てをプログラミングする
「能力の図書館」から自由に能力を借りる未来
コンピュータが人類の思考能力を超える日
誰でも開発できる環境を目指して
「enchantMOON」という一つの挑戦
未来を予測する
【COLUMN】 そして人工知能の時代へ
「人工知能」を活用する手段としてのプログラミング
人間では説明できないレベルへ
直感を備えた人工知能の登場
問われる「考える」の意味
最後の第5章はプログラミングの未来がテーマ。
コンピューターの最初のプログラミング言語は、「機会言語」といわれたように「0022 CCFF」のような言葉で書かれてい普通の人間には読解困難な言語でした。
それが、今ではmoveとか、goとか読めばわかるような「高水準言語」でプログラムが書かれるようになり、さらに、これからはより普通の文章で記述するぐらいになってくると著者は言います。
AIもそうですが、人間が記述したプログラミングでコンピューターが動作するので、その仕組みや考え方を知っておくことは、文系理系問わず、基本的な教養なのだと思います。特に文系でプログラミングを味わったことのない方におススメの本です。
-----------------