SOFT SKILLS はソフトウェア開発者の人生攻略ガイドだった

以前から良書として推されていて気になっていた本ではあるが、今更読んでみた。

感想

本書の最大の特徴として、技術書ではあるのだが特定の一技術について書かれているわけではない。ソフトウェア開発者がどう生きるべきか、ライフハックのようなことが書かれている。なんと全71章もの大ボリュームだ。

「明日から試してみよう」と思うところもあれば、既に実践できていておさらいになるところもあった。また、自分の感覚からすると首を傾げるところも少しながらある。アメリカと日本の文化の違いによるものもあるだろう。「書いてあること全てを鵜呑みにする必要はない」という旨は本書にも書いてある。

その中でも特に自分に刺さったものを3つ抜粋してみた。

コミュニケーションの重要性

しかし、実際には、ソフトウェア開発者の時間の大部分は、コンピューターではなく、人を相手にするために使われている。私たちが書いているコードでさえ、第一義的には人に理解してもらうために書くのであり、コンピューターに理解させることには二義的な意味しかない。

第4章 社交術: 考えている以上のものが必要だ

当たり前のことなのかもしれないが、改めて気づかされた。プログラミング言語はコンピュータのためではなく、人のためのものだ。

ソフトウェア開発者は(私も含め)コミュニケーションを苦手とする人も多い。だが、プログラミングすら一種のコミュニケーションと捉えることができ、疎かにすることはできない。

自分が知っている技術が一番ではない

私たちの大半は、ただ知っているからという理由で特定のテクノロジーを崇める態度を取るようになってしまう。

(中略)

本当に言いたいのは、選択肢を制限するなということだ。自分が選んだテクノロジーが最高だと強調して、ほかのすべてのテクノロジーを無視したり過小評価したりするのは間違っている。

第18章 テクノロジーに対して頑なな態度を取るな

エンジニア業界には「宗教戦争」という言葉がある。たいていの場合、冗談めかして使われる言葉だが、冗談で済まないこともある。あなたは同僚や上司が決めた技術に意見する間も無く従わされたことはないだろうか。 Vim や Emacs をはじめとするエディタであったり、言語やフレームワークなど様々なものに起こり得ることだ。

特にチームで開発する際に「自分が知っているから」という理由だけで技術を選ぶのは間違いで、課題に対してできるだけ最適な技術を選ぶように努力すべきだ。そのような思考放棄は「私は新しい技術を学ぶスキルが無い」と言っているのに等しいと思う。

テレビゲームくらい気軽に失敗しよう

テレビゲームのコントローラを握ったら、落とし穴に落ちたり火の玉に飲み込まれたりせずにゲームに完勝できるなどとは思わないだろう。それならなぜ、失敗を経験せずに人生を生き抜けると思うのだろうか。

第70章 失敗に正面からぶつかれ

「失敗は成功の元」「失敗を恐れるな」飽きるほど言われていることではあるが、このテレビゲームの例えは私にとってわかりやすかった。

私は高難易度のテレビゲームが好きでよくプレイしている。昨年は SEKIRO にハマっていて、このゲームでは同じボスに数十回負けるのも日常茶飯事だ。だが、敗因を分析し幾度も挑むことで着実に勝利に近づいていく。

ここまで気軽に失敗するのは現実では難しいだろうが、その意気で挑めればどんな失敗も怖くないだろう。

まとめ

個人的な読書観の話になってしまうのだが、私は特定の技術を扱った技術書より本書のように広く役立つ本を読むことが好きだ。もちろん、その技術についてのあらゆる情報が一冊の本にまとまっている前者も魅力的だ。

特にWeb業界は流行り廃りが激しいため、情報が古くなりやすい。 例えば Angular という JavaScript のフレームワークは半年に一回のメジャーアップデートを行っているため、リリースを追い続けないとあっという間に知識は古くなってしまう。

そのような中、10年先でも役に立つであろう良書に出会えたことを幸運に思う。約3000円の価値、そして読書に数時間を費やす価値は確実にあるだろう。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です