バグにハマった深夜のオフィスと、シャワー中に降りてきた「神の啓示」
海外の現場で感じた「焦り」とC# WPFの泥沼
ようこそ。海外のとある国でソフトウェアエンジニアとして働いている僕です。普段はC#とWPF(Windows Presentation Foundation)を使って、デスクトップアプリケーションの設計開発をメインにやっています。
いきなりですが、みなさんは**「真面目中毒」**になっていませんか?
特に日本から海外に出てくると、どうしてもこの症状が悪化しがちです。「言葉の壁がある分、技術力でカバーしなきゃ」「現地のエンジニアよりも長時間働いて成果を見せないとクビになるかも」……そんな強迫観念に近いプレッシャー、覚えがある人もいるんじゃないでしょうか。僕もそうでした。
数年前、ある大規模なプロジェクトの佳境でのことです。僕はWPFを使った複雑なデータグリッドの描画パフォーマンス改善を任されていました。MVVMパターンで綺麗に設計したつもりだったのに、データ量が増えるとUIがフリーズする。非同期処理のawaitの使い方が悪いのか、バインディングのメモリリークなのか、それともXAMLのレンダリングコストの問題なのか。
Visual Studioのデバッガーと睨めっこし、メモリプロファイラーのグラフが右肩上がりになるのを絶望的な気持ちで眺める日々。現地のアメリカ人やヨーロッパ出身の同僚たちが「Hey, 今日は金曜だからもう帰るよ。パブに行こうぜ」と17時に颯爽と帰宅する中、僕は「いや、このバグを潰すまでは……」と、深夜までオフィスに残り続けました。
「量で質を凌駕するんだ」
「寝る間を惜しんでコードを追えば、必ず答えは見つかる」
そう信じて疑わなかったんです。でも、現実は残酷でした。長時間労働をすればするほど、視野は狭くなり、単純なスペルミスに1時間も気づかないような凡ミスが増えていく。頭の中は常にコードのことでいっぱいで、夢にまで例外(Exception)が出てくる始末。それなのに、肝心のパフォーマンス問題は一向に解決しませんでした。
「何もしない」という恐怖との戦い
当時の僕は、「休むこと」=「サボること」=「悪」だと本気で思っていました。キーボードを叩いていない時間は生産性がゼロだと思い込んでいたんです。これは日本人の美徳である勤勉さが、海外の成果主義の現場で悪い方向に作用した典型例でした。
ある晩、ついに限界が来ました。3日連続で深夜帰宅し、カフェインの過剰摂取で手も震えていた時のこと。もう何を見ても頭に入ってこない。「あ、これ以上やっても無理だ」と、脳がシャットダウンする音が聞こえた気がしました。
僕は半ば自暴自棄になって、PCを閉じました。「もう知らん、クビになるならなればいい」と、泥のように眠り、翌日は週末だったので、あえてPCを開かずに一日中ぼーっと過ごすことにしたんです。罪悪感は凄まじいものでした。「今この瞬間も、バグはそこに存在しているのに」という焦燥感。でも、体は動かない。
仕方なく、趣味ですらなかった近所の公園までの散歩に出かけ、帰ってきて熱いシャワーを浴びていた、その時でした。
「あ、あれ、ObservableCollectionの更新通知をUIスレッドで一括処理してないからじゃね?」
唐突に、本当に唐突に、頭の中にコードの断片が鮮明に浮かび上がったんです。まるで誰かが脳内に直接USBメモリを挿して、正解のデータを転送してきたかのように。
慌てて風呂から飛び出し、髪も乾かさずにラップトップを開いて確認しました。修正行数はわずか数行。BindingOperations.EnableCollectionSynchronization周りの設定と、Dispatcherの処理順序を少し変えただけ。
ビルドして実行。数万件のデータを流し込む。……サクサク動く。UIは滑らかで、メモリリークも止まっている。
あんなに3日間、血眼になって探しても見つからなかった答えが、**「シャワーを浴びていた時」**に見つかったんです。
なぜ「サボっている時」に答えが出るのか?
この体験は、僕にとって強烈なパラダイムシフトでした。
「一生懸命考えている時」には出なかった答えが、なぜ「何も考えていない(ように見える)時」に出たのか?
最初はただの偶然だと思いました。でも、海外の優秀なエンジニアたちを観察していると、ある共通点に気づき始めたんです。彼らは、仕事中に堂々と散歩に行ったり、コーヒーメーカーの前で長々と雑談したり、週末は完全にオフラインになって趣味のロッククライミングやサーフィンに没頭したりしている。
彼らは「サボっている」のではありませんでした。彼らは、脳の仕組みを理解し、意図的に「ダウンタイム(停止時間)」を仕事のプロセスに組み込んでいたのです。
僕はITエンジニアとして、CPUのクロック数やメモリ管理、ガベージコレクションの仕組みについては詳しく知っていました。C#のガベージコレクションが、不要なメモリ領域を自動的に解放してパフォーマンスを維持するように、人間の脳にも「情報の整理と不要な思考の削除(プルーニング)」を行うための専用メンテナンスモードが存在するのです。
そしてそのモードは、私たちが必死にキーボードを叩き、モニターを凝視し、「意識的に集中している時」には絶対に起動しないという衝撃の事実。
ここからのブログ連載では、僕がこの体験を通じて学び、そして実際に今の海外生活で実践している「脳の秘密兵器」について深掘りしていきます。これは単なる「休息のススメ」や「ワークライフバランスを大切に」といった生ぬるい精神論ではありません。
脳科学的なエビデンスに基づいた、**エンジニアとしてのパフォーマンスを最大化するための「技術(スキル)」**の話です。
脳のバックグラウンド処理「デフォルト・モード・ネットワーク」の正体 〜ひらめきは非同期処理でやってくる〜
脳は「シングルスレッド」ではない:2つの動作モード
前回、僕は「シャワー中に突然答えが降ってきた」という話をしました。あれは魔法でも奇跡でもなく、脳の**「動作モードの切り替え」**が正常に行われた結果だったんです。
僕たちエンジニアは、業務中、常に論理的思考をフル回転させていますよね。「この変数のスコープは?」「このクラスの継承関係は?」「例外処理はどこに入れる?」……。
この時、脳は**「集中モード(Focused Mode)」**と呼ばれる状態にあります。
この図を見てください。これは「集中モード」と、対になる**「拡散モード(Diffuse Mode)」**の違いを表した有名なピンボールの例えです(バーバラ・オークリー博士の著書より)。
- 集中モード(左):
- ピン(障害物)が密集しています。思考のボールを打っても、近くのピンに当たって跳ね返るばかりで、遠くへは飛びません。
- これは、既知の手順を実行したり、文法エラーを修正したり、特定のロジックを追いかける時には最適です。まさに「デバッグ中」の状態ですね。
- しかし、新しいアイデアや、これまで結びつかなかった情報をリンクさせるには、ピンが邪魔すぎてボールが届かないんです。
- 拡散モード(右):
- ピンの間隔が広いです。ボールは遠くまで自由に飛び回ることができます。
- ここでは、脳内の離れた領域にある記憶や知識がランダムに繋がります。「C#の非同期処理」の知識と、「昔読んだUIデザインの本」の知識が、突然ガチャンと噛み合うような現象です。
- 重要: このモードは、**「集中していない時(リラックスしている時)」**にしか起動しません。
僕が深夜のオフィスでVisual Studioを睨み続けていた時、脳はずっと左側の「集中モード」でオーバーヒートしていました。狭い範囲で行ったり来たりを繰り返す無限ループ状態です。
しかし、諦めて散歩し、シャワーを浴びた瞬間、脳の緊張が解け、右側の「拡散モード」に切り替わりました。そこで初めて、思考のボールが遠くまで飛び、「UIスレッド」と「コレクション操作」という離れた概念を繋ぎ合わせて、解決策(インサイト)を生み出したのです。
エンジニアの天敵であり味方、「DMN」とは?
この「拡散モード」の時に活発になる脳の回路を、専門用語で**「デフォルト・モード・ネットワーク(Default Mode Network:DMN)」**と呼びます。
名前がちょっと地味ですよね。「デフォルト(初期設定)」なんて聞くと、PCのアイドル状態や、スクリーンセーバーが動いているような「何もしていない状態」を想像するかもしれません。
実際、昔の脳科学者たちもそう思っていました。「人間がぼーっとしている時、脳は休んでいる」と。
でも、最近の研究で衝撃の事実がわかっています。
なんと、DMNが稼働している時、脳は普段の計算処理の20倍近いエネルギーを消費していることがあるんです。
エンジニア的に言えば、こうです。
「ユーザー(あなた)が操作をやめた瞬間(Idle状態)に、OS(脳)がバックグラウンドで激重なバッチ処理(インデックス作成やデフラグ)を回し始めている」
このバックグラウンド処理こそが、DMNの正体です。
僕たちが「何もしていない」と思っている間、DMNは以下の超重要なタスクを**非同期(Async)**で実行しています。
- 情報の統合: 昼間に入力された膨大な情報(コード、ドキュメント、会話)を、過去の記憶データベースと照合し、意味付けを行う。
- シミュレーション: 未来の予測や、他者の意図の推測(「あの時、PMがああ言ったのはこういう意味か!」という気づき)を行う。
- 自己認識の構築: 自分の経験を整理し、「自分という物語」をアップデートする。
つまり、解決策という「戻り値(Return Value)」は、あなたがキーボードを叩いている時ではなく、DMNというバックグラウンドスレッドが処理を完了した時に、callbackとして返ってくるんです。
「休む」ということは、メインスレッドを解放して、このバックグラウンド処理にリソースを回す行為だったわけです。
記憶の定着(Consolidation)と剪定(Pruning):脳内ガベージコレクション
もう一つ、寝る間を惜しんで勉強しているエンジニアに伝えたい残酷な現実があります。それは**「入力しただけでは、知識は定着しない」**ということです。
脳には、情報を一時保存する「海馬(RAM)」と、長期保存する「大脳新皮質(HDD/SSD)」があります。
新しい技術書を読んだり、英語の単語を覚えたりした直後、その情報はまだ不安定なRAM(海馬)にあります。容量も小さいので、詰め込みすぎるとすぐにStackOverflowExceptionを起こします。
これをSSD(大脳新皮質)に書き込み、永続化するプロセスを**「記憶の固定化(Consolidation)」と呼びます。そして、この書き込み処理が行われるのは、主に「睡眠中」や「深いリラックス状態」**の時だけです。
Shutterstock
詳しく見る
さらに重要なのが**「シナプスの剪定(Pruning)」です。
これはまさに、プログラミングで言うところの「ガベージコレクション(GC)」や「リファクタリング」**です。
日中、僕たちは無意識のうちに大量の「不要な情報」も取り込んでいます。
「同僚の着ていた服の色」「ランチのサンドイッチの味」「デバッグ中に試して失敗したコード」……。これら全てを保存していたら、脳のストレージは一瞬でパンクします。
脳は休息中に、神経細胞のつながり(シナプス)を見直し、「このパスはよく使われるから太くしよう(強化)」「このパスは最近使われていないから切断しよう(剪定)」という最適化を行います。
このPruning(剪定)が行われないと、脳内はスパゲッティコード状態になります。ノイズが多すぎて、本当に重要な信号(エンジニアリングの勘所など)が埋もれてしまうのです。
「3日寝てない自慢」をするエンジニアが、往々にして単純なミスを連発したり、新しい技術のキャッチアップが遅かったりするのは、この**「脳内GC」が走る時間を確保していないから**です。メモリリークを起こしたまま運用しているサーバーと同じで、パフォーマンスが落ちるのは当然ですよね。
「戦略的休息」は、コードの一部である
ここまで読むと、僕が最初のパートで言った「休むことはサボることではない」という意味が、ロジカルに理解できると思います。
- 集中(Coding): データを入力し、個別のタスクを実行する。
- 休息(Downtime): データを整理し、不要なものを削除し、離れたデータを結合させて「意味」や「ひらめき」を作る。
この2つはセットです。tryブロックだけ書いてcatchもfinallyも書かないコードが危険なように、集中だけして休息を設計に入れないワークスタイルは、エンジニアとしての寿命を縮めます。
しかし、ここで一つ大きな落とし穴があります。
「わかった、じゃあ休めばいいんだな。よーし、ソファでポテチ片手にNetflixを5時間観るぞ!」
……残念ながら、それは脳科学的に見ると**「休息」ではありません**。
むしろ、DMNの働きを阻害し、脳をさらに疲れさせるだけの「偽の休息」です。
次回の「転」パートでは、エンジニアが陥りがちな**「受動的余暇(Passive Leisure)」の罠と、本当に脳を回復させ、イノベーションを生むための「能動的余暇(Active Leisure)」**の違いについて、具体的に切り込んでいきます。
スマホをスクロールしているその指、実は脳のGCを止めてしまっていませんか?
「ただの暇つぶし」vs「戦略的休息」:エンジニアのための休息API 〜スマホを見るのは「休憩」ではなく「攻撃」だ〜
「休憩中」に何をしていましたか?
突然ですが、昨日の仕事終わりや週末、あなたはどう過ごしましたか?
「疲れたから、ソファでダラダラしながらX(旧Twitter)を見ていた」
「YouTubeのショート動画を気付いたら2時間スワイプし続けていた」
「Netflixでアニメを一気見して、気付いたら深夜だった」
これらを「休憩」だとカウントしているなら、残念ながらあなたの脳は1ミリも休まっていません。
むしろ、仕事中以上に脳を虐待し、翌日のパフォーマンスを意図的に下げていると言っても過言ではないのです。
エンジニアとして、この現象を技術的に解説しましょう。
受動的余暇(Passive Leisure):脳へのDDoS攻撃
スマホをぼーっと眺めたり、テレビを流し見したりする行為。これを専門用語で**「受動的余暇(Passive Leisure)」**と呼びます。
「体は動かしていないし、仕事のことも考えていないから休んでいる」というのは、ユーザー側の錯覚に過ぎません。
脳の内部(サーバーサイド)では、何が起きているのか?
- 入力(Input)のオーバーフロー:SNSのタイムラインは、情報の奔流です。「誰かの愚痴」「最新ガジェットのニュース」「可愛い猫の動画」「政治的な議論」……。これらが秒単位で切り替わり、視覚野を通じて脳に飛び込んできます。これは、サーバーに対して毎秒数千回の異なるリクエスト(HTTP Request)を投げ続けているようなものです。脳は一つ一つの情報を「処理(解釈・感情の生成)」するのに必死で、リソース使用率は常に100%張り付き状態です。
- ドーパミンによる無限ループ:ショート動画や無限スクロールのUIは、脳の報酬系をハックするように設計されています。新しい情報を見るたびに少量のドーパミンが出るため、while(true)の無限ループから抜け出せなくなります。この状態は「過覚醒」であり、脳は興奮状態にあります。リラックスに不可欠な副交感神経なんて、出番がありません。
- アテンション・レジデュー(注意の残留物):カル・ニューポート(『Deep Work』の著者)が指摘するように、一度強い刺激(ネガティブなニュースなど)を見ると、画面を閉じた後もその情報の断片が脳のメモリに居座り続けます(メモリリーク)。これがノイズとなり、前回説明したDMNによる「情報の整理(GC)」を阻害するのです。
つまり、スマホを見ながらの休憩は、**「重たいバックグラウンド処理(DMN)を走らせたいのに、フォアグラウンドで動画エンコード処理を回し続けている」ようなもの。
これでは、いつまで経っても脳は最適化されません。「休み明けなのに、なんか頭が重い」「アイデアが出てこない」という現象の正体は、この「偽の休息」**にあります。
能動的余暇(Active Leisure):脳を回復させるコンテキストスイッチ
では、どうすればいいのか?
ここで登場するのが**「能動的余暇(Active Leisure)」**です。
これは、「ある程度の集中や能動的なアクションを伴う活動」のことです。
「え? 疲れてるのに、さらに活動するの?」と思うかもしれません。ですが、ここが人間の脳の面白いところ(バグではなく仕様)です。
「仕事とは全く違う回路(脳の領域)を使う活動」に没頭すると、仕事で使っていた回路が急速に回復するのです。
僕が海外に来て驚いたのは、こっちのエンジニアたちの休日の過ごし方でした。
平日はゴリゴリにC#を書いている同僚のAlexは、週末になると山にハイキングに行き、泥だらけになって帰ってきます。
リードエンジニアのSarahは、地元のオーケストラでバイオリンを弾いています。
彼らは「疲れたから寝る」のではなく、**「回復するために遊ぶ」**のです。
なぜこれが有効なのか?
- 完全なコンテキストスイッチ:バイオリンを弾いている時や、険しい山道を登っている時、脳は「足元の石」や「譜面」に集中せざるを得ません。これにより、仕事の悩み(バグや納期)が入る隙間が物理的に消滅します。強制的に仕事のプロセスをキル(Kill Process)し、全く別の軽量プロセスを立ち上げることで、仕事で酷使した「論理的思考回路」を完全に休ませることができます。
- 達成感という報酬:受動的余暇は、終わった後に「時間を無駄にした」という罪悪感が残ります。しかし、能動的余暇(料理を作る、絵を描く、楽器を弾く)は、「何かを生み出した」「上達した」という健全な報酬が得られます。これが自己効力感を高め、月曜からの仕事に向かうメンタルを整えてくれます。
最強のデバッガー:「自然」とソフト・ファスシネーション
中でも、僕が最もおすすめしたい、そして科学的にも最強の回復効果が証明されているのが**「自然との接触」**です。
ミシガン大学の研究で**「注意回復理論(Attention Restoration Theory: ART)」**というものがあります。
これによると、人間の注意には2種類あります。
- 指向性注意(Directed Attention): 仕事や勉強、スマホを見る時など、意識的に集中する力。これは有限で、枯渇するとミスが増えたりイライラしたりします(=ウィルパワーの消耗)。
- 非自発的注意(Involuntary Attention): 興味深いものに自然と惹きつけられる力。
都会の喧騒やスマホの通知は「強い刺激(Hard Fascination)」であり、指向性注意を奪い取ります。
対して、自然(木々の揺れ、雲の流れ、焚き火の炎など)は**「穏やかな刺激(Soft Fascination)」**と呼ばれます。
自然の中にいる時、僕たちは「葉っぱの揺れ」を、努力して集中して見る必要はありません。ただぼーっと見ているだけで、脳のスペースが満たされます。
この「穏やかな刺激」に身を委ねている時だけ、枯渇した「指向性注意」が急速充電されることがわかっています。
僕がシャワーでひらめいたのも、これに近い状態でした。
そして今、僕は週末には意識的にPCを置いて、近くの公園や森に行くようにしています。
木漏れ日の中を歩いていると、不思議なことが起きます。
「あ、あのクラス設計、インターフェースで切った方がテストしやすいな」とか「これ、マイクロサービスにする必要なくない?」といった、**本質的な気付き(Insight)**が、向こうから勝手にやってくるのです。
「ジャンクな休息」をやめて「栄養のある休息」を摂ろう
食事に例えると分かりやすいでしょう。
仕事で疲れた脳は、エネルギーを欲しています。
そこでSNSや動画サイトを見るのは、**「空腹だからといって、ポテトチップスとコーラを大量摂取する」**のと同じです。一瞬の満足感はありますが、体(脳)はボロボロになり、栄養失調になります。
一方、趣味や運動、自然に触れることは、**「バランスの取れた定食や、良質なプロテインを摂る」**ことです。準備に少し手間はかかりますが、食べた後の回復レベルとパフォーマンスへの貢献度が段違いです。
エンジニアである私たちは、効率を愛しますよね?
コードのパフォーマンスチューニングには命をかけるのに、なぜ自分の脳のパフォーマンスチューニング(休息)には、こんなにも無頓着で、非効率な「ジャンクな方法」を選んでしまうのでしょうか?
「でも、趣味なんてないし……」
「週末にわざわざ出かける体力なんてないよ……」
分かります。その気持ち。最初は僕もそうでした。
でも、大丈夫です。いきなり高尾山に登る必要はありません。
日常の中で、ほんの少しの工夫で実装できる「休息のコード」があります。
次回の最終章「結」では、明日からすぐに試せる具体的なアクションプラン、**「ポモドーロ×マインドワンダリング」や「デジタル・デトックスのHello World」**について、実体験ベースのTipsをお届けします。
あなたの脳のCPU使用率、そろそろ下げてみませんか?
明日から実装できる「意図的なオフ」:君のキャリアを加速させる設計図 〜10年後も第一線で書くために〜
「知っている」を「できる」に変える:まずはHello Worldから
ここまで、長々と脳科学や海外エンジニアの生態について語ってきました。
「DMN(デフォルト・モード・ネットワーク)大事だよね」「スマホ断ちしなきゃね」と、頭では理解できたと思います。
でも、僕たちエンジニアは知っています。
「仕様書を読んだ」ことと、「本番環境でバグなく動く」ことの間には、グランドキャニオンほどの溝があることを。
いきなり「明日から毎日2時間の瞑想をする」「週末はスマホを金庫に封印する」なんて極端な実装(Big Bang Release)をしても、絶対にロールバックします。三日坊主で終わり、自己嫌悪という新たなバグを生むだけです。
だからこそ、まずは小さく始めましょう。プログラミング言語を学ぶ時、最初に画面に「Hello World」と出すように。
僕が実際に試行錯誤してたどり着いた、**「脳の戦略的休息・実装パターン」**を3つ紹介します。
実装パターン1:ポモドーロ・テクニックの「魔の5分」を修正せよ
多くのエンジニアが知っている時間管理術「ポモドーロ・テクニック」(25分集中+5分休憩)。
僕も昔から使っていましたが、完全に間違った使い方をしていました。
【Bug(修正前)】
- 25分:C#のコードをガリガリ書く(集中モード)。
- 5分:「ふぅ」と言いながらX(Twitter)を開く、Slackの未読を返す、Yahoo!ニュースを見る。
これ、前回の「転」パートを読んだ皆さんなら、何が致命的なバグか分かりますよね?
この5分間、脳への入力(Input)が止まっていません。これでは脳のメモリ解放(GC)が行われず、次の25分の集中力が低下します。
【Fix(修正後:脳科学的ポモドーロ)】
- 25分:コードを書く。
- 5分:視覚情報を遮断する。
具体的にはこうです。
- 目を閉じる(これが最強)。
- 窓の外の遠くの景色(空や雲)をただ眺める。
- 立ち上がってストレッチをし、筋肉の感覚にだけ集中する。
- スマホには絶対に触らない。
騙されたと思って、明日の朝からこれをやってみてください。
目を閉じて深呼吸するだけの5分間。最初は「暇だ」「何か見たい」という禁断症状が出ますが、耐えてください。
その5分の間に、脳のバックグラウンドでDMNが走り回り、さっきまで書いていたコードのロジックが整理整頓されていくのを感じるはずです。
そして次の25分に入った瞬間、「あ、さっきの実装、こっちの方がいいな」という小さなインサイトが生まれやすくなります。この「魔の5分」を制するものが、一日の生産性を制します。
実装パターン2:思考のダンプ(Memory Dump)と「パーキングロット」
休息を取ろうとしても、「あれやらなきゃ」「このバグどうしよう」という不安が頭をよぎって休めない。そんな真面目なエンジニアにおすすめなのが**「パーキングロット(駐車場)法」**です。
脳は、**「未完了のタスク」を強く記憶し続ける性質があります(ツァイガルニク効果)。これがRAM(ワーキングメモリ)を食い続け、休息を妨害します。
これを解決するには、タスクを「外部化」**して、脳に「これは記録したから忘れていいよ」とシグナルを送る必要があります。
僕は、エディタの端っこや物理的なメモ帳に「パーキングロット」という欄を作っています。
仕事終わりや休憩に入る前に、頭の中にある懸念事項を全てそこに書き出します(Dump)。
- 「WPFのDataGridのソートがおかしい件、明日はViewModelを確認する」
- 「来週のMTG資料、まだ手付かず」
- 「ビザの更新手続き忘れない」
書き出したら、心の中で**「保存完了(Saved)。明日9時にロードする」**と唱えて、PCを閉じます。
こうすることで、脳は「未完了タスク」の監視プロセスを終了(Kill)し、安心してオフモードに移行できます。これをやらずに飲みに行っても、頭の片隅でずっとプロセスが走り続けて酒が不味くなるだけです。
実装パターン3:デジタル・デトックスの「聖域(Sanctuary)」化
最後は環境構築の話です。
意志の力でスマホを見ないようにするのは、不可能です。シリコンバレーの天才たちが総力を挙げて僕たちの注意を引くアルゴリズムを作っているのですから、勝てるわけがありません。
だから、物理的遮断を使います。
僕は自宅に**「聖域(Sanctuary)」**を作っています。
具体的には、「寝室」と「バスルーム」です。この2箇所には、何があってもスマホとPCを持ち込まないというルール(Policy)を自分に課しています。
- 入浴中:防水スマホケースなんて捨ててください。あの時間は、現代に残された数少ない「完全な孤独(Solitude)」の時間です。シャワーの音だけを聞き、ぼーっとする。これこそが、パート1で僕に「神の啓示」をもたらした環境です。
- 就寝前:目覚まし時計を買ってください。スマホのアラーム機能を使うと、寝る直前までブルーライトを浴び、起きた瞬間に通知を見てしまいます。スマホはリビングで充電し、寝室には紙の本(技術書じゃなくて、小説やエッセイがいいです)だけを持ち込む。睡眠は、脳の「ナイトリービルド(Nightly Build)」の時間です。このビルドプロセス中にノイズが入ると、翌日のデプロイ(起床後の活動)に失敗します。
あなたの人生は、スプリントではなくマラソンだ
最後に、僕がなぜここまで「休むこと」にこだわるのか、その理由をお話しします。
日本で働いていた頃の僕は、自分を「コードを書く機械」だと思っていました。
壊れるまで回して、壊れたら交換される部品。
「休んでいる暇があったら、新しいフレームワークを覚えないと置いていかれる」
そんな恐怖心(FOMO)に常に駆動されていました。
でも、海外に出て、40代、50代になっても楽しそうにコードを書き続けているシニアエンジニアたちに出会って、考えが変わりました。
彼らは言います。
**「エンジニアリングは、スプリント(短距離走)の連続じゃない。マラソンだ」**と。
徹夜で3日頑張って、燃え尽きて1ヶ月動けなくなるエンジニアよりも、
毎日しっかり寝て、週末はリフレッシュし、コンスタントに良質なコードを10年間書き続けられるエンジニアの方が、最終的な到達地点は遥かに遠く、高い場所になります。
特に、僕たちのように海外で挑戦しようとする人間には、技術力以外にも「異文化への適応」「語学の習得」「孤独との戦い」という重いタスクが課せられます。
脳のエネルギー(ウィルパワー)は有限です。
コードを書くためだけに全振りしていたら、他の重要なこと——現地の友人を作ったり、美味しい料理を楽しんだり、人生を豊かにすること——に使うエネルギーが残らなくなってしまいます。
C# WPFで美しいUIを作るように、あなたの人生というアプリケーションにも、余白(Margin/Padding)を適切に配置してください。
余白のないUIが使いにくくて見苦しいのと同じで、余白のない人生は、どれだけ機能(スキル)が豊富でも、きっと窮屈で、バグだらけになってしまいます。
最後のコミットメッセージ
もし今、あなたが仕事に追われ、息苦しさを感じているなら。
今週末だけでいいです。PCを置いて、スマホを機内モードにして、近くの公園に行ってみてください。
空を見上げて、深呼吸をしてください。
「何もしない時間」は、あなたのキャリアにとっての「無駄(Null)」ではありません。
それは、次の偉大なアイデアを生むための「予約領域(Reserved)」なのです。
あなたの脳という最高のハードウェアを、大切に扱ってください。
そうすれば、きっと今まで見たこともないような素晴らしいコード(未来)が、あなたの中から出力されるはずです。
それでは、またどこかの国の、どこかのカフェで。
Happy Coding, and Happy Resting!

コメント