
人生のバグ、直します。東大エンジニアが使う「思考のOS」15選
仕事がうまく回らないとき、多くの人は「自分の能力が足りない」と考える。
でも、エンジニアはそう考えない。システムがうまく動かないとき、原因はたいてい「個人の頑張り」ではなく「設計」や「仕組み」の側にあるからだ。バグが出たら、自分を責める前にコードを疑う。動作が重いなら、根性ではなくアーキテクチャを見直す。
僕は東大でコンピュータサイエンスを学び、いまもエンジニアとして毎日システムと向き合っている。そうしているうちに気づいた。エンジニアが当たり前に使っている思考法は、そのまま「人生のデバッグツール」になるということに。
完璧主義で資料が終わらない、上司ガチャに消耗する、なんとなく不安で動けない──こうした「人生のバグ」は、根性ではなく思考のOS(オペレーティングシステム)を入れ替えることで直せる。
この記事では、僕が実際に仕事と生活で使っている15個の思考法を、できるだけ実践しやすい形でまとめた。専門知識はいらない。今日から1つでもインストールしてもらえたら、それでこの記事の役目は果たせたことになる。
> この15の思考法は、漫画『人生のバグ、直します。』(創作大賞2026 マンガ部門に同時応募)でも1話ずつ描いている。文章で深掘りしたいときはこの記事を、サクッと掴みたいときは漫画を、好きな方から読んでほしい。
1. トラブルシューティング思考 ──ミスは「自分」ではなく「仕組みのバグ」
仕事でミスをすると、人は「自分はダメな人間だ」と落ち込む。これは問題と自分を一体化させている状態で、最悪の対処法だ。
エンジニアはバグが出ても自分を責めない。「なぜこの入力でこの出力になったのか」と、問題を自分から切り離して観察する。原因はコードや手順にあって、人格にあるわけではないからだ。
仕事も同じだ。「自分が悪い」ではなく「どの工程で、何が、なぜ起きたか」に分解する。すると、感情で消耗せずに次の一手が見える。ミスは反省するものではなく、再発を防ぐために分析するもの。この切り替えだけで、失敗への恐怖は驚くほど軽くなる。
2. MVP思考 ──完璧主義をやめ、まず「60点」で出す
「完璧にしてからじゃないと見せられない」。そう言って徹夜で資料を磨き続け、結局方向性がズレていた──よくある悲劇だ。
エンジニアの世界には MVP(Minimum Viable Product/実用最小限の製品) という考え方がある。いきなり完璧なスポーツカーを1年かけて作るのではなく、まず1日でスケートボードを作って渡す。「荷物が積めない」というフィードバックをもらえれば、次は自転車を作ればいい。
仕事の資料も企画も同じだ。最初から100点を狙わず、60点の状態で早く見せて軌道修正する。完璧への最短ルートは、早く失敗して早く直すこと。「完璧」より「完了」を先に置くだけで、手戻りは激減する。
3. 自動化への執念 ──「2回やった作業」は仕組みに変える
エンジニアには、ある種の「執念」がある。同じ作業を2回連続でやらされると、「これ、自動化できないか?」と本能的に考えてしまうのだ。
ポイントは、「作業をこなす時間」ではなく「仕組みを作る時間」に投資すること。目の前の作業を手で片付ければ今日は終わる。でも仕組みを作れば、明日以降の自分が永遠に楽になる。
毎週の定型レポート、繰り返すコピペ、何度も書く同じ文面──これらは「面倒だけど仕方ない」ではなく「仕組みで消すべき対象」だ。サボりたいから自動化する。この怠惰こそ、最も生産的な動機になる。
4. 変数と定数の分離 ──変えられないことで悩まない
プログラムには、後から変えられる「変数」と、固定された「定数」がある。優秀なエンジニアは、この2つを最初にきっちり分離する。
人生の悩みも、この2つが混ざっているから苦しい。「上司の性格」「他人の機嫌」「過去の出来事」は、自分には変えられない定数だ。一方「今日の自分の行動」「次の準備」「言葉の選び方」は、変えられる変数だ。
「上司ガチャ外れた」と嘆く時間は、定数に向かってエネルギーを注いでいる状態。そこを見切り、変数にだけ全リソースを注ぐ。コントロールできることとできないことを分ける──ストア哲学にも通じるこの一手が、消耗を根本から減らす。
5. 非同期処理 ──「待機中」で自分の時間を止めない
仕事が遅い人ほど、「待機中」の時間が多い。上司の返信待ち、確認待ち、承認待ち。その間ずっと手が止まっているなら、それは同期処理で詰まっている状態だ。
エンジニアはこれを嫌う。重い処理を投げたら、結果を待つ間に別の処理を走らせる。これが非同期処理だ。
仕事も同じで、ボールを相手に投げたら、自分は即座に次のタスクに移ればいい。「返信が来てから動く」のではなく、「返信を待つ間に進められること」を常に持っておく。他人の都合で自分の時間軸を止めない。これだけで一日の処理量は大きく変わる。
6. フェイルセーフ ──「うまくいく前提」で計画を立てない
完璧な計画ほど、なぜかすぐ挫折する。理由は単純で、「すべてが順調に進む前提(ハッピーパス)」だけで設計されているからだ。現実には必ずイレギュラーが起きる。
システム設計では、例外が起きることを前提に「最低限これだけは守る」というフェイルセーフを必ず用意する。電源が落ちてもデータは守る、通信が切れても安全側に倒す、という保険だ。
人生の計画も同じだ。「毎日2時間勉強する」が崩れた日のために、「最低5分だけは机に向かう」という代替案をルール化しておく。崩れた瞬間に全部を投げ出す(システムダウン)のではなく、最低限の継続だけは守る。これが習慣を生き延びさせる。
7. デプロイ思考 ──プレッシャーは「小さく刻んで」分散する
大きな本番を前にすると、プレッシャーで押しつぶされそうになる。それは「失敗=ゲームオーバー」だと考えているからだ。
エンジニアは、巨大な変更を一度にリリースしない。こまめに小さくデプロイし、問題があれば少し前に戻すだけで済むようにする。失敗のダメージを「ゲームオーバー」から「ちょっと巻き戻し」に変えているのだ。
プレッシャーへの対処も同じ。大きなタスクを細かく分け、こまめに上司やチームにレビューをもらう。一発勝負を、何度もセーブできる連続したチェックポイントに変える。心理的ハードルを極限まで下げる、これがデプロイ思考だ。
8. 不安のデバッグ ──「なんとなく不安」を因数分解する
「なんとなく不安で動けない」。この状態がいちばん厄介なのは、敵の正体が見えていないことにある。
バグ対応でも、「なんとなく動かない」では手が出せない。エンジニアはまず、エラーを再現し、ログを読み、原因を具体的な一行まで因数分解する。正体さえ特定できれば、対処は一気に進む。
不安も同じだ。「なんとなく不安」を、「①締切に間に合うか」「②あの人にどう思われるか」「③お金が足りるか」と紙に書き出して分解する。すると多くは「具体的なタスク」に変換できる。やるべきことが明確になった瞬間、漠然とした不安は消える。不安は、言語化されていないバグにすぎない。
9. トレードオフと「捨てる」決断力 ──全部は取れない
リソース(時間・体力・集中力)は有限だ。なのに「全部100点にしたい」と欲張るから、どれも中途半端になる。
エンジニアリングはトレードオフの連続だ。速度を取れば容量を犠牲にし、安全性を取れば手軽さを失う。「何を捨てるか」を決めることが、設計そのものと言ってもいい。
仕事も人生も、本質は「選択」ではなく「何を捨てるか」にある。最も効果の高い20%に集中し、残りは潔く手放す。完璧主義は、捨てる決断から逃げるための言い訳になりがちだ。捨てる勇気が、限られたリソースの価値を最大化する。
10. ワーキングメモリの節約 ──「覚えること」を手放す
人間の脳のワーキングメモリ(短期記憶)は、驚くほど容量が小さい。あれもこれも覚えておこうとすると、パソコンのメモリ(RAM)がいっぱいになって動作が重くなるのと同じ状態になる。
エンジニアの解は明快だ。記憶はメモやツール(外部ストレージ)に任せ、脳は「どこに情報があるか」だけ知っていればいい。覚える力ではなく、検索できる力に切り替える。
タスクは全部書き出す。気になることは即メモする。そうやって脳から「覚える」という負荷を降ろせば、空いたリソースを「考える」というもっと価値の高い処理に全振りできる。脳は記憶装置ではなく、思考装置として使う。
11. アジャイル思考 ──完璧な長期計画を立てない
「1年でこれを完璧にやり切る」という長期計画は、たいてい計画通りに進まない。世界も自分も、想定通りには動かないからだ。
ソフトウェア開発の主流であるアジャイルは、最初に完璧な計画を立てない。1〜2週間の短いサイクルで「計画→実行→振り返り」を回し、毎回その時点の最新状況に合わせてやり方を最適化していく。
勉強も仕事も同じだ。1週間単位で小さく回し、こまめに振り返って軌道修正する。長い計画を守ることより、変化に合わせて修正し続けることのほうが、結果的にずっと遠くまで進める。想定外に強くなる思考法だ。
12. 自分をGitでバージョン管理する ──成長は「上書き」ではなく「履歴」
「成長」を、古い自分を新しい自分で上書き保存することだと思っていないだろうか。これだと、失敗した日は「自分が後退した」と感じてしまう。
エンジニアはコードを Git で管理する。変更は上書きではなく、すべて履歴(コミット)として積み重なる。だから失敗してもゼロには戻らない。過去の試行錯誤は、全部「保存」されている。
成長もこれと同じだ。今日の一歩は、過去を消すのではなく履歴に追加される。うまくいかなかった日も、コミットの一つとして残る。小さな進歩もこまめにセーブして、ときどき自分の成長履歴を振り返る。後退したように見える日も、履歴の上では確実に前に進んでいる。
13. 生活習慣のリファクタリング ──「技術的負債」を返済する
「とりあえず動くけど、徹夜前提の無理なやり方」で毎日を回していないだろうか。それは、プログラミングでいう技術的負債が溜まりまくった状態だ。短期的には動くが、いつか必ず破綻する。
エンジニアは、絡まったコードを定期的に整理して書き直す。これをリファクタリングという。機能は変えずに、中身をきれいで持続可能な構造に整える作業だ。
生活習慣も同じで、定期的なリファクタリングが必要だ。睡眠時間を削る回し方、その場しのぎのルーティンを、持続可能できれいな習慣に書き直す。きれいな習慣は、目先のスピードではなく、長期的なパフォーマンスを最大化する。負債を返済した分だけ、未来の自分が速くなる。
14. 思考のキャッシュ化 ──決断疲れをゼロにする
「今日は何を着よう」「ランチは何にしよう」。こうした小さな決断を毎朝くり返すたびに、脳のCPUは消耗していく。人間の1日の決断力には上限があるからだ。
ITにはキャッシュという仕組みがある。よく使うデータを、すぐ取り出せる場所に置いておくことで、毎回ゼロから計算する手間を省く技術だ。
日常の繰り返し行動も、同じように「キャッシュ化」すべきだ。平日の服を3パターンに固定する。机に座ったら最初に開くものを決めておく。考える前に自動で動く仕組みを作れば、決断のコストはゼロに近づく。スティーブ・ジョブズが毎日同じ服を着たのも同じ理屈だ。脳のリソースは、本当に大事な高度な思考に全振りしよう。
15. 依存関係の分離(DI) ──「やる気」に頼らない
「今日こそやるぞ」と思ったのに、気づけばスマホを見て一日が終わる。そして「自分は意志が弱い」と落ち込む。これは、モチベーションを「意志力」という不安定な要素にハードコード(直結)している状態だ。
エンジニアリングには依存関係の分離(DI=依存性の注入)という考え方がある。必要な機能を外から注入し、部品同士の結びつきを弱める(疎結合にする)ことで、一つの要素が壊れても全体が止まらないようにする設計だ。
やる気も同じだ。意志力という壊れやすい部品に依存させず、「環境」から注入する。勉強するならカフェに行く、スマホは別室に置く、やらざるを得ない仕組みに自分を放り込む。意志が弱いのではなく、意志に依存する設計が間違っているだけ。環境を変えれば、やる気は外から注入できる。
おわりに ──思考をインストールせよ
15個の思考法を駆け足で紹介してきた。共通しているのは、どれも「根性」や「気合い」ではなく「設計」で問題を解いているという点だ。
うまくいかないのは、能力ではなく仕組みのせい(トラブルシューティング)
完璧を目指さず、早く出して直す(MVP・アジャイル)
自分で変えられることにだけ集中する(変数と定数・DI)
脳のリソースを節約し、本質的な思考に使う(ワーキングメモリ・キャッシュ)
これらはIT用語を覚える話ではない。その裏にある「冷静で合理的な思考のOS」を、自分の頭にインストールする話だ。一度入れてしまえば、目の前の悩みが「感情の問題」から「設計の問題」に見えてくる。そして設計の問題なら、必ず直せる。
今日の自分から、一つでも試してみてほしい。人生のバグは、根性ではなく思考法で直せる。
> この記事と対になる漫画『人生のバグ、直します。』(創作大賞2026 マンガ部門)では、後輩女子社員とエンジニア「しすてむ屋」の掛け合いで、この15の思考法を1話ずつ描いています。あわせて読んでもらえたら嬉しいです。
📸 漫画は Instagram でも毎話配信中