新米エンジニア修行中(1):旅日ソフトウェアエンジニア、Mujin での職場初体験
¶ はじめに
卒業前は、学生時代の心境の変化を記事として残してきました。卒業後は、新しいシリーズ「新米エンジニア修行中」を始めます。「新米」は日本語で“菜鳥(初心者)”の意味です。このシリーズでは、New Grad の新米エンジニアとして入社し、経験を積んで Junior という段階を抜けていくまでの心境の変化を記録していきます。主役はソフトウェアエンジニアですが、エンジニアの本質は共通だと思っています。スキルツリーそのものだけでなく、人間関係、環境への適応、学び方など、どの分野のエンジニアでも似た課題に直面します。
ソフトウェアエンジニアのキャリア成長については、入社前から Vgod の「軟體工程師的修煉與成長」を何度も読み返していました。ただ、その多くは私にはまだ遠く、基本的には入社後数年のエンジニア向けの内容です。新米フェーズの描写は少しあっさりしているとも感じました。結局、彼は振り返って書いているので、当時の挫折も「今となっては大したことない」と感じているのかもしれません(しかも MIT 博士ですし!)。私が共有したいのは、各瞬間の“いちばん生々しい心境”です。挫折と成長をその都度書き残していきます。このシリーズはきっと誰かの役に立つと思います。新米からシニアに至るまでの細部を語る人は意外と少ないですが、その“小さな細部”こそが成長・変化の鍵になると私は信じています。
本シリーズ(継続更新中):
- 新米エンジニア修行中(1):旅日ソフトウェアエンジニア、Mujin での職場初体験(本記事)
- 新米エンジニア修行中(2):職場の社会化とサバイバル
- 新米エンジニア修行中(3):飛躍的成長、OSS メンテナになるまで
- 新米エンジニア修行中(4):中堅エンジニアに昇格、退職して起業(完結編)

(同僚とスキーへ)
¶ 初めての職場
日本の Mujin は、私が卒業後に就いた初めての正社員の仕事です(前日譚:2022 年 海外新卒で日本・東京のソフトウェアエンジニア職を探した経験)。気づけば日本で働き始めて半年近くが経ち、いつの間にか 2023 年に入っていました。Mujin に入ってから大小さまざまな出来事があり、新米エンジニアにとってはすべてが“ショック療法”のようでした。
ざっくり時間軸に沿って話すと、入社 2 日目から仕事が始まり、最初の 1 週間で簡単なバグ修正を 1 件。2 週目から 4 週目で小さな新機能を 1 つ完成させました。徐々に軌道に乗っている感覚があり、少し自信もつきました。2 カ月目の前半は小機能をいくつか実装し、動くことは動いたのですが、上司のコードレビューでほぼ全面的に書き換えられ、自信が少し削られました。2 カ月目の中盤から 5 カ月目にかけては、会社が大きなプロジェクトに取り組んでいて、ほぼ全エンジニアがコアコードを刷新する状況でした。大きな計画に参加でき、触れる範囲も広く、そして「1 つのことにこれほど長く取り組む」経験も初めてでした。最初は 1 カ月以上壁にぶつかり続けましたが、徐々にコツを掴み、“ちゃんと仕事をしている”感覚が出てきました。ただ、スコープが広がるほど、自分が本当に大きな貢献をできるようになるまでにはまだ距離があるとも感じました。
¶ 会社生活
「会社の初日は何をするのか」がずっと気になっていました。Mujin にはそれを紹介したブログがあるので、細部はそちらに譲ります:Let’s find out how is your first day at Mujin。要するに丸 1 日 HR の説明で終わり、最後に自分のチームへ戻って、同僚が開発環境の理解や最初の課題の解決を手伝ってくれます。
すべての会社が外国人採用でこういう対応をしてくれるのかは分かりませんが、Mujin は採用から入社前までの準備をかなり丁寧にやってくれて、私はとても満足でした。短期滞在用の住居は出発前に手配され、日本到着後は区役所での各種行政手続き、銀行口座開設なども案内してくれます(とはいえ HR と予定を合わせるのが面倒で、区役所は彼女に付き添ってもらいました。実際、日本では会社のサポートなしに外国人が口座を作るのは難しく、基本的には半年以上滞在してからでないと厳しい印象です)。大きな問題はなく、仮に日本人の彼女がいなくても致命的ではなかったと思います。ただ、やはり彼女に頼る場面はあり、日常の日本語は彼女に翻訳してもらう方が早いことも多いです。HR が常に正しいわけでもなく、時々間違ったことを言われるので、彼女にダブルチェックしてもらうこともありました。
Mujin は日米ハイブリッド(創業者が日本人とアメリカ人)だと思います。全体の雰囲気は外資寄りですが、細部は日本的なところも多く、とはいえ伝統的な日本企業ほどではありません。エンジニアはほぼ外国人で、他部門は日本人が多い印象です。社内の会話は基本的に英語です。驚いたのは、外国人でも日本語が N2/N3 くらいの人が多いこと、そして中国人も多いことです。昼食の雑談は中国語の方が気楽なので、そうすることもあります。
会社は無料の昼食を提供してくれます。少し高級な給食のような感じで、ありがたい反面、食べ続けると飽きます。無料昼食があるのは、会社が海沿いで周囲に飲食店がほぼないからです。外食するとだいたい 1,000 円以上かかるので、月に 2 万円くらい昼食代を節約できます。コーヒーや飲み物、お菓子も無料で、私はたぶん一番食べていて、少し太った気がします。昼休みは毎日卓球をしていて、だいたい 30 分〜1 時間。最高に気持ちいいし、運動量も確保できて、午後の仕事も頭がスッキリします。仕事中に休憩したくなったら少しダラダラしたり、ジムに行ったり、退勤後に卓球をしたり、たまに同僚とボードゲームをしたり、食事に行ったりもします。のんびりして見えますが、実際は残業している人も少なくありません。特に日本人は頑張りがちに見えます。ただ私は“心地よいペース”が好きなので、ほとんどの日は定時で帰ります。
¶ 技術力
面接準備の段階から「自分は何もできない」という感覚が強く、入社してからも実際にそう感じました。Git、GDB、CMake くらいは使える? それはソフトウェアエンジニアならキーボードを叩けるのと同じくらい当然です。かなり前に「資工系所学生の基本素養」という記事を書きましたが、基礎素養は“良い会社に入るための入場券”でしかなく、入社後こそが本当の学習の始まりです。
Google や Apple のようなトップ企業に入れる自信はなく、今の自分には遠すぎます。Mujin は私の能力より少し上で、成長のプレッシャーを感じつつも潰れないギリギリのラインだと思います。上司も同僚も賢く、一緒に働くのは楽しい反面、経験不足で劣等感や挫折もあります。幸運なのは、上司が比較的“人を教える”ことに辛抱強いタイプだということです。技術だけでなく、対人や仕事の進め方など、多くを学びました。特に印象的なのは、コードレビューでその場で私のコードを直していく姿です。少し眺めただけで私の意図を理解し、複数のファイルを高速に行き来しながら、ほぼ迷いなく各パーツを接続していく。あの瞬間、自分がシニアからどれほど遠いかを痛感しました。
入社 1 カ月目は 2 つの課題を解きました。社内コードを大量に読み、ようやくタスクを完了して「自分すごい」と思っていましたが、上司との 1:1 で「最初の 2 つはどちらも簡単な問題だよ」と言われました。1 つは既知のバグ修正、もう 1 つは既存フレームワークの上で API を 1 本書く程度で、本質的に難しい問題ではないと。少し恥ずかしかったです。自分が“難しい”と思ったものが、他の人からは“簡単”に見えていた。ただ、入社して間もないので簡単なところから始めるのは当然です。その後、会社の大プロジェクトに入ってからは、1 カ月間毎日コードを読み続けても実質的な進捗がなく、かなりしんどかったです。さらに 1 カ月以上が過ぎた頃、急に何かが繋がり始め、コード同士の相互作用が理解できるようになって、少しずつアウトプットが出るようになりました。会社で 2〜3 年働く必要性も理解できました。社内コードに“なんとなく”慣れるだけで 3〜4 カ月、効率よくアウトプットできるようになるには半年〜1 年はかかると思います。最初は壁にぶつかる時期で、開発プロセス、社内ツール、同僚との協業などを学ぶ必要があります。
「焦らない方がいい」と多くの人に言われましたが、確かにその通りです。成長は一気には来ません。技術力も積み重ねです。入社半年が過ぎると、会社の大枠の構造や組織の動きがだんだん見えてきて、上司からタスクを渡された時に、より早く状況を掴んでより早く終わらせられる自信がついてきました。同時に、自分の影響力が少しずつ増えている感覚もあります。書くコードが増えるほど、私が担当する機能やプロジェクトについて相談や質問を受けることが増えました。
学校では課題と授業で成長し、会社ではより多くのタスクをこなすことで成長します。上司からのタスクを早く終わらせられれば、より多くの仕事に触れ、より速く成長できます。最初は一番簡単な雑務に近いタスクから始まり、時間が経って触るコードが増えるほど、より難しいタスクにも手が届くようになります。大量に読むことは重要です。規模のある会社のコードは 10 万〜100 万行に達します。怖がらずに掘り続ける。深く掘るほどモジュール間の繋がりが見えてきます。ただ“見た”だけで終わらせず、細部まで理解するように努める。同時に、各機能がどのプロジェクトのどこにあるかを覚えておくと、後で修正する時にとても役に立ちます。好奇心も重要で、分からないコードはできるだけ聞くようにしています。本当に高度で説明が必要な場合もあれば、設計自体が問題で改善すべき場合もある。いずれにしても、聞くことは有利です。
新人としての感覚では、3 カ月で会社の状況が大体分かり、6 カ月で大枠のアーキテクチャを掴み、その後ようやく価値のある貢献ができるようになると思います。私も最初は焦って「すぐ貢献したい」と思っていましたが、徐々に「今の自分はまだ何もできない新人だ」と受け入れ、唯一の貢献は“早く学ぶこと”だと考えるようになりました。まともな会社なら、新人が軌道に乗るまで半年は時間をくれるはずです。それでも挫折するのは、半年働いてもなお上司が「まだ独り立ちできる段階ではない」と判断し、重要なタスクを任せてくれないことです。まあ、成長し続けるしかありません。
余談ですが、上司やシニアから「もっと速く成長するには、仕事以外でも開発・学習をすることだ」と言われたことがあります。興味のある Side Project を作ったり、オープンソースに参加したりすると、会社では触れない技術を補えます。私は業務外の学習にそこまでストイックではなく、基本はダラダラしたいタイプですが、それでも技術書を読んだり、オープンソースに少しだけ貢献したりはしています。
¶ 言語力
ヨーロッパに 1 年いた時は「英語はまあ大丈夫、通じればいい」と思っていましたが、自分の英語力はまだ全然足りないと痛感しました。Mujin の公用語は英語で、しかもアメリカ人が多かったり、そもそも英語力が高い人が多いので、会話についていけないことがよくあります。たまに聞き取れない程度ならいいのですが、頻繁に聞き取れないとコミュニケーション効率が落ちます。いつも「もう一回言って」とは言えません。さらに、複雑なロジックを考える時、中文ですら言語化が詰まるのに、英語で話すのは本当に厳しい。しかも最悪なのは、英語ネイティブに対して少し失礼な言い回しをしてしまうことです。これは語感の問題で、英語力が足りないと、言葉選びが不正確だったり間違っていたりして、誤解を招いたり、相手を不快にさせたりします。友達との雑談なら多少適当でも問題になりにくいですが、職場では慎重で正確な英語が求められます。幸い、付き合いが長くなるにつれ同僚も私の英語力を理解し、多少のミスで不満を持たれることは減りました。私も「失礼だったり間違っていたら、遠慮なく指摘してほしい」と正直に伝えています。
一方、日本で生活する以上、日常では日本語が必要になる場面も多く、今は彼女に翻訳してもらっています。正直かなり不便です。日本人は基本的に英語を話せず、ヨーロッパのように英語で押し切れるわけでもありません。結局、相手の言語を学ぶしかない。ただ、仕事に慣れてからは日本語学習を真面目にやらなくなりました。仕事は英語ですし、生活も最低限の日本語(支払い、袋が必要か、温めるか)で回ってしまう。でも日本語が話せないままだと、役所や病院など“ちゃんとした用事”のたびに彼女の同伴が必要になるので、いつかは必ず身につける必要があります。言語ができないと「二等市民」のような感覚がずっと付きまとい、それがとても不快です。例えば病院で意思疎通が難しいとか、警察に止められてしどろもどろになるとか。
そして何より、言語力の不足は自信を大きく削ります。英語がうまく話せないせいで同僚と話したくなくなり、英語で話すたびに強いプレッシャーを感じます。意思疎通はできるけれど、中国語のように気楽には話せない。日本にいながら日本語ができないことで行動が縮こまり、外出も彼女や友達に日本語を任せたくなり、一人の時はなるべく話さなくて済む場所に行きたくなる。英語も日本語も中途半端で、ずっと劣等感があります。日本を離れる理由が 1 つあるとしたら、それは日本語力でしょう。改善すべきだと頭では分かっているのに、結局、仕事後はダラダラしてしまい、家に帰ったら休むだけになってしまいます。
¶ 人間関係
人間関係は難題です。学校なら合わない人とは距離を置けば済みますが、会社では性格が合わない同僚とも何とか付き合う必要があります。自分の給料と喧嘩する必要はありません。人間関係は言語とも関係があります。誰もがゆっくり説明したり繰り返したりする忍耐があるわけではなく、英語についていけない、説明が不明瞭だと、短気な人はイライラします。言葉選びが不正確だったり失礼だったりすると、衝突にもなりやすい。私も入社当初は同僚と何度か揉めました。ただ幸い、誰も職場の雰囲気を悪くしたいわけではなく、衝突後はすぐに和解して話し合いました。時間が経つと相手の性格が分かり、どう接すればいいかも掴めてきました。今では、当時揉めた同僚が私の愚痴を聞いてくれる相手になっています。
¶ 定時退社
定時で帰れるかどうかは職場環境次第です。会社の雰囲気が「残業が当たり前」なら従うしかない。従わないなら追い出されるか、自分が辞めるかです。
Mujin に入ったばかりの頃、同僚がみんな遅くまで残っていて「終わった…」と思いましたが、上司は「残らせるつもりはない。みんな面白いから、使命感があるから残っている」と言いました。半信半疑でしたが、数カ月経った今は本当にそうだと信じています。同僚の仕事や技術への熱量は想像以上で、毎日遅くまで残り、深夜や週末に働く人もいます。心から尊敬します。会社は残業代を出しませんし、私は自分の時間を大事にしたい。
私が聞いたアドバイスは「入社直後で慣れないうちは、少し残ってでも学ぶのは良いこと。後で常態化するかどうかは心配しなくていい」というものです。会社が残業を強制しないなら、業務に慣れた後に自然と定時に戻せます。逆に残業が文化なら、どうせ逃げられません。つまり心配しても仕方ないので、最初は自発的に少し残って早く立ち上がる。振り返ると確かにそうでした。最初はバグに詰まったり、システム理解が足りなかったりして進捗が遅いと感じ、自分から残って調べていましたが、軌道に乗ると勤務時間内のアウトプットで十分だと思えるようになり、定時退社でも問題ないと感じました。
¶ 1:1 で何を話すか
Vgod も 1:1 の話題を書いていますが、それは経験を積んだ後の話です。新米が「プロジェクトを任せてほしい」とか「他チームとの調整をしてほしい」と言うことはまずありません。では新米は何を話すべきか。ここでは私のやり方を紹介します。最善かどうかは分かりませんが、これまで 4 回 1:1 をしてみて、少なくとも私は満足しています。
最初の数回は、上司に期待値を聞きました。3 カ月でどこまでできるべきか、6 カ月でどこまでできるべきか。同僚の学習ルートも聞き、自分の参考にしました。しばらく働いた後は、作業効率へのアドバイスや目立つ弱点がないかを聞きました。会社のドメインに早く慣れる方法、上司自身がどう成長してきたかも聞きました。開発で詰まっているポイントや、他人との協業で起きたことを話すこともあります。技術的な知識を雑談的に話すこともあれば、会社の運営・発展について広い質問をすることもあります。
私の方針は、進捗・困難・技術詳細など仕事に直結することはその場ですぐ相談し、それ以外は 1:1 に取っておくことです。例えば「チーム内のコミュニケーションがうまくいかず認識齟齬が起きた」時に、どう防ぐべきかを 1:1 で相談したり、気持ちの共有(能力不足を感じる、挫折しているなど)をしたりします。1:1 は少しフォーマルな雑談で、普段の雑談では言いづらいテーマや、より丁寧な答えが欲しい問いに向いています。
ただ、うちの会社には固定の 1:1 文化があまりなく、基本的には社員側から上司にお願いして初めて実施されます。最近は上司が忙しく、1 回飛んでしまって残念でした。幸い、亦師亦友の 陳永昱(交大の数値ソフトウェア開発の先生、Synopsys のシニアエンジニア)が、仕事の心構えや進め方、学習面などの相談にいつも乗ってくれるので、会社の 1:1 で同じことをもう一度聞かずに済みました。
¶ 職場サバイバル
職場のサバイバル術は、技術力の次に重要だと思います。社内文化や政治、上司とその上司の理解、報告の仕方、上司の盾になる動き方など、いろいろ含まれます。私はまだまだ未熟で学習中ですが、早く身につけないと、もし会社がレイオフをしたら真っ先に切られるのは自分だと感じています。
「4 年 AWS 工作总结:从 college hire 到 senior 的一点感悟」はおすすめです。職場の“ゲームのルール”が書かれていて、私はできていないことが多い(上司に余計な手間をかけないなど)と痛感しました。また、泥水に入らず身を守ること、やるべきこと・やってはいけないことを見極めることの重要性も学びました。社会に出ると、学生の“免罪符”はもうありません。私は「人としての立ち回り」が不器用なので、早く学びたいです。
¶ 社交
仕事以外の社交イベントも悪くないです。毎月無料の Team Dinner があり、同じチームで夕食に行くと 1 人 4,000 円の予算が出ます。毎月サッカーナイトもあって、みんなでサッカーをします。冬はスキーに行くこともあり、昼休みは卓球をする人も多い。ボードゲームをすることもあります。

(友達とハイキング)

(同僚と夕食)

(会社が毎月開催する屋内サッカーナイト)
¶ まとめ
正直、この半年は順風満帆ではありませんでした。本文で触れた各側面の多くが、挫折と不安の体験です。入社直後の同僚との衝突、思うようにコードが書けない、書いたコードを何度も作り直させられる。さらに、当時の私はまだ日本の永住権がなく、Mujin は新人を最初は 1 年契約で雇うので、常に「自分のパフォーマンスは十分か」と不安でした。加えて、恋を追って日本に来たことで彼女との関係も“すり合わせ期”に入り、時々喧嘩もしました。いろいろ重なって、スタートの半年は思い描いたほど美しいものではありませんでした。次の半年はもっと良くできるように頑張りたいです。