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

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

概要

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

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

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

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

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

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

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

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

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

Hackerたちの意見

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

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

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

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

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

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

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

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

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

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

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

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

これはすごく個人的なことだと思う :) みんなそれぞれの現実やワークフローがあって、記事を読んで共鳴するか、逆に違和感を感じるかは人それぞれだよね。僕は紙とペンが同時に心地よくもあり、不安にも感じる。書くことで思考が整理されるから、安心感があるけど、インデックスシステムがないと(毎ノートの最初に2ページの空白を作って内容をインデックスしようとしてる;他のページには番号が付いてる)、迷いやすいんだよね。でも、デジタルネイティブの子供たちは違うアプローチを取るかもしれない。紙とペンは彼らにとって不安をもたらすかもしれない。だから、育った家庭によるところが大きいと思う。

これに関する科学的な側面は、書き留めることで記憶や保持、学習が向上するってこと。たとえ書いたものをすぐに捨ててもね。これに関する記事はたくさんあって、非常によく文書化された現象だよ。https://www.newscientist.com/article/2414241-writing-things-... 手書きはタイピングよりも効果が大きいのは、より多くの感覚や脳の部分、特に運動皮質を使うからなんだ。これを理由にモレスキンを買う言い訳になるって自分に言い聞かせてるけど、手書きは僕のワークフローには合わない。大量のテキストをバッファに打ち込んで、それを変換するのが今の僕のスタイル。特にLLMがある今はね。もし脳が完全に機能しなくなったら、意味不明なフレーズをテキストエディタに打ち込み始めて、目が覚めたら戻って編集したりリファクタリングしたりする。そうすると、必要なメールやコードの大まかなアウトラインができることが多い。あるいは少なくともTODOリストがね。そしたら、実際の作業に取り掛かる。最初の落書きはほとんど消しちゃうけど、手書きは保持には役立つよ。

過去の個人的なメモが役立つことはほとんどない 同じ気持ちだけど、やっぱり保管してるよ(ノートブックもランダムな紙も)。何年も経ってからそれを見返すのは、すごく満足感があるんだ。まるで昔のランダムな写真を見てるみたいで、過去の思考プロセスを振り返る感じ。

彼らはプリンター用紙とペンを使う。終わったら、その紙を捨てる。それがペン(シル)と紙を使うことの最も重要なポイントだ。再利用できるならそれもいいけど、最も大事なのは物理的に書き留めることなんだ。ノートに書いたものを残すことはほとんどないし、最終的には破ってシュレッダーにかけちゃう。

僕も科学の仕事でプリンター用紙を使ったことがあるけど、個人的にはあまり好きじゃない。でも、それしか手に入らないときは使ったこともある。科学組織の予算はいつも厳しいから、他のものが提供されないことが多いし、自分で何かを注文する権限もないことが多い。僕の言いたいことは、これは多くの科学者が置かれている状況の結果として見るべきで、意識的な選択ではないと思うけど、好きな人もいるかもしれないってことだね。

僕のノートの内容のほとんどは、再度見返されることはない。思いついたことのリストや出来事の順序などがほとんどだよ。時々、忘れそうなことを書き留めて、簡単にアクセスできるように小さな付箋を貼っておくこともある。

昔は、ただ楽しいからっておしゃれな透かし入りの紙を使ってたけど、無限にプリンター用紙がある職場に就職したら、11x17のプリンター用紙まであってさ!それに合わせて11x17のクリップボードも買って、それ以来ずっと使ってるよ。

ほとんどのコメントはこの投稿の物理的なペンと紙の側面に焦点を当ててるけど、根本的な原則を見落としてるね。著者はペンと紙を使うのは、コンピュータの前に座ると「機能モード」に切り替わって、デザインするんじゃなくて実装しちゃうからなんだ。それが全て。重要なのは、デザインすべき時に実装の罠にハマらないようにすること。バランスをどう保つかはあなた次第だよ。

OPです。まさにその通り!あなたがこの話の核心を理解してくれたのを読んで嬉しいよ。自分に合ったツールを見つけることが大事なんだ。私は、毎日7.5時間コンピュータの前に座っている技術チームの中で、画面とキーボードから離れている時の方が考えがまとまることが多いから、外部者のように感じることがよくあって、同じように感じている人たちに例を示したかったんだ。

私は、旅行や週末の小旅行に持っていくノートを持ってるんだ。たまにインスピレーションが湧いた時にメモするためにね。その中には、実装されるかどうか分からないペットプロジェクトのデザインがいくつかある。ビーチに座って、実装しなくても潜在的なデザインを考えるのは楽しいよ。

いい議論だね。私の意見では、本当のポイントはノートとデジタルツールのどちらが良いかじゃなくて、メンタルのギアをどうシフトさせるかなんだ。モードを切り替えるたびに、脳が違った注意の仕方を強いられる。それが新しいコンテキストを生んで、集中力や創造性、記憶力を高めることがある。例えば、最近はずっとコーディングをやめて、夜に新しい趣味として執筆を始めたんだ。そのシンプルな変化が脳をリセットして、昼間のパフォーマンスを実際に向上させたよ。計画についても同じで、デジタルからペンと紙に切り替えることでルーチンが破られて、脳が違った方法で働くようになる。ツールの問題じゃなくて、その変化があなたを目覚めさせるかどうかが大事なんだ。

本『スマーター・ファスター・ベター』で、ディスフルエンシーという概念を知ったんだ。 awkwardなフォントや新しい環境、異なるツールなどの余分な摩擦が、自動操縦モードから引き離して新しい考え方を強いるっていうアイデア。これについて他ではあまり見たことがないけど、過去9年間の問題解決や学び方に影響を与えたよ。ノートに切り替えるのも、このトリガーを引くための一つの素晴らしい方法だね。

これが、実際に僕が3つの異なるメディアでノートを取る理由の一つなんだ。紙のノート、古いデジタルボイスレコーダー、そしてテキストファイル。異なるメディアにはそれぞれ利点と欠点があって、異なるアイデアをよりわかりやすく表現できる。ボイスレコーダーは年々使うことが少なくなったけど、時間が限られていて次のことに移らなきゃいけないときには最適だと思う。ボイスレコーダーを使う部分は、後でしっかり聞いて、言ったことを別の形で書き留めることなんだ(もっと永久的な紙のノートか、デジタルのテキストファイルにね)。そう、各イテレーションでアイデアは少なからず変わるよ。違う視点でアイデアを見るチャンスをくれるんだ。

自分で気づいたことなんだけど、数日間にわたってライブウェビナーシリーズをやって、リアルタイムでペンと紙でノートを取ってたら、最初は追いつくのが本当に大変だった。でも数日後には、聞いて書くというコンテキストシフトが上手くなって、聴覚情報をよりよく保持できるようになった気がする。

ちょっと気になったんだけど、どんな種類の文章を書いてるの?ジャーナリングや考えを整理するためのもの、それともフィクション、何か別のもの?

オフィスで働いていた頃に恋しいものの一つは、大きなホワイトボードと、それの前に立って同僚と一緒に作業することだな。仲間と一緒にマーカーを使ってアーキテクチャを考えるのは、すごく洗練されたクラスデザインにつながったよ。

ホワイトボード(黒板など)は人生だね。

24インチのペンディスプレイを持ってるよ。最後にCTOとして働いていた時、チーム全員分買ったんだ。共有のデジタルホワイトボードで再描画できるのは、同じ4つのボックスを何度も描き直すよりもずっといいよね。ホワイトボードを消す前に写真を撮る手間も省けるし。

僕がよく言うのは、キーボードに触れる前にほとんどのプログラミングを済ませてしまうってこと。最も強力なことは、質問をしてその答えを書き留めることだね。システムを理解したいとき、これは絶対に飛ばせない基本的なステップなんだ。システムを理解することがどれだけ重要かによって、どれくらい真剣に考えるべきかが決まる。基本的なウェブアプリやレポートを生成するだけなら、簡単なカジュアルなメモで済むけど、もし重要なシステムで、分散型で高可用性が求められて、処理時間に厳しい制限があって、間違えるとビジネスや人々が金銭や財産を失うような場合なら、数学を使って正式にモデル化するよ。最初に紙にコードを書く実験もしてみたけど、手続き型言語だとショートハンドや形式がないとあまりうまくいかないね。静的型付けの関数型プログラミング言語だと、ずっとやりやすい。こういう言語を使うと、主に型について考える必要があるから、実装はその穴を埋めるだけで、キーボードの前にいるときにできるんだ。型で考えることを学べば学ぶほど、うまくいくけど、まだ完璧にはできてないな。ノートブックが全ての始まりなんだ。仕事のジャーナルとしてもノートを使ってるよ。バレットジャーナルシステムを使って、作業を管理してる。紙に書くことで、目の前に座って自分のタスクを物理的に思い出させることができる。日々の活動に集中できて、長期的な目標を見失わないのに役立ってる。こうやって長い間使っていると、自分の仕事の年代記みたいになる。パフォーマンスレビューの季節には便利だね。プログラミングの仕事の多くは、これらのジャーナルから生まれてるよ。デジタルツールを好む人もいるけど、それはそれでいいと思う。僕は古いスタイルで、物理的なものが好きなんだ。紙とペンは、僕の脳が働くレベルで、画面やキーボード、通知の絶え間ない流れからの休息を与えてくれる。中断なしに考える余裕と自由は大事だし、役立つよ。

組織化するためにいろんなノート取りツールやアプリを試してきたけど、今年の新年の抱負の一部として、日付のスペースがあるTo-Doリストのノートパッドを買って、会議中や作業中にその場でメモを取ることにしたんだ。これを始めてから、どれだけ生産性が上がったか驚いてる。気になる人のために、これがそのアイテムだよ: https://www.amazon.com/dp/B0BS1WJZNW

正直言って、僕にはどちらも同じに見える。デジタル通知も、そこにある本や紙を無視できるから。物事を終わらせるためにコミットするのは、その人のメンタル状態だと思う。デジタルの方法は整理するためのスペースをたくさん提供してくれるけどね。

俺の脳みそは、彼が言ってることとは真逆に働いてる気がする。コードを書いてる時は、コードのことしか考えられないんだ。インタープリタ言語は俺にとって神の恵みだよ。学校でこの投稿に書いてあるアプローチを教わったけど(結局パスカル方式だし)、どうやって人がそんな風に働けるのか全然理解できなかった。プログラマーの脳みそには、ほんとに(少なくとも)2種類あるみたいだね。