エンジニアとして世界の最前線で働く選択肢 - 竜 盛博
アメリカのIT業界でソフトウェアエンジニアとして10年以上キャリアを積んできた(帰国子女ではない日本育ちの)著者が、国内でのキャリアの後にアメリカのIT企業で働くという選択をしてから遭遇した様々な経験をもとに、企業文化や国民性の違いを乗り越えてアメリカでソフトウェアエンジニアとして働くとどうなるのか…そしてどうやったらうまくやっていけるのか…ということをコンパクトにまとめた本。
エンジニアとして世界の最前線で働く選択肢 ?渡米・面接・転職・キャリアアップ・レイオフ対策までの実践ガイド
- 作者: 竜盛博
- 出版社/メーカー: 技術評論社
- 発売日: 2015/10/08
- メディア: Kindle版
- この商品を含むブログ (3件) を見る
Kindle版でサンプルを読み始めたら期待できそうだったので購入…で、期待通りの内容。日本に住みながらもアメリカ企業の文化にどっぷり浸かってアメリカ人(&あっちこっちの国の人々)とソフトウェア開発の仕事をしている自分としても、「ああそうだよね」とうなづくところが多く、アメリカに移り住むことも含めて今後のキャリアアップ等を考える上でとても参考になった。
就職活動から社内での効果的な立ち回り方、転職活動、キャリアアップ、コーディングテストの実践的な突破方法や、子供の言語教育などなど、極めて現実的かつ実践的な内容に終始していて、非扇動的なガイドブックといった雰囲気。日本ではIT土方なんて酷い表現もあるけど、アメリカではソフトウェアエンジニアが厚遇されている現状があり、かつプロフェッショナルとして要求される言語の壁についても他の職業に比べると一番くらい低い職業であるという点は著者の意見には大いに同感。
アメリカの企業文化やドライな人間関係、パフォーマンス評価のやり方やレジュメの書き方、それに給与交渉などについてのノウハウなどなど…ソフトウェアエンジニアに限らず、外資系企業で働いている日本人や、外資系企業で働こうとしている日本人にとっても幅広く役に立つ情報が詰まっていると思う。
ボリューム感からするとちょっと高いなと思ってしまう本だけど、内容の濃さや鮮度という意味では間違いないものだと思うので、アメリカを目指すにせよドメスティックに生きるにせよ、ソフトウェアエンジニアとしてのキャリアを考える上で読んでみると参考になると思います。
ソフトウェアエンジニア・約束の地
東京のオフィスで主に一緒に働いている近隣のチームには、エンジニアが10人くらいいます。
出身は、ヨーロッパ圏、アジア圏、アメリカ圏と多岐にわたり、ほぼ全員の国籍が違いますが、ひとつだけ共通しているのは「優秀かつ経験豊富なエンジニアで、どこでも働く能力を持っている(そして今は日本に住んで仕事をしている)」ことです。もう少し広い範囲で周りのエンジニアを見回すと、同じようにバリエーション豊かなメンバーが揃っていて、ネイティブな英語人はマイノリティーであることに改めて驚きます。
日本人だったり、日本人の奥さんと結婚したり…というメンバーも数名いますが、同国人同士で結婚したりしていて、日本という場所にこだわったわけではなく、単純に「稼げるから」とか「面白いポジションがあったから」とか「世界中動き回るのは楽しそうだから」といった理由で東京で働いてるメンバーが多いようです。
不況に苦しむヨーロッパ圏では優秀なソフトウェアエンジニアを雇う企業も限られていて、例えばアイルランドのように政策的にグローバル企業を誘致している国にはたくさんのIT企業がEUの拠点としてそこに群がって、そこで発生する雇用に引き寄せられる形でヨーロッパ圏のエンジニアがそこに住み着いて…という構図があります。いかに高い技能や経験をもっていても、自国にいたら専門知識を活かすチャンスがなく、マックジョブにしかありつけないという現実は、これらの国から多くの若者をEU圏の「稼げる国」に旅立たせる要因になっています。実際問題、彼らの話を聞いていると、日本はエンジニアにとってまだまだ恵まれた環境なんだなということに気づきます。
とはいえ、南欧や東欧の人間からすると、アイルランドでの生活や天気は面白みに欠けるようで、そういった面々はアジアやアメリカ、それにオーストラリアなどといった国に目を向けることが多いようです。
**
対照的に、シリコンバレーのオフィスの様子を見る限りだと、「若くて優秀なエンジニアには驚くほどインド人や中国人が多い」という印象があります。おそらく、これは祖国を出てアメリカに留学し(または両親世代がアメリカに移住してアメリカで育ち)、大学ないしは大学院を卒業した後の数年で無事にソフトウェアエンジニアとしての仕事を手に入れて、キャリアを作って行く過程のアジア圏の若者がソフトウェアエンジニアとして働いているケースが多い、ということなのだろうと思います。
アメリカのエスタブリッシュメント層に食い込むことは出来なくても、最先端の業界で一定レベルの成功を収めることができれば移民一世または二世世代として満足のいく生活を営むことができる(そして子供にはそれ以上を求めることができるかもしれない)というわけです。
ベイエリアでのソフトウェアエンジニアの給料の高さは地元住民との軋轢を生むほどにエスカレートしていますが、この傾向はしばらく続くような気がします。ソフトウェア産業ってプログラム書く人だけでできてるわけなくって、厄介な性格(なことも多い(笑))プログラマーの群れをまとめることができる(杞憂な才能を持った)マネージャーだったり、ビジョンを語れる経営者なりが必要になるわけで、そういう人間が集積している場所は世界にそう多くはない。
もちろん、高いエンジニアの給料を嫌って脱シリコンバレーをしていく動きもあるでしょうが、ネットの世界のサービスはなんだかんだ言って社会的な自由度・柔軟性が高いアメリカが先進的なことをやっていることが多いですし、カルチャー的に自由なことをやらしてもらうことができるカリフォルニアを拠点とするメリットは簡単には覆らないと思います。特に、これからのIT企業は社会インフラとの繋がりも含めた形でサービスを提供していくことになっていくことが予想されるので(自律運転、スマートホーム、モバイル通信…)、ますます「その場所にいること」が余計に大切になってくるんじゃないかという気さえしてきます。
**
昔から日本のソフトウェアエンジニアが目指す場所として「シリコンバレー」というのがありましたし、今でもそういった空気はありますが、今の会社に入ってその本当に意味が分かったような気がします。
ま、自分がそれを目指したいかというと、必ずしもそうは思わなかったりするわけですが…。
高度人材ポイント制のビザのルール変更
移民に頼らなければ人口減は防げないとかなんとか議論されている日本ですが、いわゆる高度の専門職(Highly Skilled Professionals)については既にポイント制で評価して、一定年数以上滞在している外国人には居住ビザの発給を行っています。で、このビザ発給に必要な年数を減らして、高度人材の日本への定着を促進する動きがあるようです。
続きを読む
ソフトウェアエンジニアの英語力
「日本語が亡びるとき」...という本があります。この本で、著者は言語を以下のカテゴリーに分けています。
- 現地語: ひとつの言語圏で日常的に用いられている言語。
- 普遍語: ひとつの文化圏で普遍的に用いられている言語。
- 国語: 近代国家の誕生と共に発達した「ひとつの国において現地語が普遍語に昇格した」言語。
前に書いた書評から引用すると、
例えば、中世/近世のヨーロッパではそれぞれの地方で使われている現地語(ヨーロッパの各種言語)とは独立して聖職者や学者達によって「読まれるべき言葉」を残すために使われていた普遍語(ラテン語)が存在しており、この「普遍語」を使いこなすのは限られたエリート達だけであり、彼らは二重言語者であったということができる。この構造は中華文化圏でも同様で、漢文という普遍語にアクセスできる文化人は日本においても常に一部の上流階級や僧侶に限定されていた。
この状況が崩れたのは近代国家の誕生に伴う「国語」の発生で、ひとつの国家の中で「読まれるべき言葉」が蓄積・活用されるに伴って「普遍語」の役割の一部を「国語」がまかなうようになった。
さて、2017年(あるいはもっと前から)の現実として「インターネット文化圏では英語が普遍語としての地位を確立している」と言えると思います。何かしらのプログラミング言語やフレームワーク、それにサービスを使うにあたって、一次情報がほとんどの場合において英語のみに集約されており、かつソフトウェア開発に関するコミュニティーレベルでのコミュニケーション(RFC、StackOverflow, etc)も英語によるものが支配的になっている現状を考えると、中世/近世的な言語構造に近い状態にあると言えるのではないかと個人的には思います。
例えば、2016年に話題になった記事で、こんなのがありました。
英語ができれば優れたソフトウェア開発ができる、とは思いませんが、英語の読解力やコミュニケーションスキルによってインターネット上のソフトウェア開発に関する情報へのアクセシビリティが飛躍的に向上することを考えると、日本語の情報リソースに限定してソフトウェア開発をするよりも、ソフトウェア開発の生産性が著しく向上する可能性は大いにあるのかな、と感じます。
と同時に、日本語でのソフトウェア開発に関する情報も(一定のディレイを伴って)、多くの場合において十分と言えるレベルに豊富であり、多くの本が翻訳されたり、リファレンスやチュートリアルが日本語化され続ける限り、一定レベルの情報へのアクセシビリティは確保され続けるのではないかと思います。
**
日本の外に目を移して非英語圏のヨーロッパ人の同僚達の話を聴く限り、彼らはインターネットやソフトウェア開発に触れ始めた当初から、母国語での情報収集やコミュニケーションに期待できなかったため、ネットやソフトウェアに関しては英語を使わざるを得なかった…という現状が見えてきます。そもそもインターネット・ソフトウェア技術の技術ターム(例:TCP=Transmission Control Protocol)の大半は英語で、母国語でコミュニケーションをするにしてもいちいち母国語に訳したものを使うよりも、英語の呼称をそのまま使ったほうがはるかに効率的で、しかも他の技術タームとの統一性があります。
実は、これは自分が高校時代に英語圏の高校に転入して、はじめてまともに数学や物理と向き合った時に感じたことでもあります。日本語に翻訳された単語はどこかしら苦しさが残っている印象があり、日本語で何かを学んでもアウトプットが英語である限り再翻訳が必要になると同時に、他の単語との繋がりも悪く、(持ってきていた)日本語の教科書は早々に諦める必要がありました。
例えばですが、v=atという式があったとして、これを
v = Velocity
a = Acceleration
t = Time
と覚えられるのと、
v = 速度
a = 加速度
t = 時間
として覚えるのでいうと、前者の方にメリットがあるように感じます。これらの基本的な概念には直感的でわかり易い日本語訳が存在しますが、その他多くの単語と絡んでより複雑な概念の理解を進めていった時に、言語同士の繋がりそのものから直接的に意味を理解できることには圧倒的なメリットがあります。
**
「日本語が亡びるとき」の言語カテゴリーにおける普遍語を流暢に操るインターネットエリート層とも言える(実際、ソフトウェアエンジニアとして特別に優秀)人たちですが、こういった層が母国語コミュニケーションで技術の話をしなくなることは、その言語を話す人たちの普遍語学習のモチベーションを高める効果があり、ますます英語でのコミュニケーションが興隆する、というサイクルが出来上がっているように思います。
外資系企業のソフトウェアエンジニアの、日々の業務での英語コミュニケーションという観点からみると、社内のドキュメンテーションは全て英語で、コードレビューも当然ながら全面的に英語だったりするので、非ネイティブだろうと何だろうと、技術に関する議論で英語が使えないのは論外という風潮はあります。それと同時に、ある程度の技術レベルの持ち主で、義務教育レベルの英語を学んでいる人であれば、簡潔に伝えるべきことだけを(多少間違えていても)意味が通じるレベルで伝えれば、内容がしっかりしている限り全く問題はない、ということも確かだと思います。
そういう意味で、ソフトウェアエンジニアの世界というのは、すでに多くの技術タームが英語化しているのと同時に、(ネイティブ・ブロークン含めた)英語でのコミュニケーションが標準化しているので、仕事を英語を使う環境としては敷居は低いのではないか、と個人的には思います。