読者です 読者をやめる 読者になる 読者になる

Skyland Ventures tech ブログ

渋谷のVenture Capital Skyland Venturesのいま一番イケてる投資先、nanameue,IncとKaumoの共同技術ブログ

横田、インターンやめるってよ。(インターンで学んだことのまとめ)

nanameue, Inc. でインターンしています 横田です。

なんかどこかで聞いたことのある表題ですが、 この度は私、横田はとても悲しいながら弊社のインターンシップを12月末を もって辞めます。

自分が一番最初にこのブログにかいた記事:エンジニアインターンするのに英語が必要だった3つの理由 - Skyland Ventures tech ブログ

このブログを通して、インターンしていて感じ取ったことを共有したいと思います。

と書いたので最後は今後、インターンシップをするだろう人などのためにも この6ヶ月のインターンシップで自分が学んだことや思ったことをブレストして分類してみました。 その幾つかをピックアップして詳しく書きます!!

(*すべて僕の意見なので賛同しかねる人もいるでしょうが、それはそれで議論できたら嬉しいです!!)

コミュニケーション

  • 論理的に話す力が仕事するにあたって必要だということ
  • 電話対応をまなんだこと
  • いかに社員さんと仲良くなるがインターン生には大事だということ
  • 業務中で必要のないのコミュニケーションは最低限にすること
  • 外国人の人と一緒に働ける程度の英語はやはり必要だということ
  • 人の話は最後まで聞くこと

論理的に話す力が仕事するにあたって必要だということ

なにか問題が発生した時に、インターン仲間やエンジニアの先輩とどう解決するかを議論することがたくさんありました。 議論中に自分がいいたいこと、いってることが上手く伝わってないことがよくあって自分は論理的に話して人に納得してもらう、説得するのが下手くそであると気づきました。

生まれて20年間自分どちらかというとお喋りが好きでその場の状況などでピンときた冗談をよくいっておもしろい(?)・話するのが得意だと思っていましたがビジネスシーンでの論理的な会話という点では下手くそで人を説得できないという事実にすごくがっかりしました。

今、思うとまったく自分はプレゼンテーションなどは除いて、 即時発生する論理的な会話が必要となる場で会話する機会、教育、またその練習 をしていなかったのです。しかしビジネスの現場ではそれが必要とされているので 今後、本を読んだりして論理的な話し方の知識・理論を頭にいれて、なにかしらの議論する場に 自分を置いて実践して少しでも論理的に話す力を習得していくつもりです。

いかに社員さんと仲良くなるのがインターン生には大事であるということ

ベンチャーでのインターンに最初に来た時は、インターンしているというよりは ただオフィスにいて会社の技術本をつかって勉強してるとすごい簡単な仕事をしているという感じでした。 なにか、ただ放置されているような感じがしました。このフェイズでつまらない、意味ないとやめる人も何人か見ました。

自分のあとに他のインターン生が入ってきて同じように会社の端の方で勉強してるのを見て、 自分の以前と重ねた時に、このフェイズはインターンの最初の壁であって、当たり前のことなんだなと分析しました。 その理由は

  • ベンチャーはとにかくやることが多いので、自分のリソースをガッツリさいて教えるほど皆さんはヒマじゃない。
  • 会社の文化に馴染めるかどうかがわからない状態では仕事を任せることはできない。
  • 仕事を降るのにも会社でつかっているツールをその人のために準備、使い方を教えなければいけないのでそのコストを割くぐらいの信用がない。

だからです。とにかくまず仕事を貰えるくらいの信用がないとこのフェイズをこせません。そのために自分がしたことは

  • とにかく毎日会社にいく
  • なにか仕事ないですかと聞きに行く
  • Slack などコミュニケーションツールとかで存在感だす。

インターンの最初のころだと責任というものがなくて、会社に行く動機は 自分のやる気のみです。なのでも少しでもこのやる気がなんか自分の思い描いた インターンとちがう、意味があるのだろうかと思うと自分のやる気が削がれて 会社に行きたくないと思い出してしまいます。

しかしそれでも毎日会社にいって安定して会社に顔出すことによって気まぐれでランチにつれてってもらったりして、 いろんな社員さんと喋ったり、何か雑用ないかと仕事を聞いたりしていたら、 いきなりポーンと会社の利益になるような仕事を頼まれたりしました。 そして会社のコミュニケーションツールにいれてもらってがんばって存在感を出しました。

今でも覚えてるのがnanameueの投資家のSkyland Venture の木下さんが 会社に来てインターン初期に言ってくれた 「まず会社に行くことが好きにならないとダメ」 という言葉の意味が今、振り返るとよく分かる気がします。


エンジニアリング

  • アプリをリリースするフローを学んだこと
  • ITエンジニアには英語が必要だということ
  • 聞く方が早い、しかし自分で探すのも大事だということ
  • オブジェクト指向など学校で学んだことがより具体的に理解できたこと
  • コードを読むことが大切なこと,また素晴らしいコードを読むのはもっと大切なこと
  • エラーを可視化することがとても大切なこと
  • うまく外部ライブラリを使いこなすのが大事だということ
  • エラーにぶち当たった時にすべての値を見るぐらいでデバッグすること
  • gitの使い方とチーム開発の仕方が少しわかったこと。
  • プログラミング言語はあくまで目的を達成する手段であること
  • 一つのプログラミング言語が他のものを勉強するのに役立つのが本当だということ
  • エンジニアとして海外ではたらく方法
  • ブログを書くということが大変だということ

アプリをリリースするフローを学んだこと

nanameueでインターンを終わったあと何か自分でアプリをリリースしてみよう と考えていますが、もしなんの前提知識もなしにアプリをApple Storeからリリース することを考えたら絶対に無理だと思います。

追加・変更する機能の仕様を考える -> (バックの人にサーバ/APIを頼む) -> 実装 -> テスト -> デバッグ-> リリース

このアプリ開発の際の一連のフローを本とかで読んで、ただこのフローの概念を知識としてわかったのではなく それぞれのフローの中ににある体験しなきゃわからないことを体験できたのはとても貴重で、 今後どうやったらアプリをリリースできるか/すればいいかというのが具体的に自分の頭の中に描けれるようになりました。 これはインターン前には検討もつかなかったので、インターンして、とても良かったうちの一つであります。

オブジェクト指向など学校で学んだことがより具体的に理解できたこと

終電で家に帰ったあと、どういうわけか家の本棚にあったJavaプログラミンレッスン の本を読んでみました。これは一年前に買った大学の教科書でその授業が終わったあと 放置していましたが、読んでみたらビックリ。理解度がガクンと上がっていた。

例外、スレッドの概念、インスタンス、オーバーライド、継承などなどObjective-C の教科書ではなかったけど、それぞれについてnanameueのアプリの中での 具体的なコードとその使い方などが頭に浮かび上がってきました。 これがCEOの人がインターンする前に話した「大学戻ったときが授業の理解度が違うよ」 というやつなんだなと実感しました。

コードを読むことが大切なこと,また素晴らしいコードを読むのはもっと大切なこと

インターンをする前までは、自分が書いたコードとそのコードを書くために検索して もってきたサンプルコードと授業でアルゴリズムの勉強をした時に先生が見せてくれる コードしか見たことがありませんでした。何か世の中にプロダクトとして出回っている コードを見るのもはじめてでした。初めて複数のファイルが複雑に絡みあったコードを見たのです。

最初はコードを見てても全く意味がわからないことがたくさんありましたが、メソッドの定義や 継承前のクラスなどコードの中の深いそうを一つずつ見ていって、そのコードの意味を把握する という行為は一気に自分の技術力をあげたと思っています。しかも、うち会社のコードは素晴らしいの でコードを読むのに慣れてきたら、初見でも大体の意味は把握できました。自分も他の人が 簡単に理解できる素晴らしいコードを書かなければいけないというの深く意識するようになりました。

今の段階で、今後の自分の開発に参考になるような素晴らしいコードに触れられたのは とても貴重な経験になると思っています。そして他の人のコードを読む大事さをわかったので 今後はgithubとかのオープンソースのコードを読んでいこうと思います。

うまく外部ライブラリを使いこなすのが大事だということ

pod installで簡単に外部ライブラリをインストールできますね。インターンを通して 感じたのは一つのプロジェクトはすべてが自分で書いたコードではなくて、 たくさんの外部ライブラリがつかわれているんだなあとわかりました。 オープンソースの外部ライブラリは過去に作った人が残した素晴らしいリソースです。

このおかげでベンチャー企業、また個人の人がより少ない時間、コードで 素晴らしいものが作れることがわかりました。なのでエンジニアはコードを書くだけではなく 目的を達成するために適切なライブラリを探して、選んで、仕様を読んで理解して自分の コードに上手く合わせて使うという力も必要なんだと感じました。

エラーにぶち当たった時にすべての値を見るぐらいでデバッグすること

インターンの中盤、アプリをつくっているときにどうしてもわからないエラーが起きました。どこでエラーが おきてるかも検討がつきませんでした。そこで会社のエンジニアの人に質問しました。

先輩エンジニア: 「これは画像を選ぶ場所だからこのメソッドをみてって…  (中略…) そのインスタンスの値がnullなのかもしれない。ここて値がちゃんと入ってるの?」

自分: 「えええと…..多分あるんじゃないすかね」

先輩エンジニア: 「『あるんじゃないんですか』」て適当に示す言葉は今後いっさい言わないでほしい。コードの中は数字で示しさなければならない。すべてプリントして値をとる勢いで。」

とても穏やかな先輩なのですがとてもきついトーンで怒られました。 あとで聞くとこの先輩もこの会社の入りたての人に同じようなことをいわれたらしいです。 多分、今後プログラミングをしている限り、この言葉は一生忘れないと思います。

プログラミング言語はあくまで目的を達成する手段であること

よく大学とかで「Java, C , Ruby ができます」とかいう人がいて、 それを聞いてすげえとかいってるの見たことがあります。(俺もすげぇて言ってた人間です) この言語がいい、あの言語がいい、あの言語は使いにくい、あれの言語勉強したい.. etc. でもインターンして思ったのは「どの言語が言語が..」とかの話てどうでもいいなと思い始めました。

ただやりたいこと、実現したいことのためにそれが必要だから その言語を使うという感じが最高なんだと思いました。英語と同じです。 インターン始めた時はObjective-Cなんて一回もコードを書いたことないし、 まして見たこともありませんでした。名前を聞いたことがあって、もうSwiftに 置き換わってしまうちょっと時代遅れの言語というイメージしかなかったです。

しかし、インターンしているうちに気づいたのですが、Objective-Cがどうのこうの なんて僕にはどうでもよかったです。ただエンジニアになりたい、アプリをつくりたい という目的があって、よしインターンしようとなって、そこではObjective-Cでつかわれていて Objective-Cを学ぶ最高の環境があったのでObjective-Cでコードを書きました。 もしこれが他の言語だったら、他の言語になっていたでしょう。 あくまで目的を達成するものであって、固執するものではないなと。

別に新しいものに移るのを否定してるわけではありません。 たとへば、自社システムは使いづらいうことで、変えようという事になりました。 タイ人のめっちゃ優秀なうちのエンジニアの人がその変更を担当していました。 僕がそのシステムを結構使っていたので仕様について多く話し合うことがありました。

彼が開発していて、なんの言語かと聞いたらelixirでphoenixというフレームワークを 使っていると答えてくれました。あまり書いたことないけど、前のシステムに使っていたruby on railsより10倍早いからと 電子書籍のドキュメントを見ながら書いていました。 彼のような目的をもって言語を使って習得するという姿がかっこ良くみえました。

いつかプログラミングスキルなどを聞かれた時に「Objective-Cをつかってをあるアプリ作りました。 これがそのアプリです。」といえるようになって実績をみせれるエンジニアになりたいと思いました。

エンジニアとして海外ではたらく方法

うちの会社に最近はいってきたAndroidiOSエンジニアのタイ人の人と仲良くなって お話する機会がありました。彼が日本にきた理由は海外で働きたかったからであり、 自分もいつか海外でエンジニアとして働きたいと思っていたので自分のロールモデルに なると思いました。そして、海外ではたらくにはどうしたらいいかと質問をしました。 彼が答えたのは

「エンジニアで海外ではたらくには4つが必要だ。それは

  • Github
  • LInkedin
  • 英語で書く技術ブログ
  • 自分の実績をのせるポートフォリオサイト(このサイトも自分で作る)

そしてこれらで最大限に自分が優秀であるかのように見せかけることだ。 そうすればLinkedinや公開しているメールアドレスにリクルートのメッセージがたくさんくる。 これはエンジニアみんながやっていることだ。」

LinkedInはあまり日本人がやるイメージはないですが.. 彼はみんなが知ってるような会社からもメールが来ていたらしいです。

優秀であるように見せかけるとかとか言ってたんですが彼はGitHubでThaiのObjectice-Cのスター数で1位のエンジニアで実際に優秀なんですが日本人みたいに謙遜していますw


仕事一般

  • インターンにフルコミットできるのが大事だということ
  • 会社には探せばいくらでも仕事があること
  • 仕事は確認するまでが仕事だということ
  • 単純作業のなかでも改善や効率を考えてみること
  • タスク管理が重要だということ
  • 仕事をフるというのが大変だということ

ベンチャーではフルコミットできるのが大事だということ

このインターンの中で後悔していることは、自分がインターンにフルコミットしたと言い切れないとうことです。おおげさですが自分がインターンに死ぬほど集中したかというそうとは言い切れないのです。大学の課題や他のバイトやたくさんのタスクをこなして疲れたなど言い訳に業務を超えた努力がとても少なかった。実力がないインターン生なのに土日とかにコードに向き合う時間も少なかった。仕事が忙しくなって、コードが書けない時が続いた時に気持ちを切らしてしまった。自分のインターン生活を最大化できなかった。

常にサービスのことを考えているCEOの人や社員さんがもっているくらいの情熱をインターンに注げなかった。

せっかくインターンするのなら週五で、インターンに支障がでるようなもので断てれるものは断てるべきであると思いました。週五いれば社員さんも安心して仕事をフれるし信頼が増えます。土日とかも社員さんが来ているときに顔をだして評価を上げる。そうしてもっと技術的な仕事をふってもらえるようになる。

こういう風にブログ上で書くのは容易いけど、そう簡単にフルコミットするのは実際やってみて精神面、身体面的に難しいことが分かりました。

自分があまり要領がいい人間でないのが理由かもしれませんが、 フルコミットして自分のリソースをすべてつぎ込むくらいの覚悟がない人間じゃないとベンチャーでのインターン、まして起業などできないと感じています。

仕事は確認するまでが仕事だということ

自分ではちゃんとやったつもりだったが実際はできてなくて怒られることが多々ありました。 社員さんになぜ確認しないんだとめっちゃ言われました。当たり前のことなんだけどできない自分がいました。 人間慣れてくると確認しなくなります。その確認しなかったせいで会社の収益に損失がでます。 この時の焦り度は半端無かったです。今後、仕事するときにもずっと頭の中に入れとくつもりです。

仕事をフるのが大変だということ

僕はインターンを始めた当初は自分は最年少で、一番会社にいるが短いのと 大した仕事は任されていなかったので「仕事ください、仕事ください、シゴトクダサい」 と元気よくいってればよかったのですが、自分の後にインターン生が入ってくるとき、 自分が仕事を教えたりしなければいけません。この時に仕事を教えるのにも説明したり 、準備するコストがあるのに気付きました。

ただ闇雲にこれやってとかいっても相手はできないですし、何しろ相手に不信感を与えてしまいます。 しかも相手が年上だったりして億劫になったり、自分でやった方が早いとか思って全然仕事をフったり しませんでした。しかしこれじゃ、自分がタスクを抱えこんで爆発するし、後輩の人は 仕事が一向に仕事ができないです。

上手く会社のためにも自分のためにも仕事をフるスキルも必要だと感じました。 こういうのは何らかの組織に属していないとできないので大学にもどったあと何らかの組織に所属しようと思っています。


考え方

  • 仕事を受け取ったときに、しっかり考えなければいけないこと
  • 時間がいかに大切だということ
  • インターンの意味をしっかり考えなきゃいけないということ

仕事を受けった時に、しっかり考えなければいけないということ

インターンは始めたときの最初のステップは先述のように、とにかく社員さんと 仲良くなって信用を得ることです。この時に貰える仕事などは、インターンしたて で会社のことがあまりわかってなくてもできるような仕事なのでとりあえず、 仕事をくれくれ星人になって頑張って仕事をしました。

そして信用を得て会社になじんできたら次のステップで、いろいろなタスクがいろんな人から もらえるようになってきます。自分があるタスクをしているのにまたタスクが来て となりすごく忙しくなってきてパンクしてしまいます。遅かったのですがインターン終盤になって とんでくるタスクに対する対応がやっとわかるようになってきました。

  • タスクが来る
  • そのタスクをしなければいけない理由を聞く -> 必要がなければ論理的に指摘してみる。
  • これが自分がやるべきかを考える -> 必要がなければ仕事の理由を説明してフる
  • いつまでにやるかを聞く/考える -> いまやる必要がなければまず保留して To do に書いとく

タスクが来てまず理由を聞くのですが、これで必要ないタスクをまずシャッターします。 基本的に、社員さんが意味のない仕事をフることはないんですが…..。またここで理由を聞くに はもう一つの側面があります。社員さんが説明が少ない状態で仕事をフってきたり、唐突に思いつた タスクが振られたときに、そのまま理由を明確にしないでタスクを引き受けて仕事すると、 理由、意味のわからない仕事をやることになり、これより苦痛なことはないからです。

このタスクが会社のためにしなければいけないと判断した時には次にまずこれが自分をやるべきか ということを考えます。自分じゃなくてもできて、仕事をフる相手がいるのなら仕事の理由を説明して 納得させて仕事をフります。この時にも論理的に話す力が必要になってきます。

自分がやるべきとなったときは、まずこれはいつまでにやるべきかを聞く/考えます。 もしこれが今やらなければいけないことならTo doに日付を書いといて、今やっているタスクに集中します。

これが働いてて自分が考えたタスクの対応の方法なのですが、こういう風に頭で考えても 実際にうまくいかないものです。インターン生という立場上、 会社の一番下なので仕事をフる相手がいなくて自分がやるしかない状況などがたくさんありますから。

時間がいかに大切だということ

大学でよく社会人の人に 「働いたら勉強したくても時間がなくて勉強できないから今のうちに勉強しなさい」 といわれたのですが、インターンをして実際に働いてみて本当にこれに賛同します。 大学にもどったら一生懸命勉強します。また自分のエンジニアになる勉強もします。 今まで怠けててごめんなさい T T。

インターンの意味を考えること

ここでいうインターンの意味はもちろん自分が成長したい!エンジニアになりたい! とかいった自分からみた意味も大事なのですが、会社からみたインターンの意味も考えなければ いけないということです。この前記事でインターン生に名刺のエクセル入力をさせたら2周間で やめたというものがありましたが、僕が思うのにそれが会社からみたインターンの意味を 考えなかったからだと思います。

大企業などのインターンシップなどは優秀な人材をみつけるという意味があるので、ものすごいインターンシップにお金がかかっていて, なんか新規事業立案とかUX改善してプレゼンテーションとか、いかにもすごいことをやらせてもらえる感がありますがベンチャーは違います。 (インターン前に実力があれば話は違いますが..)

会社の人は「わざわざコストを払って教えてあげていて、その対価として会社のために働いてもらう」という意識で、 一方、ベンチャーインターンをしようとする人は「インターンは会社のためというより自分の成長のため」というギャップが あるのでさなんか雑用みたいな仕事が来た時につまんない、意味のないとかいってやめるんだと思います。 世の中ギブアンドテイクでビジネスは利害関係で動きます。なので相手の利益が何かを考えなければいけません。


プロダクト

  • カスタマーサービスがとても大変だがサービスそのものではないがとても大事であること
  • サービスは開発だけではなく、その後の保守・運営も大事だということ
  • アプリが広告でどのようにマネタイズしているかということ
  • アプリ開発会社ではASOがとても大切であること

カスタマーサービスがとても大変だがサービスそのものではないがとても大事であること

現在、主にカスタマーサービスを担当しており、引継ぎのためにカスタマーサービスのマニュアルを 作成していますが、カスタマーサービスを考えれば考えるほど、もはやこれは役職を越して職業だと思えてきます。

カスタマーサポートはユーザーと会社が直接つながるとても大事な窓口です。ユーザー様から来るお問い合わせのメールへしっかり対処するのがUXの向上につながりますし、ユーザー様からの新しい気づきを得て新しい機能の開発に役立ちます。サービスの規模が大きいとお問いわせの量も莫大な量になるので効率よくカスタマーサービスの業務を回すのかも考えなければいけません。

いやー、カスタマーサポートて本当に大変で、しかも大事です。実際ににやってみてわかりました。 メルカリの社員の60%がカスタマーサポートというのもうなずけます。

サービスは開発だけではなく、その後の保守・運営も大事だということ

アプリは開発するのがやはり花形なのですが、リリース後の運営の方もとても大事 だということが分かりました。 ユーザーがアプリを使っている時に管理されていない ひどい状態を見る -> アプリをやめる -> 広告を診てもらう機会が減る -> 会社に収益が下がる

となるので会社の収益に直結する問題なので、リリース後の管理がとても大切であること このインターンでサービスの管理をしてわかりました。

アプリ開発会社ではASOがとても大切であること

SEOという言葉は知っていましたがASOという言葉はインターンして初めて知りました。 ASOはアプリストアで検索されるようにしたり、ランキングを上位にもっていって 自社のアプリをダウンロードしてもらうようにする対策なのですが、最初はあまりピンと きませんでしたが、うちの会社がランキング上位に入っていく過程をインターンで経験して めっちゃ大事だと思いました。

ランキングが上に行けば行くほど売上もものすごくあがりました。 ランキングが10以内に入るかどうかでこんなに売上が違ってくるものなのかも実感しました。 アプリがランキングの上位に入ったことで一ヶ月で売り上げが1000万円ちかく伸びたのを目の当たりにしたのははすごい経験でした。 その時にメンバーの人と喜びを共感したのとインターン生でしたが夏のボーナスをもらえたのもこの人生で忘れないとおもいます。

まとめ

インターンして学んだことと思ったことをここにまとめてみました。 時間の制約があるのでもっと書けましたが自分が印象に残っていることだけまとめました。それくらい、沢山のことを学びました。この場を借りてnanameueのメンバー全員に感謝の意を示したいと思います。6ヶ月の間本当ありがとうございました。このブログの内容が次来るインターン生のためになったら幸いです。この記事を見てnanameueに興味をもった人は-> nanameue

また自分に連絡・ご意見・質問がある人は -> Facebookページ