世界を動かす技術を、日本語で。

開発者として、私にとって最も重要な道具はペンとノートです。

2025年5月28日原文(hamatti.org)

概要

  • 新しい職場でのノート購入体験の喜び
  • ノートがソフトウェア開発者にとって最重要ツールである理由
  • コードを書く前の思考整理の重要性
  • 書くことで思考を深め、知識のギャップを明確化
  • ノートが過去の思考プロセスの記録として役立つ点

ノートがソフトウェア開発者にとって重要な理由

  • 新しい職場 への入社に合わせて 新しいノート を購入した体験
  • ノート購入の喜びと ワクワク感 の共有
  • ソフトウェア開発者 にとってノートが 最も重要なツール であるという認識
  • コードを書くのは最終段階であり、 本当に重要なのは何を書くかを考える時間 である点
  • パソコンの前では 創造的な思考 が妨げられやすいことの実感
  • コードエディタを開くと 「機能モード」 に入り、作業的になりがち
  • 創造的な思考を促すために パソコンから離れる習慣
    • 会社近くの 水辺 での散歩や
    • ノート を持ってソファやテラスで考える時間の活用

ノートを使った思考整理の方法

  • 新しい問題への 初期アプローチ の設計
    • UIのスケッチやフローチャートの作成
  • 現在のコードベースの データや処理の流れ の理解
    • バグ修正や新機能追加の際の思考整理
  • 書くこと・描くこと が抽象的なアイデアを具体化する強力なツールである点
  • 書きながら知識の抜けや理解不足が 明確になる メリット
  • コードを書いた後も 説明文を書く習慣
    • 他人に説明するつもりで書くことで 矛盾や設計ミス を発見
    • 可能であれば ブログ投稿 として公開

書くことの副次的なメリット

  • 思考の記録 がそのままノートに残る利点
  • 別途ノートを取る必要がなく、 思考過程がそのまま資産 になる点
  • 後で 整理・磨き直す ことで将来にも役立つノート作り
  • 数週間後や数年後に 自分や他人から質問 された時、正確に説明できる安心感
    • 実際には 未来の自分 が最もよくそのノートを活用

さらなる情報とコミュニケーションの呼びかけ

  • 開発者としてのノートの取り方 についての詳細な投稿案内
  • 上記内容に共感した場合は メールでの意見交換 を歓迎
    • juhamattisantala at gmail dot com 宛に連絡
  • 2025年 には世界中の人と より深い議論 を目指す意向

Hackerたちの意見

開発者にとってノートブックが「最も重要なツール」だなんて、ただのロマンチシズムだよね。確かに役立つ人もいるけど、デバッガーやバージョン管理、CIの方が重要だってことを忘れないでほしい。これは職人のコスプレじゃなくて、ソフトウェアエンジニアリングなんだから。

指摘してくれてありがとう。同じように、プロダクティビティシステムについての投稿がたくさんあって、みんながタブやリストを使ってGTDノートを作るのに無限の時間をかけてるよね。実際に生産的になる代わりに、そうやって時間を使ってる。理想のObsidianワークフローを語る人もいるけど、実際には役立つことをメモしてない。自分のブログエンジンを作ったっていう人も、特別なブログのやり方があるから手作りしなきゃいけなかったんだって。ブログを作るのに時間をかけるより、ブログを書くことに時間を使うべきだよね。(僕もそういう経験がある)。「これは職人のコスプレじゃなくて、ソフトウェアエンジニアリングだ。」って言葉が大好き。絶対にこれを盗んで、ノートに書いておくよ。

ここでの文字通りの議論は正しいよね。ノートブックを使うのは古くて、もっと良いツールがある。でも、その感情は真実だと思う。ソフトウェアを作るとき、良いコードを設計することが仕事の最も基本的に重要な側面だから。君が挙げたツールは、コードを納品するためのもので、もしコード自体の設計が間違ってたら、あまり意味がない。コードを設計するプロセスは、今では失われた技術のように感じる。開発者たちは、受け入れ基準をクリアするために、適当に壁に投げつけることに満足してる。実際にロジックやフローを考えること(紙の上でも、図を描くアプリでも、何でも)をすることが、開発コミュニティの多くで欠けている。もし人々がIDEに入る前に機能のロジックをじっくり考えられれば、アプリはもう少しバグが少なくなるかもしれないね。

「職人コスプレ」いい反論だね。ああ、コメントの統計を見てみたいな。管理職、職歴、年齢、収入、教育などの情報があったら、意見が典型的なものとして現れると思う。つまり、それは成功したソフトウェア開発についてよりも、話している人自身について多くを語ってる。OPは自分にとって何がメンタル的にうまくいくか、つまり集中力や創造性について話してるんだ。こういう投稿を読んで、それを(批判も含めて)処方的に考えるのは間違いだよ。どんなパターンを真似ても、結局は貨物カルト的な行動になるだけだから。

OPです。前回、私のブログがHNで注目された時、「幻想に生きてる」と言われ、今回は「純粋なロマン主義」だって。あなたが共有してくれたツールはもちろん大事で、私もすごく楽しんで使ってる。バージョン管理やデバッガーなしで開発者として働きたくないしね。これらのツールを失ったら、確実に遅くなってイライラするだろうけど、ノートブックはそれよりも私にとって重要だと本当に思ってる。コードを書くことや実行することは物事を進めるためのツールだけど、ソフトウェア開発は、問題を解決したり、生活を楽にする価値のあるものを作ることがもっと重要だと思う。だから、コードはしばしば些細な実装の詳細に過ぎない。何を作るか、どう作るかを考えることがもっと大事なんだ。人によっては、コードエディタや他のデジタルツールの中で考えるのが得意な人もいるけど、私の脳は詳細な実装モードに入っちゃって、コードエディタで書いてる時に全体像を見るのが難しい。私にとって、コーディングの前(そしてその最中!)にノートを使って考えることは仕事の重要な部分なんだ。他のツールを失うことは確かに遅くするけど、ペンと紙で考えられないのは、私の思考や問題解決能力、創造性を妨げて、結果的に悪いソフトウェアを書くことになっちゃう。

問題追跡ツールはどう?要件は?デザインや計画は?デバッガーはデザインを手助けしないし、バージョン管理はまだ何をする必要があるか教えてくれないし、CIは要件を実装したかどうかも教えてくれない(あるいは、あなたが思っている要件が実際の要件であるかどうかも)。

これは「家を建てる時、当然ハンマーが設計図よりも重要だ。ここは美術の授業じゃなくて建設なんだから」と言ってるように感じる。

これ100%だわ。似たようなことを書こうと思ってた。ソフトウェアエンジニアとして15年やってきたけど、ノートを取る回数なんて、バージョン管理やデバッガーを頼る回数に比べたらほんとに少ない。ノートやホワイトボードが役立つ時もあるけど、結局はIDEの裏でどう動くかが大事なんだよね。

あなたが言ってるのはソフトウェアエンジニアリングじゃなくて、ソフトウェアマシニングだね。ブルーカラーの機械工とホワイトカラーのエンジニアの違いは、彼らが使う機械に対する見方にある。エンジニアにとって、機械はスライドルールでも計算機でもスパコンでも、ただの道具なんだ。道具を使ってるからエンジニアリングをしてるわけじゃなくて、考えてるからエンジニアリングをしてるんだよ。道具は思考を少し早くする手助けをしてくれるだけ。機械工にとっては、機械が仕事そのもの。機械がなければウィジェットは作れないし、ウィジェットについて考えるだけじゃ意味がない。

ロマンティシズムじゃなくて、私にとってもすごく大事なことなんだ。実際にやる前に、やろうとしていることを描き出すのにかなりの時間を使ってる。とはいえ、文脈としてはグリーンフィールドの組み込みプロジェクトに取り組むことが多いけどね。コーディングやデバッグは上達するのが難しいし、もちろん重要だけど、実際に何を作るかを考える必要があるし、そのツールだけじゃそこには到達できない。私にとっては、ペンと紙を使って実際に何をするべきかを考えるんだ。

数学や物理、コンピュータサイエンスで出会った中で、一番頭のいい人たちはノートブックすら使ってないよ。彼らはプリンター用紙とペンを使って、終わったらその紙を捨てちゃう。過去の個人的なメモが役立つことはほとんどないね。もし書き留める価値があることがあれば、それはドキュメントに入れて、他の人が将来そのク quirkyなことに気づけるようにしてる。どうしても覚えたいことがあれば、フラッシュカードを作って、間隔を空けて復習するよ。でも、これはあくまで僕のやり方で、他の人には合わないかもしれないね。この投稿をちょっと個人的に受け取りすぎてる人がいると思う。これはライターの作品で、タイトルはこの開発者が信じている哲学を共有するためのもの。誰かがそれに従うべきだなんて言ってるわけじゃないから。ペンとノートが合わないなら、使わなければいいだけだよ。

これが僕の脳の働き方だ。ノートブックは持ってるよ。一日の思考の流れは、その日の1ページに書く。次の日にはページをめくって、ほとんど振り返らない。振り返ることには価値があるかもしれないけど、なかなかそれを実行できないんだ。

Hacker Newsで議論の続きを見る