LEFログ

:smile

「私が知る最高のプログラマーの習慣」という記事が良かった

endler.dev

The Best Programmers I Know | Matthias Endler

こちらの記事、Hacker Newsでたまたま見つけたのですが、とても良かったので紹介します。

素晴らしいプログラマーの習慣として、次の項目が挙げられていました。

  • 公式リファレンスを読もう
  • 使うツール(道具)に熟知しよう
  • エラーメッセージを読もう
  • 課題を分解しよう
  • コードに触れることに恐れない
  • チームのみんなを助けよう
  • 良い文章を書こう
  • 学び続けよう
  • 地位を気にしない
  • 信頼を築く
  • 忍耐力を持つ
  • コンピュータを責めない
  • 「分からない」と言うことを恐れない
  • 推測しない(調査する)
  • シンプルに保つ

見出しを元にざっとまとめてみました。どの項目も的確で、指針になる内容だと思いました。

個人的に面白かったところをピックアップしてみます。

使うツールに熟知しよう」という項目は、えにしテック社内でもよく言われていることです。ツールを使いこなすために、そのツールが「なぜ」作られたのかという根本的なところを意識して、掘り下げながら習得していく。表面上の使い方を知るだけではなく、背景や仕組みを理解することで、熟達の道につながります。

コードに触れることに恐れない」。実際に自分の手でコードを書いたり読んだりしないと、分からない面は多いです。例えばむかしCSSに苦手意識がありましたが、自分の手で色々実験した結果、少しずつ体系的に理解が深まってきた気がします。自分が苦手かもという思う領域も敬遠せずに、コードに触れて色々実験するのは大切です。

良い文章を書こう」。これは37signalsの本にも書かれていましたが、テキストで情報を伝達することはとても大切です。他者とのコミュニケーションを潤滑にする役割だけでなく、最近はLLMとのインターフェイスという点でも重要になってくると思います。

地位を気にしない」。お互いの地位を気にしなくて済むチームは、心理的安全性も高いです。また自由な発想も出てきますし、意見が出しやすい環境になります。Googleの研究でも心理的安全性の効果が示されていました。

www.businessinsider.jp

グーグルが行なった「最高のチームをつくる」調査の意外な結果。メンバーは重要ではなかった | Business Insider Japan

信頼を築く」。Reputationを敢えて「信頼」と訳してみました(評判・名声・信用などの多義的な言葉です)。アジャイル開発で大切にされている習慣として、「信頼貯金」という概念があります。角谷さんの記事に詳しく書かれていますが、チームのこれまでの習慣を変えたい、新しいプラクティスを導入したい、などと言った漸進的な組織づくりにはお互いの信頼が必要です。

gihyo.jp

最終回 信頼貯金を増やす | gihyo.jp

推測をしない(計測や調査をする)」。これはロバート・C・パイクの五箇条が元ネタですが、色んな場面で引用されています。思いつきで行動をするのではなく、まずは数値を計測して客観的なデータを出してから行動に移る。定量的な指標(数字)で考える大切さについては、まつもとゆきひろさんのこちらの記事が素晴らしいのでおすすめです。

logmi.jp

エンジニアは推測するな、計測せよ まつもとゆきひろ氏が説く、非機能要件で数字を重視すべき理由 | ログミーBusiness

シンプルに保つ」。複数の解法があったとき、迷ったときはできるだけシンプルな方法で解決を試みる。一度複雑化してしまったコードベースを、スッキリとリファクタリングするのは大変です。なのでシンプルなコードを保って、技術的負債を溜めないことが、長期的な開発を可能とし、ユーザーへの価値提供に繋がります。

例えばRuby on Railsというフレームワークでは、Rails Wayという考え方があります。これは、フレームワークが推奨するアーキテクチャのデフォルトに可能な限り従いつつ、ソフトウェアを育てていく方法論です。シンプルさを保ちながら、いかにスケールさせていくかがテーマであり、探求しがいのある設計論となっています。

youtu.be

基調講演 | Kaigi on Rails 2024

最近えにしテック社内で読んでいる Sandi Metzさんの『99 Bottles of OOP』は、コスト効率が高く、保守しやすく、満足のいくコードを書くことについて掘り下げられていてとても面白いです。JavaScript, PHP, Python, Rubyなど様々な言語版を一度に読めるので、気になった方はぜひ読んでみることをオススメします。

sandimetz.com

99 Bottles — Sandi Metz

と、見出しから連想したことをつらつらと書いてみました。

最高のプログラマーになるためには、こうした基本をきっちり実践していくことが大事だと改めて意識させられた記事でした。🌱

(もちろん、頭ではわかっていても、恐怖を克服するのは難しいですが)

ちなみに、もし自分が上の項目に付け加えるならば……

――アウトプットを続けよう

そして

――最後まで作り切ろう

自戒を込めて。