「ハッカーと画家」は非エンジニアにも読んでほしいオタク野郎の取説

[ハッカーと画家 コンピュータ時代の創造者たち | Ohmsha](https://www.ohmsha.co.jp/book/9784274065972/)
[ハッカーと画家 コンピュータ時代の創造者たち | ポール グレアム, Graham,Paul, 史朗, 川合 |本 | 通販](https://www.amazon.co.jp/dp/4274065979)

![](https://images-na.ssl-images-amazon.com/images/I/511SV9NXW2L._SX351_BO1,204,203,200_.jpg)

最初に共感したAmazon書評を引用してしまうと

> ポール･グラハムによるIT業界、そのコミュニティ、もしくはハッカー（ごく一般的なITエンジニアも多少通じるところがあります）に関する文化論をエッセイとして論じたもの。
> エンジニアが書いた文章だからと言って、その内容が堅苦しいわけでもなく、また理系用語をちりばめた、その知識が無ければ理解に苦しむようなものでもありません。お互いが技術者だから分かる、もしくは分かってもらいたいと言うような読者層を限定してしまう内容ではなく、エンジニアではない一般の人たちにも非常に分かりやすい内容。
> **特に非エンジニアの人たちには理解に苦しむところがあるのかもしれない、ハッカーの行動、考え方についてはエンジニアを組織、管理している立場の人間にはぜひ読んでもらいたい**

と書かれている。また客観的説明としては以下となる。

> 大成功ベンチャーの創業者にして天才プログラマの著者が語る、これからの時代を見通す考え方と創造のセンス
> Paul Grahamは、LISPプログラミングの達人であると同時に、後のYahoo！Storeとなるソフトウェアを作り、ベンチャー創業者として大きな成功を収めたことで知られる。本書でGrahamは、コンピュータが大きな役割を担う時代において、いかに発想を広げ、美しいものを設計し作り上げるかを、さまざまな切り口から大胆に考察している。インターネット上で大きな話題となったエッセイを書籍化。
Hackers and Painters: Big Ideas from Computer Age （O'Reilly Media, 2004）の日本語版。

が、好きなところをかいておくと以下になる。どうしたらエンジニアになれますか？の答えが書かれてると思っている。

> 絵を描くことは、絵を描きながら学ぶ。大抵のハッカーは、大学のプログラミングコースを履修してハックを 学ぶのではない。13歳の頃から自分でプログラムを書くことによって学ぶのだ。大学の講義でだって、ハックを学ぶのはハックしながらだ

筆者: [ポール・グレアム - Wikipedia](https://ja.wikipedia.org/wiki/%E3%83%9D%E3%83%BC%E3%83%AB%E3%83%BB%E3%82%B0%E3%83%AC%E3%82%A2%E3%83%A0)

## 要点

- オタク野郎の取説
- [非エンジニアにクラウド技術の良さを伝えてみる - Qiita](https://qiita.com/muson0110/items/402a094a339b10f2b25e) だとか、非エンジニア向け書籍の古典かもしれない。
- 第0章 メイド・イン・USA
    - アメリカ人が車を作るのが下手なのとソフトウェアを書くのが得意なのは、同じ理由による。だがアップルの存在は、両方を改善してゆけるヒントだ。
    - 「とにかくやる」方法と、注意深く進める方法のどちらかを選ばなければならないのだとしたら、私ならとにかくやる方を選ぶだろう。
- 第1章 どうしてオタクはもてないか
    - 彼らはゲームに乗っていない。
    - オタク (nerd) は負け組じゃない。単に違うゲームをやっているだけなんだ。
- 第2章 ハッカーと画家
    - ハッカーは、画家や建築家や作家と同じ、ものを創る人々だ。
    - 私はビジネスのことには全然興味がなかったので、ハックしたいんだと答えた。Yahooに入ってみたら、彼らにとってハックするということは ソフトウェアを実装するということで、デザインするということではないということがわかった。プログラマは、プロダクトマネージャのビジョン とかいったものをコードへと翻訳する技師とみなされていたのだ。
    - どうも、大企業ではそれが普通らしい。そういうふうにすれば、出力のばらつきを押えることができるからだ。 
    -  金を儲けようと思ったら、誰もただではやりたがらないような 危険な問題に取り組まざるを得なくなる。実は、これはものを創る人なら誰しも直面する問題だ。 価格は需要と供給で決まる。やっていて面白い仕事には、 顧客のありふれた問題を解決するような仕事ほどには需要がない。 
    - プログラミング言語をハックしていても、顧客企業の古いデータベースとそこのWebサーバをどうやってつなげるかを 考えるほどの金にはならないというわけだ。
    - プログラムは、人々がそれを読むために書かれるべきである。 たまたま、それが計算機で実行できるにすぎない。
    - ユーザに対する共感だけでなく、コードを読む人に対する共感も必要だ。 それはあなた自身のためでもある。あなた自身もあなたのコードの読者だからだ。
- 第3章 口にできないこと
    - 異端的な考えを思い巡らせ、それをどう使うか。
    - [1984年 (小説) - Wikipedia](https://ja.wikipedia.org/wiki/1984%E5%B9%B4_(%E5%B0%8F%E8%AA%AC))
- 第4章 天邪鬼の価値
    - ハッカーはルールを破ることで勝つ。
- 第5章 もうひとつの未来への道
    - Webベースソフトウェアは、マイクロコンピュータの登場以来最大のチャンスだ。
    - Webベースアプリケーションでは、誰もが同じバージョンを使い、バグは見つかるはしから修正されてゆく。
- 第6章 富の創りかた
    - 裕福になる最良の方法は富を生み出すことだ。そしてベンチャー企業はその最良の方法だ。
- 第7章 格差を考える
    - 収入の不均一な分布は、広く考えられているほど問題ではないのではないか。
- 第8章 スパムへの対策
    - 最近まで、専門家の多くはスパムフィルタは成功しないと考えていた。この提案がそれを変えた。
    - [スパムフィルターの仕組み](https://help.salesforce.com/s/articleView?id=sf.pardot_how_do_spam_filters_work.htm&type=5)
    - [迷惑メールフィルタ（スパムフィルタ）とは - IT用語辞典 e-Words](https://e-words.jp/w/%E8%BF%B7%E6%83%91%E3%83%A1%E3%83%BC%E3%83%AB%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF.html)
    - [[ThinkIT] 第4回：押さえておきたいスパムフィルタの技術 (1/3)](https://thinkit.co.jp/free/article/0611/8/4/)
- 第9章 ものつくりのセンス
    - 素晴らしいものを創るにはどうすればよいか。
    - 良いデザイン
        - 単純である
        - 永遠である
        - 正しい問題を解決する
        - 想像力を喚起する
        - しばしばちょっと滑稽である
        - 良いデザインをするのは難しい
        - 簡単に見える
        - 対称性を使う
        - 自然に似る
        - 再デザインである
        - 模倣する
        - しばしば奇妙である
        - 集団で生起する
        - しばしば大胆である
- 第10章 プログラミング言語入門
    - プログラミング言語とは何か。それはなぜ盛んに話題になるのか。
    - シートベルト、それとも手錠？
        - 動的型付け・静的型付け言語の話
- 第11章 百年の言語
    - 百年後にはどういうふうにプログラミングをしているだろう。今からでもそれを始められないだろうか。
- 第12章 普通のやつらの上を行け
    - Webベースアプリケーションでは、自分の使いたい言語を使うことができる。ライバルも同様だ。
    - ハッカーになりたい人は、まずPythonとJavaから始めよ、学ぶのが容易だから。真剣なハッカーはさらに、UnixをハックするためにCを学び、システム管理と CGIスクリプトのためにPerlを学ぶべし。そして本当に真剣なハッカーはLispを 学ぶことを熟慮すべきだ。
- 第13章 オタク野郎の復讐
    - 技術の分野では、「業界のベストプラクティス」は敗北へのレシピだ。
    - Lispのユニークさ
    - http://www.paulgraham.com/onlisp.html
- 第14章 夢の言語
    - 良いプログラミング言語とは、ハッカーがやりたいことをやれる言語だ。
    - https://www.programiz.com/java-programming/online-compiler/
    - Hello World だけでなぜこれだけ書かないといけないのか

```java
class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!"); 
    }
}
```


- 第15章 デザインとリサーチ
    - 研究は独自性が必要だ。デザインは良くなければならない。
- 第16章 素晴らしきハッカー
    - ほかより飛び抜けて優れたプログラマがいる。そんな素晴らしいハッカーたちはどういう人物なんだろう。


## 参考記事

http://www.paulgraham.com/articles.html
[ハッカーと画家 ---Hackers and Painters---](http://practical-scheme.net/trans/hp-j.html)
[「ハッカーと画家」から何を学ぶか - 今日学んだこと](https://nakazye.hatenablog.com/entry/2016/08/21/015711)
[「ハッカーと画家」を読んだ | GRAYCODE](https://gray-code.com/blog/book/hacker-and-painter/)
[【読書感想文】「ハッカーと画家」を読んで。二流の証明。 - ホンモノのエンジニアになりたい](https://www.engineer-log.com/entry/2019/01/31/hackers-and-painters)

実はオンラインでも読めるので、あまり難しいことは書かず以上です～。