脳のメモリリークを許すな。なぜ我々には「休むための設計図」が必要なのか?
こんにちは!海外の片隅で、日々Visual Studioと睨めっこしているITエンジニアです。
普段はC#やWPFを使ってデスクトップアプリケーションの設計開発をメインにやっています。XAMLのバインディングエラーに頭を抱えたり、MVVMパターンの美しさに一人で悦に入ったりしている、どこにでもいるエンジニアです。
さて、今日話したいのはコードの話じゃありません。でも、ある意味では「最も重要なシステムの設計」の話です。
それは、**「あなた自身の脳みそのパフォーマンス維持」**について。
皆さんは、こんな経験ありませんか?
朝から晩まで複雑なロジックを追いかけ、英語(あるいは現地の言語)でのミーティングをこなし、夕方ふと気づくと、モニターを見つめているのにコードの内容が全く頭に入ってこない。
WPFで言うところの、UIスレッドが完全にフリーズしている状態。クリックしても反応しない、あの忌々しい「応答なし」の状態が、自分の脳内で起きている感覚です。
特に海外で働いていると、この「脳のフリーズ」は頻繁に起こります。
なぜなら、我々は「技術的な課題解決」という重たい処理と並行して、「異文化・異言語への適応」というバックグラウンドプロセスを常に走らせているからです。
日本にいた頃よりも、CPU使用率は常に高く、メモリもカツカツ。それなのに、多くのエンジニア(過去の私も含めて)は、自分のケアに関しては驚くほど「ノーガード」なんですよね。
「疲れたら寝ればいい」
「週末にまとめて遊べばいい」
これ、はっきり言います。レガシーな考え方です。
現代の、特に海外で戦うエンジニアにとって、ただ漫然と休むだけでは回復しないレベルの「認知的負荷(コグニティブ・ロード)」がかかっています。
我々が必要としているのは、行き当たりばったりの休息ではありません。
ソフトウェア開発で仕様を決め、アーキテクチャを設計するように、「いかにして脳を回復させるか」というシステム(Cognitive Recharge System)を意図的に設計・実装することが必要です。
今回は、私が海外生活での失敗から学び、実践している「脳の再起動システム」についてシェアします。これを読めば、明日からの仕事のパフォーマンスが劇的に変わるはずです。
エンジニア特有の「脳の疲労」の正体
まず、敵を知るところから始めましょう。
私たちエンジニアの疲れは、肉体労働の疲れとは質が違います。
一日中座っているだけなのに、なぜ夕方には泥のように疲れているのか。
それは、私たちが常に**「決断」と「抽象化」**を行っているからです。
例えば、C#でクラス設計をする時。「この機能はBaseクラスに入れるべきか、それともInterfaceとして切り出すべきか?」。
WPFの画面設計をする時。「このプロパティの変更通知は、ViewModel側でやるべきか、Modelで発火させるべきか?」。
些細なことに見えますが、これらは全て高度な意思決定です。
人間の脳には「ウィルパワー(意志力)」という限られたリソースがあり、決定を下すたびにこれが消費されていきます。これを「決断疲れ(Decision Fatigue)」と呼びます。
さらに、海外エンジニアにはここに「言語の壁」という重たいレイヤーが乗っかります。
ネイティブの同僚が早口でまくし立てる仕様変更を聞き取る時、私たちの脳内ではリアルタイムで翻訳・解釈・文脈理解という高負荷な処理が走っています。
これは、マシンスペックの低いPCで、重たい3Dレンダリングと動画編集を同時にやっているようなものです。ファンは唸りっぱなし、筐体はアッツアツです。
この状態で、「よし、休憩だ」と言ってスマホを取り出し、SNSをスクロールしたり、ダラダラとニュースサイトを見たりしていませんか?
実はこれ、休憩になっていません。
情報のインプット(スクロールによる視覚情報の処理)は、脳にとっては「仕事の続き」なんです。
メモリリークを起こしているアプリケーションを再起動せずに、さらに別のアプリを立ち上げているようなものです。これではいつか必ず、OutOfMemoryException で落ちます。
C#のGC(ガベージコレクション)に学ぶ
C#などのマネージド言語には、GC(ガベージコレクション)という素晴らしい機能がありますよね。
使わなくなったメモリ領域を自動的に解放し、システムをクリーンに保つ仕組みです。
もしGCがなかったら(あるいはうまく機能しなかったら)、アプリケーションはメモリを食いつぶし、動作は重くなり、最終的にはクラッシュします。
人間も全く同じです。
私たちの脳内には、日々の業務で発生した「認知的廃棄物」が溜まっています。
「あのバグの原因は何だろう」「さっきのミーティングでの発言、文法合ってたかな」「明日のデプロイ、失敗したらどうしよう」……。
こうした思考の断片が、ワーキングメモリを占有し続けています。
意図的にGCを走らせないと、このゴミは消えません。
しかし、人間の脳にオートGC機能はついていません。
だからこそ、**「明示的にGCを呼び出すメソッド」**を日常の中に組み込む必要があるのです。
私が提唱する「Cognitive Recharge System(認知的再起動システム)」とは、まさにこの**「人間版GC」をスケジュールされたタスクとして実行するフレームワーク**のことです。
「休む」ことへの罪悪感をハックする
ここで一つ、マインドセットの書き換えが必要です。
特に日本人のエンジニアは、「休むこと=サボること」「手を動かし続けること=美徳」という価値観が無意識に刷り込まれていることが多いです。
私もそうでした。海外に来てからも、「言葉ができない分、技術力と作業量でカバーしなきゃ」と必死で、ランチタイムすら惜しんでコードを書いていました。
結果どうなったか?
3ヶ月でバーンアウトしました。
簡単なif文のネストすら読めなくなり、同僚からの何気ない挨拶にすらイラつくようになりました。
これでは本末転倒です。
プロのF1レーサーは、ピットインを「時間のロス」とは考えません。「勝つための戦略の一部」と考えます。
タイヤ交換なしで走り続ければ、必ずバーストしてリタイアします。
私たちにとっての「休憩」も同じです。
それは「作業の中断」ではなく、**「持続可能な高パフォーマンスを維持するためのメンテナンス・タスク」**です。
仕事ができるエンジニアほど、IDE(統合開発環境)のショートカットキーを使いこなしたり、ビルドプロセスを自動化したりして、効率化を図りますよね?
それと同じ熱量で、「自分の回復プロセス」も効率化・自動化すべきなんです。
「休む」を感覚に任せてはいけません。
「疲れたから休む」では遅いんです。
サーバーの監視アラートが鳴ってから対応するのではなく、負荷が高まる前にロードバランシングする。
それが、プロフェッショナルなエンジニアの流儀です。
なぜ今、このシステムが必要なのか?
これから海外を目指すエンジニアの皆さん、あるいは既に戦っている同志の皆さん。
海外での挑戦は、刺激的で素晴らしいものです。
新しい技術、多様な文化、合理的な開発プロセス。日本にいては味わえない経験が待っています。
しかし、同時にそこは「自己責任」の荒野でもあります。
日本の会社のように、誰かが手取り足取り健康管理をしてくれるわけではありません。
自分のパフォーマンスが出せなければ、シビアに評価されます。
そんな環境で、長く、楽しく、そして高いパフォーマンスを出し続けるためには、コードを書く技術以上に、**「自分を整える技術」**が不可欠になります。
WPFでリッチなUIを作る時、私たちはユーザー体験(UX)を最高にするために、非同期処理を使い、UIスレッドをブロックしないように細心の注意を払いますよね?
それなら、あなた自身の人生というアプリケーションのUIスレッドも、絶対にフリーズさせてはいけません。
このブログ記事(シリーズ)では、私が試行錯誤の末にたどり着いた、「脳の再起動」の具体的な実装方法を紹介していきます。
精神論ではありません。具体的で、今日から使える**「アクション」**です。
- 仕事の合間に挟む、5分間のマイクロ・リカバリー。
- 「ディープ・ワーク」の対極にある、「ディープ・レスト」という概念。
- そして、自分にとって本当に価値のある休息を見つける「レジャー・バリュー・ストリーム」の定義。
これらを、あなたの日常というソースコードに using して、メソッドとして呼び出せるように解説していきます。
準備はいいですか?
それでは、デバッガをアタッチして、あなたの生活のボトルネックを解消しにいきましょう。
次のセクション(承)では、具体的なメソッドの実装に入ります。
実装フェーズ:5分間の「マイクロ・GC(ガベージコレクタ)」と意図的な「ディープ・レスト」
前回の記事で、「脳のメモリリークを防ぐにはGC(ガベージコレクション)が必要だ」という話をしました。
では、具体的にどうやってそのGCを走らせるのか?
私が実践しているのは、大きく分けて2つの戦略です。
- マイクロ・GC(Micro-GC): 仕事の合間に挟む、数分間の強制的なリセット
- ディープ・レスト(Deep Rest): 集中作業の後に設ける、完全なる「オフ」の時間
これらを、あなたの「デイリー・ルーチン」というメインループの中に、ハードコードしてしまいましょう。
1. マイクロ・GC:5分間で脳のキャッシュをクリアする
開発に没頭していると、気づけば2時間、3時間と座りっぱなし……なんてことはザラです。
しかし、人間の集中力の限界は(個人差はあれど)90分程度と言われています。それを超えると、バグを生み出す確率が指数関数的に上がります。
そこで導入するのが、業務時間中に頻繁に行う「マイクロ・GC」です。
これは、長時間実行される重い処理(仕事)の合間に、await Task.Delay(…) を挟んで、UIスレッドに制御を戻してあげるようなものです。これがないと、画面(あなたの表情や思考)はフリーズします。
私が実践している3つのメソッドを紹介します。
① ムーブメント・リセット(物理レイヤーの再起動)
これが最も簡単で、最も効果的です。
「座っている」という状態は、身体的な血流を滞らせ、脳への酸素供給を低下させます。
1時間に1回、トイレに行くふりでもいいので席を立ち、以下の動作を行います。
- 背伸びをする: 縮こまった胸郭を開く。
- 歩く: オフィスの端まで歩いて戻るだけでいい。
- スクワット: 誰も見ていない場所(非常階段など)で10回。
これはWPFで言うところの InvalidateVisual() です。レイアウトを再描画し、古くなった表示(淀んだ血流)を更新します。
特に海外のオフィスは広いことが多いので、「コーヒーを取りに行く」というイベントを、単なる移動ではなく「散歩」と捉え直すと良いでしょう。
② タクティカル・ブリージング(CPU温度の冷却)
英語での激しい議論の後や、解決策が見えないバグにハマった時、脳のCPU温度は危険域に達しています。交感神経が優位になりすぎて、冷静な判断ができなくなっている状態です。
ここで使うのが、米軍特殊部隊も採用していると言われる呼吸法です。
- 4秒かけて鼻から息を吸う。
- 4秒間、息を止める。
- 4秒かけて口から息を吐く。
- 4秒間、息を止めてから、1に戻る。
これを「ボックス・ブリージング」と呼びます。
これを2〜3セット行うだけで、心拍数が落ち着き、脳のオーバーヒートが収まります。
席に座ったまま、モニターを見つめながらでも実行可能です。「あいつ、コード考えてるな」と思わせつつ、実はシステム冷却中。これがプロの技です。
③ マイクロ・メディテーション(一時キャッシュの削除)
「瞑想」と聞くと、怪しいとか難しいと思うかもしれません。
でも、エンジニア的に言えば、これは単なる 「外部入力の遮断と、内部プロセスの強制終了」 です。
1分間だけ、目を閉じてください。
そして、呼吸の感覚だけに意識を向けます。
「あのメール返さなきゃ」「あのAPIのレスポンスがおかしい」といった思考(ノイズ)が浮かんでも、それを深追いせず、ただ呼吸に戻る。
これは、ブラウザのキャッシュクリアと同じです。
ごちゃごちゃになった一時ファイルを削除し、動作を軽快にします。
特に、英語の会議の直後はこれ必須です。日本語以外の言語処理で溜まったキャッシュを一度捨てないと、次のタスクに向かえません。
2. ディープ・レスト:集中のための「完全停止」
次に、より長いスパンでの回復戦略です。
ベストセラー『Deep Work』(カル・ニューポート著)では、質の高い仕事をするための「深く集中する時間」の重要性が説かれています。
しかし、多くの人が見落としがちなのが、**「Deep Workには、Deep Rest(深い休息)がセットでなければならない」**という点です。
「休憩中にスマホを見る」は休憩ではない
これは何度でも言います。
休憩時間にニュースサイトを見たり、SNSをチェックしたり、Slackを眺めたりするのは、**「低品質なマルチタスク」**であって、休憩ではありません。
脳の視覚野と言語野を使い続けているからです。
C#で非同期処理を書くとき、Thread.Sleep(スレッドをブロックして待機)と、await Task.Delay(スレッドを解放して待機)は全く違いますよね?
スマホを見ている状態は、Thread.Sleep です。処理は進んでいないのに、CPU(脳)のリソースは握ったまま。これでは他の処理ができません。
目指すべきは await です。リソースを完全に解放し、システム全体を休ませるのです。
90分のスプリントと20分のリカバリー
私は、以下のようなリズムで一日を設計しています。
- Deep Work (90分):
- 通知全オフ。ヘッドホン装着(ノイズキャンセリング)。
- シングルタスク。コンテキストスイッチを発生させない。
- 「ゾーン」に入るための時間。
- Deep Rest (20分):
- PC、スマホの画面を見ない(超重要)。
- 同僚と雑談する(仕事以外の話)。
- 外の空気を吸いに行く。
- ぼーっとする(デフォルト・モード・ネットワークを活性化させる)。
特に海外のエンジニア(同僚)を見ていると、この切り替えが本当にうまいです。
集中しているときは話しかけるなオーラ全開ですが、休憩になるとカフェテリアで「週末のBBQ」の話で盛り上がったり、卓球をしたりしています。
彼らは本能的に、「脳の違う回路を使うこと」が回復になると知っているのです。
コンテキストスイッチのコストを甘く見ない
エンジニアなら「コンテキストスイッチ」のコストが高いことはご存知でしょう。
CPUがタスクAからタスクBに切り替える際、レジスタの状態を保存したり読み込んだりするオーバーヘッドが発生します。
人間の場合、このコストはさらに甚大です。
「コーディング」モードから「メール返信」モードへ、そしてまた「コーディング」へ。
さらに海外勢には「英語モード」と「日本語思考モード」の切り替えも加わります。
頻繁な割り込みは、脳のバッテリーを急速に消耗させます。
だからこそ、「今は休む時間」と決めたら、仕事のコンテキストを一切持ち込まないことが重要です。
中途半端にSlackを気にしながら休むのは、バグの温床です。
休むときは、親の仇のように徹底的に休む。
「何もしない」を「する」。
それが、Deep Restの実装です。
意外なバグの正体:あなただけの「レジャー・バリュー・ストリーム」を定義せよ
「起」で問題提起をし、「承」で日常のメソッドを実装しました。
しかし、システム全体の稼働率を安定させるには、もっと根本的なアーキテクチャの見直しが必要です。
それが、「休日(オフタイム)」の設計です。
週末明けの月曜日。
「How was your weekend?」と聞かれて、「最高だったよ!BBQして、ビーチに行って、夜はパブで飲んだんだ!」と答える同僚たち。彼らはなぜか肌艶が良く、エネルギーに満ち溢れています。
一方、同じように週末に予定を詰め込み、観光地に出かけ、美味しいものを食べたはずの私は、なぜか金曜日の夜よりも疲労困憊でデスクに座っている。
「おかしい…… Rest() メソッドは呼び出したはずなのに、HPが回復していないどころか減っている……」
この謎を解く鍵は、**「レジャー・バリュー・ストリーム(Leisure Value Stream)」**という考え方にあります。
世間の「休日の仕様書」は、あなたには実装できない
まず認識すべき冷徹な事実があります。
それは、**「世間一般で推奨される『良い休日』の仕様は、エンジニア(特に内向型)のハードウェア構成とは互換性がない可能性がある」**ということです。
海外、特に欧米文化圏では、「アクティブであること」「ソーシャルであること」が善とされます。
週末はハイキングに行き、夜はパーティーに参加し、友人とディナーをする。これが「充実した人生」のテンプレート(Default Template)として提供されています。
しかし、我々エンジニアの脳の特性を思い出してください。
私たちは普段、論理的整合性をチェックし、複雑な構造を脳内でシミュレートするという、極めて高負荷な処理を行っています。
さらに海外勢は、そこに「異言語処理」というミドルウェアが常駐しています。
そんな状態で、週末に「大人数でのBBQ(不特定多数との会話処理)」「知らない場所への旅行(空間認識と移動の負荷)」を実行するとどうなるか?
それは「休息」ではありません。**「高負荷な別タスクの実行」**です。
同僚のジョン(外向型)にとっては、人と話すことが「エネルギー充電(Input)」ですが、私にとっては「エネルギー消費(Output)」です。
同じ Socialize() というメソッドでも、ハードウェアによって戻り値が Energy++ になるか Energy– になるかが逆転するのです。
それなのに、世間の「楽しそう」というUIに騙されて、自分のシステムに合わないアクティブな予定を Install してしまっていませんか?
これが、月曜日の朝に絶望する最大のバグ、「互換性エラー」の正体です。
「ドーパミン的娯楽」と「セロトニン的休息」の区別
さらに深いレベルでバグフィックスをしましょう。
多くの人が「休息」だと思ってやっていることの多くは、実は脳を興奮させる「刺激」です。
- 激しいアクションゲームや対戦ゲーム
- SNSの無限スクロール
- Netflixでのドラマの一気見(ビンジウォッチング)
- 深酒
- ショッピング
これらは脳内で**「ドーパミン」**を分泌させます。
ドーパミンは「やる気」や「快楽」の物質ですが、同時に脳を興奮状態にし、エネルギーを燃焼させます。
これは、疲れた体にエナジードリンクを流し込んでいるようなものです。一瞬元気になった気がしますが、根本的なリカバリーは行われていません。むしろ、ドーパミン受容体が疲弊し、長期的には「何をやっても楽しくない」という不感症状態を招きます。
我々エンジニアが激務の後に真に必要としているのは、ドーパミン(興奮)ではなく、**「セロトニン(安らぎ)」や「アセチルコリン(休息)」**です。
- 静かな散歩
- 読書(技術書ではなく、小説やエッセイ)
- 単純作業(掃除、料理、プラモデル作り)
- 自然の中でボーッとする
これらは地味です。インスタ映えもしません。
しかし、これこそが過熱したCPUを冷却し、断片化したメモリをデフラグする、真の「メンテナンス・モード」なのです。
「楽しいこと(Pleasure)」と「回復すること(Restoration)」は、似て非なるクラスです。
継承元を間違えないでください。
あなただけの「レジャー・バリュー・ストリーム」をマッピングする
DevOpsの世界に「バリュー・ストリーム・マッピング」という手法がありますよね。
開発プロセスの中で、どこで価値が生まれ、どこで無駄が発生しているかを可視化する手法です。
これを、あなたの休日に適用してください。
名付けて**「コグニティブ・リチャージ・マッピング」**です。
紙とペン(あるいはOneNote)を出して、以下の2軸で自分の活動を分類してみてください。
- 高刺激 vs 低刺激(High Stimulation vs Low Stimulation)
- エネルギー消費 vs エネルギー回復(Drain vs Charge)
ここで重要なのは、「一般的にどうか」ではなく、**「今のあなたにとってどうか」**という主観的な計測値です。
例えば私の場合:
- 海外旅行: 高刺激・エネルギー消費(楽しいけど、回復はしない。プロジェクト完了後の長期休暇用)
- 同僚との飲み会: 高刺激・エネルギー大消費(これは仕事の一環と割り切る)
- コーディング(個人開発): 高刺激・エネルギー回復(好きすぎて回復するが、眼精疲労は溜まるので注意)
- 森の中を散歩: 低刺激・エネルギー回復(最強の回復メソッド)
- 一人で料理: 低刺激・エネルギー回復(無心になれる)
- 技術記事の乱読: 中刺激・エネルギー消費(仕事モードが抜けない)
こうやってマッピングすると、自分が「休む」つもりでやっていた活動が、実は「エネルギー消費」エリアに入っていたことに気づくはずです。
特に海外にいると、「せっかく海外にいるんだからもったいない」という貧乏性が発動しがちです。
しかし、あなたの脳(リソース)は有限です。
「価値ある休息」とは、あなた自身の固有の脳が喜ぶことであって、インスタグラムのフォロワーが羨むことではありません。
「引きこもり」という戦略的撤退
ここで、声を大にして言いたい。
エンジニアよ、堂々と引きこもれ。
特に英語環境で働いている場合、日本語のコンテンツに浸る時間や、誰とも話さなくていい「孤独(Solitude)」の時間は、決して逃げではありません。
それは、言語野のオーバーロードを防ぐための**「戦略的遮断(Strategic Isolation)」**です。
私は金曜日の夜、「今週末は予定ある?」と聞かれたら、爽やかな笑顔でこう答えます。
「ああ、ちょっと大事なプロジェクトがあってね。(自分のHP回復という名のプロジェクトがな)」
無理に現地のコミュニティに溶け込もうとして、毎週末パーティーに行って消耗し、月曜日にバグを量産するエンジニアよりも、
週末はきっちり自分の殻に閉じこもり、月曜日にはフルチャージされた脳でクリエイティブな解決策を出すエンジニアの方が、結果としてチームに貢献できます。プロとして信頼されるのは後者です。
「付き合いが悪い」と思われることを恐れないでください。
パフォーマンスの低さで評価を落とす方が、よっぽどリスクです。
あなたの「楽しい」の定義を、他人に委ねないこと(Dependency Injectionしないこと)。
あなた自身の IRecoverable インターフェースを正しく実装するクラスを見つけること。
それが、長く海外で戦い続けるための秘訣です。
さあ、あなたの脳にとって、本当に「値(Value)」を返すストリームは何ですか?
次回の「結」では、これら全てを統合し、持続可能なエンジニアライフを構築するための最終的なシステム構成案を提示します。
システム稼働:持続可能なハイパフォーマンス・ライフへ
長いコードレビューにお付き合いいただき、ありがとうございました。
ここまで読んできたあなたは、もう気づいているはずです。
私たちが目指しているのは、単に「疲れを取る」という対症療法ではありません。
「自分のパフォーマンスを、自分でコントロールできる」という確固たる自信とシステムを手に入れることです。
最終回となる今回は、構築したシステムを人生という長いランタイムの中でどう運用していくか、その心構え(マインドセット)と、明日から使える最終的なコンフィギュレーションについてお話しします。
1. 「回復」は技術であり、スキルである
まず、このシリーズを通して最も伝えたかったことを再定義します。
C#やWPFのスキルを習得するのに時間がかかったように、「上手に休む」こともまた、練習が必要なスキルです。
最初はうまくいきません。
「Deep Rest」をしようとしても、ついスマホに手が伸びるでしょう。
「マイクロ・GC」をしようとしても、バグのことで頭がいっぱいで深呼吸を忘れるでしょう。
でも、それでいいんです。
新しいフレームワークを導入した時と同じです。最初はエラーが出ます。ドキュメントを読みながら、少しずつ実装し、デバッグしていく。
「今日は昼休みに散歩できた」「今週末は誰とも会わずに本を読めた」。
そんな小さな成功体験(Small Wins)を積み重ねてください。
休むことは、怠惰ではありません。
それは**「自己管理能力(Self-Management)」という、シニアエンジニアに必須のスキルセットの一部**です。
海外のジョブマーケットでは、技術力と同じくらい、この「セルフマネジメント」が評価されます。バーンアウトしてプロジェクトを離脱する天才よりも、安定して80点の成果を出し続けるプロフェッショナルの方が、チームにとっての価値(Value)は高いのです。
2. 「技術的負債」ならぬ「身体的負債」を溜めない
私たちエンジニアは「技術的負債(Technical Debt)」の恐ろしさを骨の髄まで知っていますよね?
「とりあえず動くから」といって汚いコードを放置し、リファクタリングを後回しにすると、後で利子がついとんでもないコストを支払うことになります。
身体と脳も全く同じです。
「今は忙しいから」「プロジェクトが佳境だから」といって、睡眠を削り、ジャンクフードを食べ、運動をサボる。
これは、自分の体に「負債」を積み上げている状態です。
若いうちは、若さという「資金」で利子を払えます。
しかし、30代、40代と歳を重ね、さらに海外という高負荷環境に身を置くと、ある日突然、**「破産宣告(強制シャットダウン)」**が来ます。
それが、うつ病であったり、深刻な体調不良であったり、燃え尽き症候群であったりします。
このブログで紹介した「コグニティブ・リチャージ・システム」は、言わば**「日々のリファクタリング」**です。
毎日少しずつコード(体調)を整理し、負債を溜め込まない。
そうすることで、システム(人生)の寿命(LTS: Long Term Support)を劇的に延ばすことができます。
キャリアは短距離走ではありません。
特に異国の地でのキャリアは、終わりの見えないウルトラマラソンです。
息切れしないペース配分を知っている者だけが、美しい景色を見続けることができるのです。
3. 自分を「再コンパイル」する勇気を持つ
海外に出ると、日本では当たり前だった価値観が通用しないことに戸惑うことがあります。
「残業して頑張る姿」は評価されず、「定時内に結果を出す効率性」が評価される。
「空気を読むこと」よりも、「自分の意見(Needs)を主張すること」が求められる。
この環境変化に合わせて、私たち自身の内部ロジックも書き換える必要があります。
もしあなたが、「休んでいると不安になる」「何もしていない時間は無駄だ」と感じるなら、その古いソースコードは思い切って削除(Delete)しましょう。
そして、新しいロジックを書き込んでください。
C#
// 旧ロジック(廃止予定)
// if (Projects.HasTasks && User.IsAwake)
// {
// User.Work();
// }
// 新ロジック(推奨)
if (User.EnergyLevel < Threshold || User.NeedCreativity)
{
User.Recharge(Strategy.DeepRest);
}
else
{
User.PerformHighQualityWork();
}
この書き換えには勇気がいります。
周りの日本人が必死に働いている中で、自分だけ定時で帰ってジムに行くのは気が引けるかもしれません。
でも、忘れないでください。あなたは、あなたの人生の「リードアーキテクト」です。
仕様を決めるのは、会社でも上司でもなく、あなた自身です。
4. 最後に:明日からの Main() 関数
さて、長々と語ってきましたが、知識は実行されて初めてインスタンス化されます。
明日から、いや、今この瞬間からできることを一つだけ提案して、このブログを締めたいと思います。
「あえて、何もしない時間をスケジュールに入れる」
GoogleカレンダーやOutlookを開いてください。
そして、明日のスケジュールのどこかに、15分だけでいいので、「Blocked」あるいは「Reserved」という予定を入れてください。
会議でも作業でもありません。
それは、あなたがあなた自身に戻るための、聖域(Sanctuary)です。
その時間になったら、PCを閉じ、スマホを置き、ただ窓の外を眺めるなり、目を閉じるなりしてください。
たったそれだけのことが、あなたの脳のメモリを解放し、驚くほどクリアな思考を取り戻してくれます。
海外で働くエンジニアの皆さん。
私たちは、言葉の壁、文化の壁、技術の壁、たくさんの壁と毎日戦っています。
それだけで、十分にすごいことをしています。
だからこそ、自分自身を誰よりも大切に扱ってください。最高の機材(PC)を扱うように、最高のメンテナンスを自分に施してください。
WPFの画面が、バインディングされたデータによって動的に変化するように、
あなたの人生も、あなたの心の状態(State)によって、映し出される景色が変わります。
内側が整っていれば、異国の厳しい環境すらも、楽しめるチャレンジに変わります。
あなたのコードがバグなく動き、あなたの人生が例外(Exception)なく、幸せなログを出力し続けることを願っています。
それでは、またどこかの記事、あるいはどこかの国の勉強会でお会いしましょう。
Happy Coding, and Happy Living!

コメント