Frog カンファレンスが楽しかったので、質問に全部答えてみた
先週、カナダのバンクーバーの Frog カンファレンスで「世界一流エンジニアの思考法」のからみで、ありがたくも基調講演のスピーカーとして呼んでもらえました。これがきっかけらしい。ちなみに、yuya さんのPodCastも楽しいよ。
初めてのバンクーバーというのもあって、とても楽しかったので、イベントに寄せられた質問に勝手にすべて回答してみようと思います。すべてが私に寄せられた質問ではないので、答えられないのもありますが、そこは聞かれてないけど勝手に答えてみます。
私は何かの改善をしたいときは、その時に1つだけピックアップします。具体的には、その時の一番辛い事(例えば、PullRequestが自分だけコメントが付きまくって全然マージされない等)を自分のメンターに相談して、そのアドバイスをそのまま愚直に実行するようにしています。改善は少しづつで十分で、一気にやらなくて良いと思います。
カナダ初めてやから知らんけど、適当に回答すると、個人的にはマネー的な違いはあると思います。アメリカの中でもサラリーの額は住んでいる地域とランクで決まります。自分の会社でいうと、カナダにずっと住んでる人でもちゃんと優秀であれば待遇などには違いは無いですよ。ただ、個人的にはやっぱり対面で人に会える方がいろいろ楽だし、いいこともあります。ですがその人の好みという話だと思います。
ゴリゴリに使いまくっています。自分で趣味でAIアプリを書いて自分の仕事を効率化してたりもします。今までプログラムだけではできなかった自動化もできますので。自分の場合頻繁に使うのは、コードのレビュー、特にログのコメント、クラスやメソッド、変数の命名はいっつもAIに候補をだしてもらって決めています。命名は本当に難しいし、NonNativeの限界もあるとおもいますが、これも解決です。また、自分が書いたドキュメントの不自然な英語も完全に治してもらっています。なんとありがたいことでしょうか。もちろん調べものも最近はGoogle使わなくなっていますね。検索だとキーワードを知ってないといけませんが、ChatGPTとかだと不要ですし、一旦キーワードがわかったら、それで公式のドキュメントを読んだりしています。
自分はどちらでもなく、Strategy 派ですね。自分が行きたいところがあったら、そこに受かるように戦略を立てて準備して受けます。一言だけ言えるのは、躊躇せず「受ける」のが一番重要だと思います。
私が今のチームに入るためにやった戦略はすべてここに書いています。
希望はありません。その人がエンジョイしてたらいいのにな、成果がだせたらいいのにな。と思っています。 Up to you.って感じです。一つあるとしたら、困ったら質問してな!という事ぐらいでしょうか。是非エンジョイされてください!
カナダは知らんので、私が複数受けたアメリカのマイクロソフトの例ですが、両面だと思います。テクニカル面接はもしかすると「答えられる」だけが重要ではないと思います。その人が一緒に自分が働きたいと思ってもらえるかどうかがポイントだと思います。
だから仮に答えられなくても受かる可能性はあります。(わたしもそう)面接官は、その人が何かを知らないときにどうふるまうかを見ていると思います。この辺りはこの本が最高なので是非ご一読を!
そうでもないですね。マイクロソフトは居心地よいのかな。やめる理由は様々で、スタートアップに挑戦したい、オンコールがつらいのでオンコールの無い部署に行きたい、他の会社に行って、給料上げたい(ちなみに転職の時が一番給料が上がるので)など様々ですね。
そらそうよ。私は日本語だと、政治も得意だし、心理学勉強して、催眠誘導も出来るぐらいトークが得意ですが、英語だとたんなる英語が不自由な人ですから…。ほんま英語難しい。上達したいと常に思っています。
明らかに私に対する質問ではないですが、勝手に回答しますとw 自分が情報発信しているのは、自分が学んだことを記録しておくため、そしてそのおすそ分けというモチベーションです。誰かの役にったったらええから公開しとくか的なノリですね。オープンソースの世界で育ったからコントリビュートしたい気持ちはあります。
AWS ?何を言っているのですか? Azure なら役に立ちます w まあ、冗談はさておき、確かに資格というよりも、実力という感じです。コーディング面接したらわかりますので。ただ、アルゴリズムの勉強や資格の勉強も知識を強くするためには有効な勉強の手段だと思うので、自分が強くなるのを楽しみながら、勉強のツールとして活用されると良いと思います。
よくわからないですが、文化や考え方が違うのが当たり前で常識は存在しないので、あまり、〇〇人とか、〇〇国の人とか、「日本人じゃない」とか区別して考えない方が良いと思います。どんなに育った国が違って、死ぬほどいろいろ違っていても同じ人間ですから、文化の違いを楽しんで、そして自分も、世界から見たら小さな1つの国から来たレアキャラですから、日本だとかどうとか意識せず、気負わず、普通に接したらええですよ。
無理ではないとは思います。ただ、日本だと物理的にポジションが少なそうです。(テック系だと、セールスやサポートの部署とかが多くてエンジニアリングのポジションは少ない)しかし、真に強いエンジニアなのであれば全然可能かとも思います。他のエンジニアの Reputation を得れるようにがんばってみてください!
私の話は良さげですね。一応さらっとしておくと、週3の筋トレと週5のランニングを今はやっています。プロテインなどのサプリメントもとっています。筋トレの週1はパーソナルトレーナを雇っています。ちなみに、若い人はこれしなくても良いとは思います。というのもおっさんになると、頭は衰えませんが、「元気さ」がほっとくと減少する感じになります。それをキープするために、おっさんは運動するというのが実際だと思います。
私は何でも作れるエンジニアになりたいですね。ベストシナリオは「黒田作戦」と呼んでいますが、元広島カープの黒田は、バリバリの大リーガで、来年も残ってくれと言われているのに、それをけって広島に帰ってカープを優勝させました。かっこいい。(ちなみに私は当然阪神ファン)
これと同じように、アメリカで、ICでマイクロソフトのプリンシパルになって、皆に信頼されて、自分がまだ役に立つうちに、日本でチームを立ち上げられるようにして、チームメンバーと一緒に開発することで、日本でアメリカにいるのとまったく同じ開発はどのようなものかをシェアしたいです。できるかなぁ。
流石にこれは答えられませんね。私はアメリカやし。職歴でいうと、採用側としては、日本の職歴は全然良いと思います。無給の仕事だとどうだろうと思うような気がします。
採用する側は、ひどくなければ、英語がどうこうやとは思わないと思いますが、「英語圏」での実績はよいと思われるでしょう。でもエンジニアだと、エンジニアリングが出来ることが重要なので、日本での活躍が凄ければ、評価されると思います。それとはまったく別軸でビザの問題があると思いますね。結局総合的な評価になると思いうので、いろいろ作戦を考えてみてください。私がどういう作戦を立てたかは上のブログで。
単純にプログラマになりたかったから。コンピュータの世界では、一番かっこいいと思っていますから!また、自分で何かが出来るようになるのが私の一生の夢なので。エンジニアとしての自信は常にありません。というか三流と私が言っているのは何も謙遜とかではありません。本当にそう思っています。ただし、私はそれで落ち込んでいるわけではなく、冷静に分析をしてそう思っています。自分のレベルに一憂一喜していたら、ろくなことは無いです。例えば私の目の前に座っているPaulや、スーパー賢いGlenna、彼女とかもうGeneのレベルで違うとしか思えません。
物理的な能力で彼・彼女に勝つこと、競争することは永久に不可能でしょう。だから自分は作戦を使います。ストラテジーです。そして、周りの凄い人をみて落ち込んでいても一円の得にもなりません。だから、自分は昨日の自分と比べて物凄く小さく成長しているか、もしくは成長していなくても、毎日の習慣を継続できているか?の方を重視しています。そんな小さな習慣を維持てきた自分をほめて、他の人とは比較はしません。この本には結構お世話になりました。いつも思い出しています。日本語もあると思います。
100% ですね。たまたまですが、アメリカ人いないような…インド人率高し。
過去に会社やっていましたが、正直なんとなくでしたw 私は、その後今のサラリーマンエンジニアになることにしました。自分の会社でも困ってはなかったのですが、こっちの方が自分が好きだからです。やっぱ世間の評判とかではなく、自分の心に聞いて、自分が一番好きでしっくりするのが一番だと思います。だから起業やりたかったらやったらいいし、そうでなければそうでなくても別にええと思います。
それはつらいですね。。。私はリファラルをもらったことが無いので知りません。すんません…
技術以外でいくと、「大阪のおばちゃんぐらいの厚かましさ」ぐらいがちょうど良いと思います。会議でも日本だったら、人が話するのを終わって発言しますが、こちらでそれだと永久に回ってきません。
ただ、大阪のおばちゃんにいきなりなるのは難しいと思いますが、そういう時は周りに言うと助けてくれることがあります。私もそうでしたが、ある時仲間に「ごめん、日本だと、人が発言おわるのを待って話をするようにという風にそだってるんだ。だから、頭ではわかっていても、長年染みついているから、なれなくて、発言出来ないままに終わってしまうんだよ。」
という事をいうと「ええ、そうなの、教えてくれてありがとう」といって、その後は気をつかって、「Tsuyoshiは何か意見ある?」と振ってくれるようになったりましたので、そういうのもお勧めです。
いやぁ、というか、部下というか、大学でたての人も物凄く出来るので、尊敬できる人しかいません。そのエピソードが本になったものが、この本ですね。
Frogのカンファレンスでもお話しましたが、やはり、振り返りと、2つ上のポジションの行動をすること、そして2つ上の上司がやりたいことを理解して実現してあげる、最後に地道にエンジニアとしての能力を磨き続けることかなぁと思います。同僚を助けて、同僚と仲良く楽しく仕事をしながら。
はい。老後は日本の方が医療制度が良さげですし、安全ですし。こちらは仕事は最高ですが、生活面だとどうでしょう。先ほど仕事的なプランはお話しましので、日本帰国後のキャリアですね。多分こっちのぬるま湯につかった私は日本企業ではダメ人間でしょうw だから、自分で会社やるか、外資系企業で雇ってもらうしかないですね。出来たらマイクロソフトでエンジニアやりたいですね。あかんかったら自分会社かな。自分の年齢だと日本だと今帰っても雇ってくれるところあんまりなさそう(今52歳です)
そら英語は永遠の課題です。英語にガッツリフォーカスすれば実力上げれるとは思いますが、技術も上げないといけないので、今は英語より技術優先にしています。英語は常に不自由を感じています。リーディングも圧倒的に遅いし、ランチタイムとかいろんな内容やし、まぁつらにゃんにゃんです。
心がけていることは、わかったふりをしない事でしょうか。わからんときはわからんと言うようにしています。聞き返して理解しようとがんばります。レコーディングしといて、CopilotやTranscriptに頼ることもあります。
こんな感じっすかね!
そらそうよ。重かったものも、ダンベルに比べるとアホみたいですな。
私もインターナルトランスファーですね。インターナルトランスファーはいろいろ最高です。ビザもグリーンカードも苦労しませんし、引っ越しもサポートしてくれるし、最高です。コツとしては、外資にも日本文化ゴリゴリで、日本人上司という部署もあれば、上司は、アメリカにいるし、レポートラインがそちらという部署もあります。後者の部署に移る方が可能性が高いです。ポイントは自分から、先に「将来はアメリカで働きたい」と宣言しておくことです。実際のトランスファーは運とか、当時の会社の戦略とか、予算とかそういう要素があるのですが、先に宣言しておくことで、そのタイミングが来たら、チャンスを得る確率が上がります。
カナダはしらんけど、ほぼいない感じですかね?ちなみに私は持ってません。電気工学科です。実務経験はめっちゃあります。実務経験と、コンピュータサイエンス相当の学位(工学科系)を持っていればokというノリでしょうか。要は実力です。
無理せず、自分がその時に学びたいことを学んでいますね。学んでいるときは、学んだらブログを書くとかしています。その時にサンプルのコードを書いたりもします。
最近は、自分プロジェクトをやって、コーディングから、CI/CDなどすべての要素を一人でやって、人につかってもらえるソフトを書くための経験と勉強をしています。
おらんので知らんです。すんません…
流石にしりませんね。ここで検索すると良いですよ!
私は技術に全振りしていて、英語はおろそかです。ただし、これが良いとは思っていません。英語全振りは良い気がします。私の友人(メキシコ人)は最初の数年は英語をめっちゃやった方が良いとアドバイスをしてくれて、Make sense だと思います。だって全部に効くので。
一つは筋肉と運動。つまり元気さをキープすることですね。むっちゃ一時的に忙しくなっても筋肉でカバーできます。精神的な燃え尽きの方が難しいですが、私はめっちゃくちゃに忙しい時期でも、日曜は休むようにしています。もうなんもしない。ぐーたらでアニメ見たり漫画読んだりギター弾いたりします。運動すらしません。人にも会いません。それが自分のリラックスみたいで他の人はまた違うと思いますので。ちなみに、私は休むことに抵抗がありましたが、この本を勉強して、休まんと生産性落ちるなぁと思うようになりました。
流石に経験ないのでなんとも…
ぶっちゃけ雇う側からしたら個人のポートフォリオとかどうでも良いのはないでしょうか?雇う側からしたら、雇いたい人を雇いたい、つまり、その部署がたまたまほしい人を欲しいという感じと思います。
じゃあその「欲しい人に」と自分のギャップを如何に埋めるか、その「欲しい人」になるためにはどういうアクションをして、差別化するか?などの「相手の視点で考える努力」というのが結構重要な気がしています。個人的な意見なので適当ですが。
時間の割合は、もちろんフルタイムで働いているので、会社の勤務時間の方が多いですねー。私の場合は、土曜日を自分的に「出勤日」と思っていてそのスロットを勉強に割り当てていますね。他に楽しい時は、帰ってから Moon lighting してたりします。でもやらなあかんというよりも、自分が楽しかったらやったらええんちゃう?というノリで良いのでは?
エンジニアの場合ですが、中の人と会う機会があるなら、会うといいかもしれません。技術のイベントやコミュニティで登壇しているかもしれません。またエンジニアの場合、その会社さんが公開しているオープンソースにコントリビュートするのがとても良いと思います。そしたらどんなコード書いているかとかわかりますよね?
そうっすねー。私の妹は元ヤンで最恐でしたが、彼女のセリフをいつも思い出します。「別に死ぬわけちゃうんしええんちゃう?」
自分が過去にアドバイスを受けたことは、近いうちに思い出してブログに書いています。思い出す事で記憶ができるので一石二鳥ですね。
Ryosukeさんじゃまったくないので、全然関係ありませんが、リロケーションOKと言われてその瞬間行くと言いました。
タイムカードあるわけちゃいますし、バリューが出てればなんでも良いのではないでしょうか?残業命令されたことは一回もありません。沢山働いてほしいと言われたこともなく、むしろ休暇とったら喜ばれます。
よく言われるのは心理的安全性ですが、自分的に過去に上手くいったパターンは、メンバーのみんなに「自分でも出来る!」と思えるように思ってもらうこと。そのためにまず相手を「理解する」ことから始めるということをよくしていました。彼らを信じて任せて、フォローアップしていれば、ゴリゴリ伸びるし、自分も相手も楽しいし、いいことばかりですよ。
そうですね。こっちにきてしまうと、英語は常に苦労ですね。ただ、英語にもっとフォーカスするなら克服できる感じはあります。(今は技術を優先しています)日本に居るときのコツを一つ上げるとすると、多くの人は「しゃべれない」と言っていますが、しゃべりは多くの人が単に「訓練をしていない」からしゃべれないだけで、今は沢山のメソッドがあるので、練習すれば出来ると思います。そして、日本の外資系でもゴリゴリしゃべる人はすくなかったりするので有利になったりもします。本当の英語力としゃべる能力は別ですが、英語の発音の個別の練習や、シャドーイングなどのしゃべる訓練
は思ったより短期に習得できます。
ベストとはいいませんが、私のやってた勉強法はこれ。
なるほど、いい質問っすねー。うちのチームはどうしているかなぁ?まず、うちのチームは、進化型設計のやり方はあんまり好きじゃないみたいです。(私は好きなのですが)だから、PRレビューで技術的負債的なものは通りにくいです。それでも技術的負債的なものは生まれることがあります。その時は、普通のフィーチャーと同じバケットに入って優先順位が付きます。P0からやっていきます。ちなみに技術的負債が P0 になることもあります。それが深刻だったり、あるアーキテクチャを実装するためには先にそれが必要だったり。
一つうちのチームのいいところは、どれだけ上に行ってもエンジニアなので、そういう理解があるということがめっちゃくちゃ楽です。説得不要なので。だから、新しいフィーチャ、保守のための改善、技術的負債、アラートに上下関係はなく、優先順位のみでソートされてP0からやっていきます。P0はその時々で選択が変わります。
新しい機能開発優先の時もあれば、リリースの前は、機能開発よりもアラートとかStabilizeのタスクが優先になります。新しいタスクを実装するときに技術的負債があってこのままだと、いまいちなコードになる場合がしょっちゅがっつりリファクタして変更しています。なぜならそれが重要だからです。でもそんなこといちいち相談しません。タスクをこなす中で、みんな個人の判断で勝手にやっていますが、みんな信頼しているので、特に上から何かいわれることはありません。
なんかこれ抜けてた (6/28追記)
わし、アメリカに来たん47か48歳の時やで。こっちは年齢聞かれないので、快適やで。
ちなみに、もうすぐで9万部で、できたら10万部行きたいので、良かったら買ってな。もしくは周りの人にすすめてなw
この記事が気に入ったらサポートをしてみませんか?