プログラムはこうして作られる プログラマの頭の中をのぞいてみよう

著者 :
  • 秀和システム
4.04
  • (21)
  • (18)
  • (11)
  • (1)
  • (2)
本棚登録 : 470
感想 : 19
本ページはアフィリエイトプログラムによる収益を得ています
  • Amazon.co.jp ・本 (496ページ)
  • / ISBN・EAN: 9784798039251

作品紹介・あらすじ

株式会社セガのゲームプログラマが書いた、プログラムの初心者に入門書を読む前に読んでほしい「プログラムを根本から理解し考え出す能力を身につける」書籍です。世間一般のプログラム入門書は、プログラムを自分で作るにはどのように頭を動かせばいいのかという根本の考え方を教えてくれません。本書は『ゲームプログラマになる前に覚えておきたい技術』の著者が、プログラミングの未経験者や基本をやり直したいと考えている人のために、簡単なゲーム制作をとおして、プログラムを作る上でどのように頭を働かせればいいのかを学べるように工夫しました。

感想・レビュー・書評

並び替え
表示形式
表示件数
絞り込み
  • PDF
    プログラマ

  • "君はつい面倒くさがって準備をしないまま先に進み、そして後悔するだろう。それでいい。君が本当の意味で学ぶのはその時だ。"

  • 【短い感想】
     2013年に刊行された、なかなか教育的な本。実際の教育/研修を行なった経験が活かされているようだ。何度か読み返したが、この試みには少し感動した。あと、内容が一冊で完結しているのも良い。
     なお出版社ページでは、目次が(全14章のうち)9章のあたりで途切れているので、下記目次では補っておいた。

    【書誌情報】
    著者:平山 尚[ひらやま・たかし](1977-)(株式会社セガ)
    Jacket Design:Shiki Design Office (Okazaki yoshiyasu)
    ジャンル:プログラミング言語
    書店発売日:2013/09/21
    ISBN:9784798039251
    判型:A5
    頁数:496
    定価:本体1,800円+税
    N.D.C.:007.64 プログラミング

     株式会社セガのゲームプログラマが書いた、プログラムの初心者に入門書を読む前に読んでほしい「プログラムを根本から理解し考え出す能力を身につける」書籍です。世間一般のプログラム入門書は、プログラムを自分で作るにはどのように頭を動かせばいいのかという根本の考え方を教えてくれません。本書は『ゲームプログラマになる前に覚えておきたい技術』の著者が、プログラミングの未経験者や基本をやり直したいと考えている人のために、簡単なゲーム制作をとおして、プログラムを作る上でどのように頭を働かせればいいのかを学べるように工夫しました。サポートページでサンプルダウンロード、本文「Chapter0 この本は誰に何を提供するか」のpdfを公開しています。
    [サポートはこちら]→https://www.shuwasystem.co.jp/support/7980html/3925.html 

    https://www.shuwasystem.co.jp/smp/book/9784798039251.html


    【目次】
    ・詳細目次は分量が多すぎるので、ブクログではなく別のブログに置いといた。
    https://contents-memo.hatenablog.com/entry/20131129/1385650800


    【やや詳しい目次】
    但し書き [002]

    Chapter 0 この本は誰に何を提供するか 003
    0.1 これまでの教え方が持つ三つの問題 004
      0.1.1 要素がバラバラ
      0.1.2 プロ向けの道具がもたらす挫折
      0.1.3 できなくても仕方ないと思われている
    0.2 この本は何が違うか 004
      0.2.1 一つのプログラムを最初から最後まで作る
      0.2.2 専用に道具を用意する
      0.2.3 本当に初めての人を対象にする
    0.3 では、始めよう! 011

    目次 [012-021]

    Chapter 1 プログラム作りを始める前に 022
    1.1 あのゲームを作るためにはどうしたらいいか 023
      1.1.1 あのゲームに必要なプログラム技術とは何か
      1.1.2 あのゲームはどんなものか
      1.1.3 プログラムとは何なのか
      1.1.4 この奇妙な文章は何なのか
      1.1.5 君の目標はどのくらいの高さにあるのか
    1.2 どこから手をつけるか 036
      1.2.1 プログラミング言語の学び方
      1.2.2 どこから作り始めるか
      1.2.3 何か手のつけやすい要素を抜き出せないか
    1.3 この章で伝えたかったこと 039

    Chapter 2 メモリに触れてみる ~四角を描く~ 040
    2.1 書いたプログラムを動かす 040
    2.2 四角を描く 044
      2.2.1 四角を描くための最低限のルール
      2.2.2 この一行は何を意味しているのか
      2.2.3 メモリとは何か
      2.2.4 メモリをいじると点が出るのはなぜか
      2.2.5 コンピュータとはどういう機械か
      2.2.6 画面の点は何番のメモリにつながっているか
      2.2.7 メモリに覚えさせる数と色の関係
    2.3 好きな場所に四角を描く 058
      2.3.1 画面の真ん中に赤い四角を描く
      2.3.2 1足したり引いたりが面倒だ! 
      2.3.3 なぜ0始まりか
      2.3.4 これであのゲームの絵を描けるか
    2.4 この章で伝えたかったこと 071

    Chapter 3 くり返し ~プログラムを短くする~ 072
    3.1 行数を減らす 073
      3.1.1 一行で複数のメモリをいじりたい
      3.1.2 なぜくり返しか
    3.2 くり返しの使い方 076
      3.2.1 くり返しの文法 
      3.2.2 何があれば四角を描くのに使えるか
      3.2.3 固定していない数
      3.2.4 1回実行して終わりにする
      3.2.5 2回実行して終わりにする
      3.2.6 16回実行して終わりにするにはどうするか
      3.2.7 好きな回数くり返す方法
      3.2.8 くり返す度に別の画素を塗るにはどうするか
    3.3 くり返しで四角を描く 090
      3.3.1 だがそう簡単には行かない
      3.3.2 くり返しをくり返すにはどうするか 
      3.3.3 このプログラムの何が悪いのか
      3.3.4 頭の中で動かす
      3.3.5 結果から考える
      3.3.6 思ったように動かない時にすべきこと
      3.3.7 くり返しで書くことに価値はあるか
      3.3.8 画面の真ん中に描くにはどうするか
    3.4 この章で伝えたかったこと 108

    Chapter 4 プログラムの変形 ~四角をたくさん描く~ 110
    4.1 くり返しで壁を描く 111
      4.1.1 四角を描くことをくり返す
      4.1.2 20個描く
      4.1.3 この調子で右の壁や底も描く
      4.1.4 注釈
    4.2 もっと短くしたい 123
      4.2.1 くり返しをくっつける
      4.2.2 まだやれることはないか
      4.2.3 底も含めてもっと短く書く方法はないか
      4.2.4 これはわかりやすいプログラムか
    4.3 この章で伝えたかったこと 136

    Chapter 5 プログラムを分ける ~四角を楽にたくさん描く~ 138
    5.1 行を使い回すための、くり返し以外の手段 139
      5.1.1 参照が使えたとしたらどうなるか
      5.1.2 参照のわかりやすさ
    5.2 Sunabaにおける「参照」 141
      5.2.1 実行について
      5.2.2 部分プログラムが役立つために必要なもの
      5.2.3 参照する度に違う点を塗りたい
    5.3 部分プログラムを使って壁と底を描く 149
      5.3.1 左右も部分プログラムを使って描くには 
      5.3.2 部分プログラムに価値はあるか
    5.4 もっとわかりやすく 157
      5.4.1 注釈はなぜ必要か 
      5.4.2 「変な数」に注目する
    5.5 この章で伝えたかったこと 166

    Chapter 6 動きのあるプログラム ~四角を落とす~ 167
    6.1 次は何をすべきか 168
    6.2 四角を落とす 169
      6.2.1 点を落としてみる
      6.2.2 四角を落としてみる
      6.2.3 間違いを直す
      6.2.4 問題を直す
    6.3 もっと速く塗りたい 186
      6.3.1 手加減をやめさせるには
      6.3.2 手加減とは何か
      6.3.3 手紙を送る
    6.4 ここまでを組み合わせる 192
      6.4.1 まずはくっつけるだけ
      6.4.2 壁と底を描く
      6.4.3 手加減をやめる
      6.4.4 落ちる四角を真ん中に
    6.5 この章で伝えたかったこと 198

    Chapter 7 メモリに名前をつける ~もっと日本語で~ 200
    7.1 今のプログラムは何が悪いか? 201
      7.1.1 どんな道具がほしいか
      7.1.2 番号を自分で決めたくない
    7.2 Sunabaでメモリに名前をつける 208
      7.2.1 とりあえず使ってみる
      7.2.2 メモリの番号を決めなくていい、ということ
    7.3 名前付きメモリのルール 212
      7.3.1 名前付きメモリが作られるのはいつか
      7.3.2 名前付きメモリは部分プログラムごと
      7.3.3 くり返しの外からは見えない
    7.4 この章で伝えたかったこと 217

    Chapter 8 操作できるプログラム ~四角を動かす~ 218
    8.1 操作するとはどういうことか 219
      8.1.1 キーボードに反応する
      8.1.2 プログラムはどうやって外のことを知るか
    8.2 操作できるようにする 223
      8.2.1 押す暇がないし、押せてもわからない
      8.2.2 動いている間にキーを押したい
      8.2.3 点を動かしてみる
      8.2.4 手加減をオフに
      8.2.5 下以外にも動くように
      8.2.6 四角を動かす
    8.3 動きっぱなしを避ける 232
      8.3.1 まずは小さく始める
      8.3.2 動き続けないとはどういうことか
      8.3.3 前回押されていなければ、をどうするか
      8.3.4 ホワイトボードを見てどうするか決める
      8.3.5 式を思いつく
      8.3.6 上下左右に動けるようにする
      8.3.7 四角に戻そう
    8.4 落ちてくる四角を動かせるようにする 245
      8.4.1 壁と底を描いて、すぐできる改造をする
      8.4.2 落とす
    8.5 この章で伝えたかったこと 248

    Chapter 9 「計算」の本当の意味 ~ゆっくり落とす~ 250
    9.1 ゆっくり落とすということ 251
      9.1.1 毎回動かないプログラム
      9.1.2 前動いたら今回動かない
      9.1.3 割り算を使う
      9.1.4 もう一つの方法
    9.2 条件実行 258
      9.2.1 行を実行したりしなかったりする 
      9.2.2 くり返しを1回で止める
      9.2.3 条件実行はおいしいか?
    9.3 Sunabaで条件実行 264
      9.3.1 前の例はどうなるか
      9.3.2 ゆっくり線を引く
      9.3.3 ここまでを組み合わせる
      9.3.4 押しっぱなしへの対処を整理する
    9.4 計算の本当の意味 272
      9.4.1 条件式が正しいということ
      9.4.2 < は一体何なのか....
      9.4.3 Sunabaの計算記号
      9.4.4 では使ってみよう
      9.4.5 使ってみよう
    9.5 この章で伝えたかったこと 282

    Chapter 10 メモリをまとめて使う 〜四角を積み上げる〜 284
    10.1 当たるということ 285
      10.1.1 底に当たるとはどういうことか
      10.1.2 壁にも当ててみる
      10.1.3 次に起こることを考える
    10.2 メモリをかたまりで使う 294
      10.2.1 問題を変形する
      10.2.2 積もった順に覚えていく
      10.2.3 全てのマス目がどうなっているか覚える
      10.2.4 二つの方法を比べてみよう
    10.3 積み上げる 305
      10.3.1 どんなふうにやるかを整理する
      10.3.2 出発点
      10.3.3 床に当たったら、そこに積もらせる
      10.3.4 新しい四角を出す
      10.3.5 底以外にも積もらせる
      10.3.6 短くしたい
      10.3.7 壁と左右移動を復活させる
      10.3.8 プログラムを整理する
      10.3.9 積もらせる部分プログラム
      10.3.10 落ちる速さと押しっぱなし対応
    10.4 この章で伝えたかったこと 328

    Chapter 11 メモリに名前をつける 〜列を消す〜 330
    11.1 とりあえず消すだけ 331
      11.1.1 おおまかな手順
      11.1.2 消すプログラム
      11.1.3 組み合わせる
      11.1.4 楽に確認したい
      11.1.5 落ちないことを確認しておく
    11.2 プログラムを良くする 343
      11.2.1 番号指定のメモリに名前がつけられない 
      11.2.2 部分プログラムから部分プログラムを使う時
      11.2.3 部分プログラムに情報を伝える新しい方法.
      11.2.4 入力を使ってみる
      11.2.5 入力で問題は解決するのか
      11.2.6 全体を入力を使うように直す
    11.3 落とす 358
      11.3.1 一番簡単な例
      11.3.2 プログラムにする
      11.3.3 上にたくさん乗っているとどうなるか
      11.3.4 上に乗るもの全部を落とす
      11.3.5 もう一つのやり方
      11.3.6 どちらがいいか
    11.4 この章で伝えたかったこと 371

    Chapter 12 全てを組み合わせる 〜四角を回す〜 373
    12.1 2つに増やす 375
      12.1.1 落ちてくる四角は今どう表現されているか
      12.1.2 2個赤い四角を出す単純な方法
    12.2 回すとはどういうことか 381
      12.2.1 回転以外の要素を一旦忘れる
      12.2.2 結果から考える
      12.2.3 回転には4通りある
      12.2.4 もっと賢く書く
    12.3 回転を組み込む前に 391
      12.3.1 2つ並べるプログラムを思い出す
      12.3.2 小さくまとめていく
      12.3.3 動かせるかを調べる方法を考え直す
      12.3.4 別のやり方.
      12.3.5 2マス分の位置を覚えるのをやめる
      12.3.6 もっと部分プログラムを活用したい
      12.3.7 部分プログラムの出力
      12.3.8 整理はもう十分だろう
    12.4 回転を組み込む 410
      12.4.1 回転が入ってくると変わること
      12.4.2 おおまかに書いてみる
      12.4.3 入力を追加する部分プログラム
      12.4.4 マス目の場所を計算する
      12.4.5 本当に回す
    12.5 ちゃんと動くのか? 420
      12.5.1 おかしい
      12.5.2 どのようにおかしいはずか
      12.5.3 直す
    12.6 この章で伝えたかったこと 429

    Chapter 13 「表」という考え方 〜ゲームの完成〜 431
    13.1 3マスづつ落とす 431
      13.1.1 2と3のプログラム上の違い
      13.1.2 3マスつなげる方法は1つではない
      13.1.3 プログラムにする
      13.1.4 2種類の形が出るようにする
      13.1.5 回転も入れる
      13.1.6 表という考え方
      13.1.7 表を前もって作っておく
    13.2 4マスづつ落とす 451
      13.2.1 3マスと4マスで何が違うか
      13.2.2 4マスになると種類はどれだけあるか
      13.2.3 代表のマスと、回す前の形を決める
      13.2.4 プログラムにしてみよう
      13.2.5 本当にこれでいいのか?
      13.2.6 手間を省くために
      13.2.7 あの表には何が書いてあるのか?
      13.2.8 回転に関する表を減らす
      13.2.9 回転に関する表をもっと減らす
    13.3 この章で伝えたかったこと 473

    Chapter 14 砂場を出よう 〜始まりの終わり〜 475
    14.1 ここまで使ってきた考え方 475
      14.1.1 結果から考える
      14.1.2 問いかけ方
      14.1.3 目標と手段
      14.1.4 複数の選択肢を用意しろ
      14.1.5 まとめよう 
    14.2 さらに進むために 481
      14.2.1 もうちょっと Sunabaで遊んでみる
      14.2.2 実用言語に移る
    14.3 実用言語の大変なところ 484
      14.3.1 使えるようにするのが大変
      14.3.2 動かすための手順
      14.3.3 文法が複雑
      14.3.4 絵や音を出すのが大変
      14.3.5 オブジェクト指向プログラミング
      14.3.6 英語っぽい必要がある
      14.3.7 メモリが見えない
      14.3.8 おすすめはJavaScript 

    終わりに、そして感謝 [492-494]
    索引 [495]

  • 新人教育を担当したから参考にしました。基礎を少しずつ教えるのにどのように考えるか分からず、ちょうど良さそうだったので購入しました。

  • 1

  • 結論から出発すること

    道具を愛しすぎるあまり、それを使って何をしたかったのかをよく忘れてしまうことがある。

    そんなときに、あくまでも目的を達成するための手段であることをはっきりと思い出させる書籍だと思う。

    開発者がどんな手順で考えているのかを見えるスピードまで落として併走してくれているのがありがたく思う。

    自分主観でいることがどれほど孤独でいるのか。
    高慢でいるのか。

    人に教える際の一つの解をみたようである。

  • プログラムを書く際の手間や間違いをあえて記載し、道具の使い方を学ぶのが先ではなく、結論が見えてからどうやって道具を使うかの順番での考え方が全編にわたり記されている。

    数年前に一度VBAを使い、プログラムを組んだことがあるが、いま思い返してみると同じアプローチだったように思う。

    いい意味で放置されており、とりあえずこうするという目標を決め、動くものを作り、動かず修正し、、、。という順序で試行錯誤をしていた。

    結果から見ると、動くのは問題ないが、メンテナンスを考えるととんでもない代物ができあがってしまった。
    が、とにかく「なぜこうなるのか」というのを徹底的に考えていた期間だと思う。

    こういう考えのもと、コーディング作業者は動いているのかと知るには良い本だと思う。

  • たるい。プログラムを書いた方が早い。変わった視点での書き方で試みは評価する。

  • 『世界が変わるプログラム入門』から。

  • 書店でのパラ見の印象:

    わかりやすそう。
    Scratchを学んでいるのに近い印象も受ける。

    本の構成がいい。

    最初に概要として、2ページ程度でサンプルプログラム(日本語での意味つき)が書かれている。

    javascriptを最終的におすすめしてた。

    >>

    ロジックの組みかたを学ぶという意味で、購入してもいいかも。ただ、言語が普通使わないものだから、一気にがつっと取り組んだほうがいいかも。時間の有効活用として。

全19件中 1 - 10件を表示

平山尚の作品

この本を読んでいる人は、こんな本も本棚に登録しています。

有効な左矢印 無効な左矢印
ジェームス W....
エリック・リース
佐々木 圭一
デールカーネギ...
ウォルター・アイ...
有効な右矢印 無効な右矢印
  • 話題の本に出会えて、蔵書管理を手軽にできる!ブクログのアプリ AppStoreからダウンロード GooglePlayで手に入れよう
ツイートする
×