2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ジョブカンAdvent Calendar 2024

Day 24

「ハッカーと画家」読んでみた

Last updated at Posted at 2024-12-23

ジョブカン事業部のアドベントカレンダー24日目です。

今年度からジョブカン事業部でエンジニアをしている@mochi33です!

クリスマス・イブですね!
ということで、今から誰かのプレゼントに使えるかもしれない、あるエッセイ本について書きていきたいと思います。
よろしくお願いします!

はじめに

本記事では、入社してすぐの時期に先輩エンジニアの方におすすめしていただいた本、ポール・グレアム著「ハッカーと画家」ついて紹介いたします。
ただ、本の全体について触れると長くなってしまうので、第二章に絞って書いていきます。
拙い文章となってしまっていますが、お付き合いいただけると幸いです🙇

「ハッカーと画家」はどんな本?

この本は、最初のASPと言われるViawebを創り上げたポール・グレアム氏が書いたエッセイ集です。
載っているエッセイはそれぞれでかなり異なった内容となっているのですが、どれもグレアム氏のコンピュータの世界に対する思想が濃く書かれていて、エンジニアであれば強烈に惹かれるような内容となっていると思います。

第二章の内容

「ハッカーと画家」の第二章は本のタイトルと同じ、「ハッカーと画家」となっています。
そして章内では、ハッカーと画家の関係について『私が知っているあらゆる種類の人々の内でハッカーと画家が一番よく似ている。』と述べられています。
そこまで似ているかな?
私自身が想像するハッカーはどちらかといえば画家とは逆の存在のようなイメージがあったので驚きました。
ただ、この章では、その2つの共通点や用いる手法の類似点がいくつも書かれていており、読んでいくうちに深く納得することができました。

ハッカーとは

グレアム氏の言うハッカーとは一体なんなのでしょうか?

ハッカー≠科学者

ハッカーは数学者ではないらしいです。まず、計算機科学=ハッカーでないことが説明されていました。
『計算機科学とはほとんど関連のない分野が歴史的な偶然からいっしょくたに放り込まれたもので、いってみればユーゴスラビアみたいなものだ。』と、計算機科学とハッキングの混同を憂いていて、少なくともハッカーの仕事は論文を書くためにあるものではないことがわかります。
確かに、優れたソフトウェア設計者が高度な計算機科学の知識を持っているかと考えればあまり関連性はない気がします...

ハッカー≠エンジニア

『優れたソフトウェア設計者は、建築家がエンジニアではないのと同じように、エンジニアではない。』

!?
私が読んでいる時には勝手にハッカー=エンジニアと置き換えて読んでいたが、どうやらそういうわけではなさそうですね...。
建築家の立ち位置をソフトウェア開発に置き換えて考えてみると、何かの要望から仕様をつくるのはハッカーの仕事ということでしょうか。

ただ、

『「何を」と「どうやって」を分けすぎるのもよくない。』
『ハッキングをするのに最良の形態は仕様を創ることだ。ただ、仕様を創る一番の方法は、それを実装することだ。』

ともありました。
つまり、ハッカーは要望から実装までの流れを分業した一部分を担当するということではなく、ソフトウェアのデザインをし、そのデザインのためにコードも書くというようなループのような工程を行うということらしいです。

まるでスーパーマン。ハッカーかっこいい…

つまりハッカーは

まとめるとハッカーは論文を書く科学者や、仕様をコードに翻訳する技師ではなく、エンジニアリングをしながらソフトウェアのデザインをする人間ということです。

ん?デザインをしながら技術を用いて対象物を作り上げていく…?

まるで「画家」みたいだ!

画家から学べること

グレアム氏の言うハッカーと画家はかなり近しい存在であるということがわかりました。
そんなハッカーは画家の手法から多く学べることがあるみたいです。

以下にそれらを簡単にまとめました。

  • 作りながら学ぶ

画家は作品を何枚も描きあげながら学ぶ。

ハッカーはいくつものプロジェクトを通してハックしながら学ぶ。

科学者は座学や先人の完璧な仕事(実験)を再現して学ぶ。
つまり、まずは上手になることから初めて、次第にオリジナルになっていく。ハッカーとは逆の順序となっている。

  • 詳細化しながらも、元の計画を動かしながら作る

絵画は大まかな描写から始まり、次第に細部を埋めていくという手法がとられる。

しかし、時には最初の計画(構図や顔の表情など)を変更していくこともある。

ハッキングもそうあるべきで、元の仕様が変わってもそれに耐えられるような書き方をすべき。

つまり早すぎる最適化は危険。

  • 共感能力が必要

絵画は人に見られるものであるため、共感能力が必要。

ハッカーもユーザ視点、コードを読む人の視点を得るためにそれが必要。

ハッキングはクールか?

第二章の終わりはハッキングに対する世間の評価やその展望について書かれていました。

『ハッキングは画家や小説家と同じだとして、それは同じくらいクールだろうか。』

「ハッカー」ではないにしてもやはりエンジニアとしても気になる問いですね!

グレアムは『名声が遅れてくるのが常だ。』

『画家たちの名声が遅れてついてきたように、いつかハッキングにも栄光の時代が来るであろう。』
おお…(* ’ω` *)

この本が出版されたのは2004年ですが、確かにその時点からも良いソフトウェアが次々に生まれ、それらを創り上げるハッキングというものへの評価も向上しているのではないでしょうか?

終わりに

この記事で触れた第2章以外の部分で、『ハッカーは優れたプログラマのことである』とありました。エンジニアの進化系はハッカーなのかもしれないですね。

最後の最後に

DONUTSでは、新卒中途を問わず積極的に採用活動を行っています!!

ジョブカン事業部も、一緒に働くエンジニアを募集しています!!

気になる方はお気軽に応募してみてください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?