RandomThoughts

RandomThoughts

【書籍】情熱プログラマー

Contents:
  1. 2022-12-30 購入
  2. 第一章 市場を選ぶ
    1. 自分のやりたいことが先に来てない情けなさ
    2. 「みんな」と言うそのみんなのレベルの低さ
    3. 寄稿されたエッセイは面白い
  3. あまりにもひどい内容なので飛ばし読みして終わらせることに
  4. 3章、実行に移す
    1. 早く行動する事ばかり急かしているのはどうなんだろう
    2. 平凡で退屈な仕事が仕事の80%以上だろうか?
    3. あなたがやめても会社に大きな影響を与えないか?
  5. プログラマの視点が足りないのでは無いか
  6. 監訳者のあとがきが説教臭い!
  7. 本書がつまらないと思った理由を考えてみる(2023-01-01)
    1. XXしろ、ばかりである
    2. 読者をレベルの低いプログラマと想定している
    3. 低い所をターゲットにしているのに偉そう
    4. 主張に大して根拠が無い
    5. 一貫して評価が他人の行うものになっている
    6. この時期に特化しすぎた話を一般的的な真理のように語りすぎている
    7. 限定された自分の環境を一般的と思いすぎている
    8. そもそもタイトルはMy Job Went to Indiaの方が良かったのでは無いか
    9. 次は説教ではなく、日常を綴ったものを読みたい

情熱プログラマー。プログラム関連のエッセイでも読みたいな、ということで読んでみる。

前なんかomo先生が感想書いてたような、と思ってググってみるも、[Soft Skills を読んだ. というか Audible… - by Hajime Morrita To Phantasien](https://bellflower.dodgson.org/soft-skills-%E3%82%92%E8%AA%AD%E3%82%93%E3%81%A0-2e64c7ee2747#.s0h7lek9w)しかみつからなかった。

2022-12-30 購入

【書籍】プログラミングの心理学があまりにも古すぎたので、もうちょっと新しいのが読みたいな、と思い、情熱プログラマーをポチる。 こちらは2010年。もうちょっと新しい方が嬉しいけれど。

最初の方をぱらぱら読んでるが、なんか説教臭いな。 自分は道に悩んでるとかそういうんじゃないんだよな。 ただプログラマの日常などのエッセイが読みたいだけで。

良いコードを書くためのプラクティス的なのにはあまり興味が無いのだがそういう本が多くて、 だからちょっと違う【書籍】プログラミングの心理学を読み始めたんだったなぁ、と読み始めた時のことをちょっと思い出した。

第一章 市場を選ぶ

「僕ら開発者のほとんどはXXXだ」とかいう内容が全く自分に当てはまってないので、「それではいけない」と言われても、 知らんがな、という気しかしない内容だな。 なんというか、サラリーマンとして日々を無為に過ごしている人に対しての説教ばかりで、 しかもDave ThomasやMartin Fowlerを自分はそんなすごい人だとも目指しているなにかとも思っていないので、 それらを上のものとしてお前ら下々のものはダメだ、とか言われても、全然響かない。

なんか開幕から失敗したなぁ、という感じの内容だなぁ。

自分のやりたいことが先に来てない情けなさ

市場の選択というのは、自分が戦場の選択と良く呼んでいるような項目に近い話に思う。 そのテクノロジーの将来性とかそういうものを考えてやることを選ぶというのは皆が日常的にやっていることだろう。

だが、そうした選択を、売り込むという前提で話をしていて、自分が何をなすかから始まってないというのが情けない。 自分がやることを無視して市場を考えている。

自分がそこで何が出来るかが一番重要なんじゃないか?

「みんな」と言うそのみんなのレベルの低さ

例えば「僕らは国内で職を失わないか心配しているけれど、実際にはプログラマあたりのコストが下がったことで需要は増大する」とか書いてあるが、 そもそも国内で職を失わないか心配してないし…と思ってしまう。 需要と供給について、「たいていの人は〜」とか言うけれど自分は全然そうは思わない。

「君がオフショアに負けて職を失うことを心配しているなら、オフショア企業がやっているような仕事を避けるのも一つの手じゃないだろうか。」とか言われても、オフショアに負けて職を失うことなんて全然心配してないよ…

寄稿されたエッセイは面白い

本編は気に食わないしひどい内容だとも思うが、寄稿されてるエッセイは非常に面白い。 最初がGitHubの創業メンバ、次はTomcatの作者。 後者の「僕は自分自身を自分のスキルによって定義したことはない。いつも自分がやってきたことは何か、次にやりたいことはなにかで定義してきた」は、まさに本書に欠けている一番重要な視点に思う。 自分が何をするか、何をやりたいか、が一番大切だよな。

あまりにもひどい内容なので飛ばし読みして終わらせることに

「私達の多くは」といいながらひどいプログラマに対する説教をしてばかりで、 言ってることにも全く説得力を感じない。 何より目的が他人にどう評価されるかみたいな小さなことばかりなので、 なんでこんなしょぼい考えの人がこんな延々と説教してるんだ?という気しかしない。

読むのをやめてしまおうかとも思ったが、途中からマシになるかもしれないし、寄稿エッセイは面白いので、 飛ばし読みして最後までは眺めようかな。

この本、「My job went to India」の続編的な本らしいんだが、「My job went to India」の方がタイトル的にもスタンス的にも良かったんじゃないか、と思える。 明らかに序文のプログラマ像的な崇高な話と内容の指しているプログラマのショボさがずれている。 しょぼいプログラマの生き残り戦略、くらいの志の低い本として、低いところを自覚して書けば、もうちょっと読める内容だっただろうに。

3章、実行に移す

適当に飛ばし読みしつつ2章を読み終わり、三章に入った。

他人が望んでいる事を先回りしてやるとかマネージャーに評価されるには、とか、 何をやりたいかをみんな他人に任せていて、げんなりする。 それはすごくつまらないプログラマだと思うんだが、そんなものになる秘訣なんて全然知りたくもない。 それをなんでこんなに偉そうに説教するのか。

早く行動する事ばかり急かしているのはどうなんだろう

3章はすぐに始めよう的な事がたくさん書いてある。 でも人より早く働ける、というのは、この業界ではあまり強みでは無い気がする。 二人分の仕事をするより、誰も出来ない仕事をする方がいいんじゃないか。

実現が困難で一見不可能に見えるような事をどう実現するか、みたいな話が全く出てこない。 そういう事にチャレンジしてない、というのはプログラマとしてどうなの?

平凡で退屈な仕事が仕事の80%以上だろうか?

退屈な仕事をどうやって意欲をもってやるか、みたいな事が書いてあって、そこに「どうすれば平凡な日常業務(おそらく労働時間の80%以上だ)をこなしながら、自分自身の意欲を掻き立てて想像力を発揮できるだろう?」と書いてある。 どうやって退屈な仕事に熱意を持つかはおいといて、 この大多数は退屈な日常業務だ、という考えはどこから来ているのだろう?

昨日自分の仕事を振り返った時、12ヶ月のうち八ヶ月はすごく創造的な仕事をしていて、残りの4ヶ月もまぁまぁやりがいのある事やその8ヶ月に必要な洞察のための仕事だった、と振り返った。 たぶん去年の仕事の中で平凡で退屈な仕事は10%も無かった気がする。

平凡で退屈な日常業務が80%だったら、それをどう熱意と意欲を持って取り組むか、を自問するよりも、 もっと創造的でやりがいのある仕事の比率を高める方がいいんじゃないか。

あなたがやめても会社に大きな影響を与えないか?

みんな自分が凄い事をやっているが、実際はやめても会社には驚くほど小さな影響しかない、という話。 これは完全に会社の規模に依存した話だ。

自分が今働いている所はプログラマが3人だ。中心となるプログラマが辞めたらその時点でこの会社は終わるし、今やってるプロダクトも世には確実に出ない。 自分がやめたらどの程度影響があるかは難しい所で、たぶん製品は出るし会社はそのまま続くが、 自分がやっているような機能は一つも入らないという事になる。 その時にそのプロジェクトをやる意義があるかは結構微妙な話になる(あるかもしれないが無い気もする)。

そして自分がやめても他の同じくらいのプログラマを採用するのもほぼ不可能だ。 それは自分が凄いプログラマだからじゃなくて、零細企業の採用の現状とはそういうものだからだ。

ここに限らずこの本は大きな会社のごく一部のチームという前提で話をする。 例えば会社のゴールと自分のゴールをalignさせるのが難しいという話で、 それは会社が大きいから全体として何を目指しているかを一プログラマーは分からないから、といっている。

でも、なんでそんな大企業前提なんだろうか? プログラマーの多くは大企業で働いている、という訳でも無いと思うんだが。

プログラマの視点が足りないのでは無いか

この本は、会社の視点とかマネージャーの視点で考える事について出てくる。 そこには、暗黙のうちにそれらの視点がプログラマの視点よりも正しい事を前提にしている気がする。 けれど自分はそうは思わない。プログラマはプログラマの視点で考えるのが一番大切だろう。そしてこの著者はプログラマの視点での考えが明らかに足りてないように感じられる。

会社は利益を出すために存在している、という考えは、割と普通ではある。 けれど、だからプログラマはそれにどれだけ貢献出来るかが価値である、という訳では無い。 それは会社が目指す事であって、会社が工夫すべき事だ。 プログラマも協力してもいいけれど、それがプログラマにとって一番重要な事にはならないだろう。

プログラマとしては、プログラマ人生を通して自分はどういうプログラマになっていくのか、 どういう仕事をやっていきたいのか、何を世に残していきたいのか、というのがより重要な話で、 それに必要な範囲で会社というものをどう使っていくのか、というのが本来あるべきスタンスではないか。

けれどこの本は現在4章の最初の方まで読んできたが、プログラマ視点でのそうした目標が全然出てこない。 なぜマネージャーや会社の視点ばかりを強調するのだろうか? プログラマにとって一番大切なのはプログラマの視点じゃないか?

監訳者のあとがきが説教臭い!

あとがきで、閉塞感を社会のせいにするな、自分のせいだ、とか語り始めてびっくり。 ひょっとしてこの本が変に説教臭いの、訳のせいなのでは?という気がしてきた。 社会の閉塞感って本じゃないでしょ!?

本書がつまらないと思った理由を考えてみる(2023-01-01)

飛ばし読みで3日くらい掛けて最後まで読んだ。ひどい内容で買ったのを後悔したし、序盤で読むのをやめようかと悩んだが、 ポチってしまったので読むか、と思って最後までは読んだ。 ここで終わりにしてもいいんだが、どこらへんが期待値と大きく違ったのかを考えてみたい。

XXしろ、ばかりである

自分は別段、日々の仕事をどうしたらいいか悩んでいて本書を手にとった訳では無い。 プログラムのキャリアについて別段悩みも無いし、むしろうまく行っているとも思っている。 この本に期待したのはプログラムに関するエッセイで、どちらかといえば共感するようなエピソードだ。

でもこの本はそういう話はほとんどなくて、「世の中の大半はYYでダメな奴らばかりだ。だからお前はXXしろ。」という事が延々と続く。 これは自分の期待したものでは無かった。

このXXしろ、という助言は、時代の影響を受けやすいと思う。 あくまで本書が書かれた時代に最適化された手段を述べていて、 時代が少し変わるだけで有効では無くなる。

この前に読んだ【書籍】プログラミングの心理学もXXしろという主張はそれなりにあったが、 それはほとんどが「心理学的な手法で科学的な実験をせよ」というもので、この主張がいくつかの面であまり正しくなかった事は本人も振り返りで認めている。 そしてこれらの主張とは独立して各プログラマーのエピソードが読めて、これは現代でも面白さもあれば学びもある。

全体的に「XXしろ」という主張は風化が早く、メッセージ性が微妙なのでは無いか。

読者をレベルの低いプログラマと想定している

この本は、ようするに退屈な仕事をしている普通のプログラマが、日々の行いを気をつける事で「まぁマシ」なプログラマになるのを目指す感じの本だ。 この普通のプログラマのレベルは結構レベルが低く、端的に言えば自分よりだいぶプログラマとしての腕も低いプログラマを想定している。 だから明らかに語りかけている読者が自分では無い。

さらに著者は自分をそれらのプログラマより上に置いて、 レベルの低いプログラマに対して正解を教えてあげるという態度で一貫している。 自身のエピソードをあまり語らず、自分が見たレベルの低いプログラマがなぜダメなのか、という話ばかりする。 そしてより凄いプログラマに対しては「そんなのは一握りの例外だけでお前は違う」という態度で通す。

平凡だがまぁまぁ困っているプログラマが、現状に対して大きな冒険をしないで、ちょっとずつ毎日を良くしていこう、という時の最初の一歩に良い本たりえるとは思う。 でも自分はもはや平凡なプログラマでも無いし、毎日に困っている訳でも無い。 だから的外れな説教がただ並んでいるだけの本になってしまっている。

低い所をターゲットにしているのに偉そう

低い所をターゲットにしているのに、自分はそこより上という前提で話をするので、 述べている内容の割には偉そうになってしまっている。 これは訳の問題なのではないか?という気もちょっとしているが。

だから「自分がターゲットじゃないけれど楽しく読めた」という風になかなかならない。

もうちょっと「平凡な我々だけど毎日楽しくやっていこうな」というような共感をベースにした話し方も出来たんじゃないか。

主張に大して根拠が無い

XXしろ、といろいろな所に書いてあるが、それが正しい事か有効な事か怪しいものも結構ある。 たとえば万能選手になれ、という題のところがあるが、 自分には、こういうのにめちゃくちゃ弱いけれど傑出したプログラマの友人がいる。 それは変化などには弱いけれど、その分自分の時代には大きな成果が出せる。

こういうのは選択の問題であって、どちらが正しいという問題では無いと自分には思う。 けれど本書はいろいろな所で、著者の知っているたった一つの真理を教えてやろう、という態度で書かれている。 根拠が無いので当てはまらないけれど何か役に立つ事が引き出せる、みたいな余地があまり無い。

一貫して評価が他人の行うものになっている

マネージャーがどう思うか、会社がどう思うか、市場が将来どうなるのか、何が流行るのか、 そういう周りの状況の話ばかりで、自分が何をやりたいのか、自分が何をやるのか、という視点が全然無い。 未来を予想するばかりで、自分が未来を作る、という視点が無い。 この技術が将来来そうか、という話をする時に、この技術を将来自分が流行らせる、という視点が無い。

こういうのは平凡なプログラマをターゲットにしているからだ、という事で説明出来るけれど、あまりにもプログラマとして情けないのではないか?と思ってしまう。 時代を作っていく気概がない、というのは、書籍のタイトルと正反対なのでは無いか。

この時期に特化しすぎた話を一般的的な真理のように語りすぎている

JavaEEや.NETの時代のサーバーサイドにだけ成り立つような行き過ぎた最適化を、まるで一般的真理のように語っている所が多い。 でもその取り出した真理は現代では成り立たないので、何も価値が無くなってしまっている。

もっと真理を取り出す前の所の話なら、現代とは違っても当時を思って懐かしんだり、次の時代でまたそうした時代への揺り戻しがあるかもとか考えたり、いろいろと使いみちがあったと思うのだが。 教訓として取り出しすぎてしまう結果、出版から10年たった今読むと単に使えない思い込みの羅列になってしまっている。

限定された自分の環境を一般的と思いすぎている

著者の前提とする環境、大企業で個々のチームは企業に大して影響を与えず、いつもオフショアとの比較をされている、 という前提は、全く一般的では無い。 なのにそれをみんながそういう環境であると一般化していろいろ語ってしまう。

むしろインドのオフショアリング周りには面白い話がいっぱいあると思うのだけれど、 一般化してしまった結果、単に自分には当てはまらない事を一般論として語ってしまっていて、 一般論ゆえに面白みもなく、しかも環境が限定されているので自分など多くの人に当てはまらない。

そもそもタイトルはMy Job Went to Indiaの方が良かったのでは無いか

この本、もともとMy Job Went to Indiaというタイトルだったのが改訂されて情熱プログラマーになったらしい。 My Job Went to Indiaはいっときよくomo先生が話題にしてたので書籍のタイトルは覚えていた。

この本は読んでないんだけど、タイトルから思うにもうちょっと限定したターゲットに対する話だったんじゃないか。

インドにオフショアされてしまうよ!って感じの層をターゲットに、オフショアリングにまつわる事を面白おかしく語る方が、一般的なフリをしてみんなに説教をしつつその実適用先はめっちゃ限定的、という本書よりも良いのでは?

これならターゲットに合わないドメインの人もタイトルから分かるし、 必然的にレベルも多数派というか凡庸な人たちの生き残り戦略というスタンスがはっきりして、 具体的なエピソードも増えて現在の視点でも面白い事が多かったんじゃないか。

なんで一般的なフリをする方向に倒しちゃったのかね?

次は説教ではなく、日常を綴ったものを読みたい

この本をポチってしまった反省として、次に読みたいものを考えると、「XXしろ」という本ではなくて、プログラマの日常などを綴ったものを読みたい気がする。 良し悪しとかは多少は入るにせよそれが主体にはならないような奴。