矢沢久雄のレビュー一覧
-
Posted by ブクログ
ネタバレビット、アルゴリズム、RDBMS、自然言語/形式言語、論理演算、OSI参照モデルなどのお話が紹介されるなど、基礎知識が広く紹介されていてよかった。
## お話1 音声をデジタル化する
- 情報の定義は、「変化するパターンの中から選択できるもの」
- 2通りの変化が情報の最小単位であり、これを「 ビット」と呼びます
- ASCIIは、文字コード。1文字を7ビット(128通り)で表す。大文字、小文字、数字、記号が割り当てられている。
- シフトJisやUnicodeは16ビットで1文字を表す。65536通り。
- 可変長符号と固定長符号
## お話2 一筆書きの可否を判定する
- 一筆書き問題のような点と辺から構成される図形のことを「グラフ」と呼ぶ。
- 1つの点に付いている辺の数を「 `次数`」と呼ぶ
- 辺の向きを考えたものを「 有向グラフ」と呼び、向きを考えないものを「 無向グラフ」と呼ぶ
- 「`あらゆるグラフで、次数の合計は偶数`」になる
- `あらゆるグラフで奇数の次数を持つ点は偶数個ある`ことがわかります
- 一筆書きできるグラフの性質は、「すべての点の次数が偶数」または「奇数の次数を持つ点が2個だけあり、他の点の次数はすべて偶数」です
## お話4 身の回りのデータを解析する
- 中央値 = メジアン
- モード = 最頻値
- 分散は個々のデータと平均値の差(偏差)を二乗してデータ数で割って求まる(偏差の二乗平均)
## お話6 どっちの手順が良いか判定する
- 計算量の大きさから問題の複雑さを分類するという考え方があります。この分類を「 計算量クラス」と呼びます
- 計算量クラスには、「 クラスP(Polynomial=多項式)」と「 クラスNP(Non-deterministic Polynomial)」があります
- 短時間で解ける問題が`クラスP`
- 短時間で解けない問題が`クラスNP`
- クラスNPに属する問題の中でも特に難しい問題を「 NP完全問題」と呼ぶ。
- この難しいとは、問題を解決するアルゴリズムがわからないということではなく、アルゴリズムはわかっていても答えを得るまでに時間がかかるという意味
- NUM=number(番号)、TEMP=temporary(一時的な値)、MAX=maximum(最大値)、MIN=minimum(最小値)を意味していると考えるのが一般的
## お話8 機械に言葉を解釈させる
- ふだん私たちが使っている日本語や英語などの言葉を「 `自然言語`」と呼ぶ。人間の生活の中で自然に発生した言語だからです。
- プログラミング言語は、特定の目的のために意図的に作り出された言語です。このような言語を「 `形式言語`」と呼びます。
- 「○○とは、△△である」という置き換えルールの羅列で、形式言語の文法を定義する方法を提唱しました。これを「 形式文法」と呼びます。
- 形式文法では、置き換え元の「○○」の部分を「 `非終端記号`」と呼び、置き換え先の「△△」の部分を「 `終端記号`」と呼びます
- コンピュータ科学では、形式言語で記述された文を解釈できる機械を「 `オートマトン(automaton)`」と総称します。
- コンピュータの頭脳であるCPUが直接解釈できるのは、2進数の数値で表されたプログラムだけです。つまり、デジタルのON/OFFの組み合わせだけです。このようなプログラムを「 `マシン語`」と呼ぶ
- マシン語に対して、VBScript、FORTRAN、C言語などのプログラミング言語のことを「 `高水準言語`」と呼ぶ -
購入済み
詰め込みすぎ。初心者は大変
入門ですが、初心者向けとは言えないです。
当方、C言語、JAVA、VBAを少々かじっております。ですのでスラッと読めております。
急きょC#が必要となったので電車通勤で落ち着いて読むために買いました。ネットで調べてもよいのですが、やはり本はいいですね。
初頭でPCの内部構造(CPU、メモリなど)、クラス、モデリングと十分すぎる内容です。
ただ、これらは本当の入門者が読んで理解できるのか?と思える内容でもあります。(必要な知識ですが、いきなりハードルが高い)
学ぶ順序も他本とは大きく異なり、まず変数ならそれに関する内容を最初に全て詰め込みます。
そんな方法がずっと続くので、他言語経験者向けのC#入門書ととらえた方がいいでしょう。
(入門=初心者でない扱い?そのわりには内部構造扱ったりとよく分からない)
また2章配列処理で各配列要素を合計するサンプルがありましたが、各要素には値が代入済と一言あるだけです。色々詰め込んでいますが、親切さに欠ける本です。(しかもここでいきなり後述のforが出てくる)
プログラム経験が全くない人は別本からがいいかもしれません。
正直、面白みがなく他言語経験者がリファレンス的に扱ったり、C#特有の機能確認がメインと感じる本です。
-
Posted by ブクログ
名著らしいが初めて読んだ。
さすがに25年も経てば事例は陳腐で技術的・資源な事は進歩しているが、大事なことはだいたい同じ。
要するにプログラミングというのは人の状況判断であって、単純作業ではないということだ。
それも個人としての観点や社会活動としての観点でそれぞれ心理的問題は深い。
チーム・グループに関する話はプログラミングに限定されない話題ではあるが、
いかに理屈で動いているように見えるプログラマー業であっても、集団心理といったものは働く。むしろより強いのではないかと思う。
また、チームに関して言えば、個々メンバーは交換できるものでもなければスキルすら定量化できるものでもないという、当たり前だが大事な問題がある。
だからこそ仕事にチームを当てるのはでなく、チームに仕事を当てたほうが良いというのは、経験者なら誰もが感じていることだと思われるが、そうなると人単価で頭数集められるチームというのは不幸な話だ。
そしてプログラミング言語は言語かという話題も面白い。
全体的に挙げられている問題点は近代的な開発手法で考慮さてて普及してきている。
(TDD的結論があったのは驚いた)
まだ今日はそれも十分ではないが、次なる四半世紀後はどうなるかわからない。
ただ、今日の自分にこの本は価値があった。それは言える。 -
Posted by ブクログ
これがそのまま情報処理技術者試験の参考書にもなりそうな本。
一通りの情報技術を網羅している、が、このページ数に加えて平易な表現を使おうとしているため、結局はそれなりの知識を持っていなければ読みこなせないだろう。
範囲が広いこともあり、消化不良の感が否めない。
少なくとも、統計学などの基本的な数学の知識がなければ、読む進むのが苦痛になるはずだ。
私はこの本でもっとも気に入ったのは、歴史のページである。
考えてみると、情報技術者試験には歴史の問題は出ない。
歴史を紐解くことで、その技術にも興味がわくというのは、音楽の世界ではよくあることだ。
総合的に判断すると、大人気の著者らしいよく出来た本だと思う。
ただ、一点、OSI参照層の第7層を応用層で説明しているが、途中でアプリケーション層に突然変わっている。
私はアプリケーションで覚えてることもあり、対応できるが、何の説明もなく記述が変わってしまったところは、らしくなさを感じた。 -
Posted by ブクログ
原著の初版が1971年、そして1998年に上梓された25周年記念版を 2011年に再邦訳したものを、さらに 2014年に読む、つまり40年以上前のもの。
正直、訳もこなれてない。最後の解説も蛇足だと思う。会社で新人君たちがこの本の読書会をやるというので自分も参加することにして読んだのだけど、彼らにはもっときつかっただろうと思うし、他の選択肢の方がよかった気がする。
得るものがないとは言わないし、40年前にこれが書かれている事実はすごいのだけど、いまとなっては全13章のうち個人的には第II部の3章(4〜6章)だけ読めばいいかな、、、って感じ。