達人プログラマーになるための方法

エンジニア
スポンサーリンク

この記事を読んで下さっている方は、プログラマーとしての経験をお持ちで、もっと上達したいと考えていらっしゃる方だと思います。

あるいは、これからプログラマーやエンジニアを目指している方もいらっしゃると思います。

プログラマーやエンジニアとして、もっと上達したい方に向けて、僕が一番におすすめしたい書籍が「達人プログラマー」です。

僕は、エンジニアに成り立ての新人の頃にこの本を知って読みました。

それ以来、エンジニアとしてのマインドの根幹は、この本に書かれていることをベースにしています。

エンジニアになって20年近く経つ今でも、たまに読み返すこともあるくらい、重要なことが書かれていると思っています。

本記事では、書籍「達人プログラマー」から一部の内容を紹介しつつ、僕なりの意見をまとめて解説します。

ぜひこの本の内容をご覧いただき、達人プログラマーを目指す方が一人でも多くなってもらえると幸いです。

達人プログラマーになるためには

本書のまえがきに、達人プログラマーとはどういう人か、ということが書かれています。

達人プログラマーは、以下の性格の多くを持ち併せています。

  • 新しい物好き
    • 技術や技法を試すことに生きがいを感じる。
  • 研究好き
    • 疑問を感じやすい。
  • 批判的
    • 事実がはっきりするまで物事を与えられたとおりに受け取らない。
  • 現実的
    • 直面している各問題に横たわっている本質を理解しようと努める。
  • 何でも屋
    • 幅広い分野の技術と環境に慣れ親しもうと努力しながら、並行して新たな開発を行い続ける。

上記の5つを持ち合わせている方であれば、もう立派な達人プログラマーかもしれません。

ですが、僕も含めて大半の方は常に5つのことを考え、実行できているわけではないと思います。

本書は、達人プログラマーになるための具体的な方法が46個に渡って記載されています。

今回は、その中から僕が大切だと思う3つの哲学を紹介します。

ソフトウェアのエントロピー

1つ目に「ソフトウェアのエントロピー」の内容を紹介します。

エントロピーとは、Wikipediaによると、

「熱力学および統計力学において定義される示量性の状態量である。」
出典: フリー百科事典『ウィキペディア(Wikipedia)』

とあります。

ソフトウェアのエントロピーとは、本書によると

ソフトウェアにおいて、ある限界を超えるまで無秩序さが増大すると「腐ったプログラム」になる。

とあり、それを

割れた窓を放置しておかないこと

悪い設計、間違った意思決定、質の悪いコードをそのままにしておかない。
うまく設計され、簡潔に記述され、エレガントなものになっている場合は、それを汚さないように細心の注意を払う。

とすべきだとされています。

これは、一度ヒビが入ってしまった窓は、簡単に割れてしまうという表現から、一度良くない設計やコードが入ってしまうとそこから広がってしまいやすいということを表しています。

達人プログラマーになるには、常に割れた窓を放置しない、ヒビを入れないことを心がけるべきだとされています。

チームで開発しているときに、誰か一人が良くないコードを書くと、途端にそれが広がって大きな不具合や問題に繋がってしまったという経験がある方も多いのではないかと思います。

僕も自分自身がヒビを入れてしまわないことを気をつけていますし、他の方が書いたコードでも良くない部分は積極的に修正するようにしています。

本当に不思議なくらい、良くないコードは、あっという間に広まってしまうことが多いです。

もちろんヒビを入れてしまった本人は、知らなかったということがほとんどだとは思いますが、特にチームを結成して間もない頃に多く起こりがちです。

それはチームの中で、方針や意志の統一がされていないからということが大きな原因でもあると思います。

そんな時におすすめなのが、ペアプログラミングやモブプログラミングです。

ペアプログラミングやモブプログラミングの進め方については、別で記事を書いていますので、よろしければ参照ください。

あなたの知識のポートフォリオ

2つ目に「あなたの知識のポートフォリオ」の内容について紹介します。

本書では、自身の中に知識のポートフォリオを作り、常にそのポートフォリオに対して投資をすることの重要性を記述しています。

ポートフォリオを作るに当たっては、

  • 定期的に投資を行う。
  • 多角化。
  • リスク管理。
  • 安く買い、高く売る。
  • 見直しと再配分。

が重要であるとし、具体的にポートフォリオを充実させる方法として、

  • 毎年少なくとも一つの言語を学習する。
  • 毎四半期毎に技術書籍を読む。
  • 技術書籍以外の書籍を読む。
  • 講習を受講する。
  • ローカル・ユーザー・グループに参加する。
  • 異なった環境に慣れ親しんでみる。
  • 最先端にとどまり続ける。
  • インターネットを使う。

ということを紹介しています。

知識のポートフォリオというのは、一朝一夕に出来るものではありませんが、継続して学習し続けることの重要性を表しています。

1つの技術をインプットし続けるのではなく、多角的に技術以外のものも含めて、インプットすることが大切であるとされています。

僕自身も、1つの技術を極めてトップクラスになるほどの能力はないので、様々な技術を学び、それらをかけ合わせることで、自分の価値を高めることに主眼を置いています。

自分には知識や能力が足りないと思っている方でも、自分が持っている別の知識と掛け合わせることで、他の人にはない能力が生まれることがありますので、諦めず継続し続けることが重要です。

伝達しよう!

3つ目に「伝達しよう!」の内容について紹介します。

本書ではアウトプットの仕方について、以下のように記載されています。

伝える事柄と、伝える方法は、車の両輪だと考えること

ただ自分の言いたいことを伝えるのではなく、聞き手が欲しい順番を考えながら、タイミングに合った適切な表現をすることが重要であるということです。

相手に伝える前には、具体的に

  • W 何(what)
    • 聞き手に何を知ってほしいのか。
  • I 興味(interest)
    • 言いたいことの中にある彼らの興味とは何か。
  • S 洗練(sophisicate)
    • それらはどのくらい洗練されているか。
  • D 詳細(detail)
    • 彼らはどの程度詳細を知りたがっているか。
  • O 誰の情報(own)
    • 誰にその情報を知ってもらいたいのか。
  • M 動機づけ(motivate)
    • 話を聞いてもらえるには、どうするか。

を考えるべきと記載されています。

ビジネスの場面では、相手にいかに正しく言いたいことを伝えられるかが重要ですが、そのためには上記にあるような点を予め考えておくことが大切です。

僕はまだまだ勉強中ですが、このブログを通して、より相手に伝わるアウトプットをするにはどうしたら良いかを考えながら学習をしています。

すべてのプログラマー・エンジニアに読んで欲しい

少し大げさかもしれませんが、僕はこの本に出会って、エンジニアとしての人生が大きく変わりました。

それくらい大切なことがたくさん書いてある一冊です。

今回は一部しかお伝えできませんでしたが、ぜひすべての内容を読んでいただきたいと思います。

達人プログラマーがたくさんいる世の中になったらいいなと思います。

 

コメント

タイトルとURLをコピーしました