インターン生が外国人エンジニアから学んだ６つのこと

<font color="Red"> <追伸>***７００いいね　および　1万５０００PV　ありがとうございます。様々な方がみてくれてとても嬉しいです。　コメント、拡散してくれた方、本当にありがとうございます*** 
~~ 2018/7/3 16:30 更新 ~~</font>

### はじめに
僕は去年の１０月から[zens株式会社](http://www.zens.tokyo/)にてエンジニアインターンしています。しかし、６月末でインターンをやめる決断をしたので今までその経験から学んだことをまとめたいと思います。(久々にエモいの書こうかと思います。)

なんでこんな題名になっているかというと、ジョインした段階で完全リモートで参画していたベトナム人、[フランス人のエンジニア](https://github.com/SachaG)がいたり、１月からは元インフラエンジニアでRubyの開発経験が6年ほどある[ポルトガル人のエンジニア](https://github.com/goncalvesjoao)の方が参画するなど日本人のエンジニアがいない、外国人のエンジニアしかいない環境でエンジニアインターンをしていたからです。
特に僕の師匠でもある、ポルトガル人の彼からは技術のみならず、様々なことを学ばせていただきました。

それでは始めていきたいと思います。

## 1.個人でプロジェクトを持つこと
web業界のエンジニアという職業において、よく言われている話ではありますが、常に仕事の時間も趣味の時間もエンジニアリングの技術の向上が必要になるということです。当たり前ですが、技術の進歩が素早く、それに対応しなければいけないからです。仕事の場はアウトプット時間が多くを占めてしまうので、自分の時間で必ずインプットする時間、環境が必要になります。それに**一番適しているのは個人でプロジェクトを持つこと**だと彼は言いました。
そこでこれを行う上での意識する点をいくつか挙げていきます。

  - **プロジェクトは一人で行うこと**
  - **モチベが下がってしまわないように最初から大きなことをしない**
  - **そのプロジェクトには１つの目的を自分で決めてから作成すること**
  - **利用している言語のバージョンの変化に常にアンテナを貼って新機能を使って試す場所として利用すること**
  - **必要に駆られてやるのではなく自分で進んでやれる程度に調整する**

おそらく、これらの項目はできることなら全て守るべきです。守るというより意識するべきという方が正しいかもしれません。実際に僕もこれをすることでその言語やフレームワークの小さいところを理解することができるようになって来た気がします。仕事として持っているプロジェクトの歴史が長ければ長いほど昔のコードを見習ったり、そのコードをリファクタリングすることばかりが多くなってしまい、いわゆるインプットもなければ、アウトプットもなくない、作業に近いものになってしまうケースが多く存在します。これは非常にもったいないことですが、同時に仕方のないことでもあります。そんな環境の中で、成長を促すのはこういう勉強を日々している人間だけです。

## 2.職場仲間には常に謙虚であること
（これは僕の偏見ですが、）多くの日本人が一番足りてないものだと思います。
エンジニアという職業は一人で開発し、悩む時間が多い分、波に乗っているときに人に話しかけられると極度に生産性が下がってしまいます。これは仕事している以上、他のデスクワーク系の仕事も同様のことが言えるケースは多々あることでしょう。そんなとき、直接話す必要がある場合はslackで一言、声をかける程度にして、きりのいいタイミングで話すことがお互いにとっていい生産性を産むことができるはずです。直接話すことがいいとは限らないし、時間をお互いの発言を注意深く聞くことに集中してしまい、他のことができない時間は生産性が高いとは言えないケースは多いです。
もし、これができていないと感じた人は少し変えて見てはいかかでしょうか。

## 3.やめる・拒否するという選択をすること
これは僕が一番驚いたことなのですが、僕がインターンをやめる決断をした時に彼が一番最初に言った言葉は『よく言った！』という言葉でした。そのあとには「その仕事をやめる、仕事を拒否する経験は非常に大事だ。それこそ君にとってはそれはバイトもしたことがなく、初めてのインターンだからなおさらいい経験になったと思う。」と言っていただきました。
実際、エンジニアという職業は自分で好きなものを作ることができる職業である反面、プロジェクト開発ではPMから降りてきたタスクをこなすことがほとんどだと思います。そこで自分の意見をきちんと言うこと、納得ができないのならばそれは違うのではと意見すること。仕事をすることは「タスクを降ってくる人の言いなりになること」ではありません。従えばいいサービスができるとは限りません。その重要性を改めて感じた言葉でした。

## 4.休息・リフレッシュをきちんとすること
これに関しては別に特別、「外国人が〜〜」みたいなことではないのかもしれません。
僕の休憩といえば、ご飯食べたり、スマホ触ったり、椅子で少し寝たり。そんなとこです。あとは同じデスク、同じワークチェアでずっとコードを書いていきます。
しかし、ポルトガル人の彼は非常にいいリフレッシュの取り方をします。
彼は仕事中も仕事の場を変えることが多々あります。天気がいい日はバルコニーでコーディングをしたり。普段はデュアルディスプレイだけど、macbookの画面のみにしたり。体勢を変えたり、仕事場所を少し変えるとストレスがたまりにくくなり、気分が軽くなります。
詰まった時は鼻歌を歌いながら、コーヒーを入れている場面もよく見ました。僕も早くコーヒーの似合う、美味しいコーヒーが作れる男になりたいものです笑

## 5.英語はツールであること
私たちはエンジニアです。日々ググる時も英語のページを読むことなんて数え切れないほどあります。私たちの仕事環境に置いて英語という言語は、プログラミング言語と同等、もしかしたらそれ以上にエンジニアにとって必要不可欠な言語かもしれないです。
でもこれだけではありません。私たちは英語を理解するだけではいけません。同時に使いこなす必要があるのです。（この話は次の６番に続きます。）

## 6.日本のエンジニアは非常に危険な状況にあること
**これはこの記事を通して私が一番伝えたい内容です。**
今までの話を聞いてきたこと、他にあなたが知っている海外のエンジニアのことを踏まえて話をしていきます。今の日本のwebの業界では全体として、少しづつwebエンジニアと言う職業が認められて、給料も高くなっていきつつあります。実際にSNSなどで拡散されている求人ツイートを見ているとそうなっているのではないのかと感じています。それは日本のIT業界に入りたい、就職したい私にとっては非常に嬉しいことだと思っています。
しかし、そんな反面、海外、主にアジアのエンジニアを見ていると彼らは非常に優秀な技術を持っているのにも関わらず、非常に安い給料でフルタイムでコードを書き続けているエンジニアがたくさんいます。実際にベトナムのエンジニアと一緒に働いて見てそれはすごく感じます。特に最近では彼らのコーディングから学ぶことがたくさんあり、勉強になってばかりです。実際に仕事をして見て心強いと感じるからこそ、同じ技術力の日本人のエンジニアとベトナムのエンジニアの方の年収を比較したらどうなるのだろうかと。
実際、比較した時に日本人エンジニアと働くことの利益はたくさんあると思います。実際日本人向けのサービスを提供するので日本人の感性を持った人に作ってもらうこと、日本人だからコミュニケーションがスムーズ、日本に住んでるから面と向かって話し、会議ができる。色々あると思います。
しかし、今や、英語ができる奴が強い時代ではなくて、英語ができない奴は弱い時代になっています。英語ができて海外の人と仕事ができない人はもはや弱点になってしまう世の中はもう来ています。それがどんどん加速していく社会で果たして、日本人エンジニアに固執する意味はキープすることはできるのでしょうか？おそらくできません。PMが英語を仕事で使うことに抵抗がない場合は特にそうです。これから海外のエンジニアが日本にきて働こうとするケースも増えてくるでしょう。そこで私たちにできることは日本のweb技術の向上、自分を一エンジニアとして世界的に見た時の強み、弱みを理解すること、それを伸ばし、克服していくことだと僕は思います。

## まとめ
少し長かったですが、色々書かせていただきました。今回のこの記事をまとめると

- **絶対にプロジェクトを個人で持とう**
- **エンジニアとしても、一人間としてもええ奴でいよう**
- **英語は死に物狂いで頑張ろう**
- **世界的な視野を持ってエンジニアリングしていこう**

といった感じです。どれも当たり前のことかと思います。しかし、言葉にしてみると「それ、当たり前じゃん。」と思うことって実際に経験すると、うまく言葉にして伝えられないけど本当に大事なんだな。と再確認する場面を多く出くわします。ましてや人間は忘れる生き物です。それを定期的なスパンで思い出して意識し続ける必要があります。僕もこれらを定期的に再確認し、意識しながら今後の学生生活、エンジニア生活を楽しくいきていければと思います。

長かったですが、最後まで読んでいただきありがとうございました。