1
/
5

インターン体験記

こんにちは、去年の4月から約1年半ほどタグバンガーズでインターンをさせてもらった藤岡です。 この記事では、長い長い1年半を振り返り、「どのような勉強をしたか」「どんな成長があったか」を中心に、体験記を書いてみようと思います。

まず始めに、インターンを始めようと思った理由は、現在大学で理学部に通っているのですが、 大学で勉強している内容に興味がもてなかったため、興味の持てる別のことを勉強したいと思ったからです。 そう考えて色々やってみた結果、一番しっくりくるものがプログラムに関するものだったので、 折角学ぶならお金を稼ぎながら学びたいと思い、有給のインターンを始めることを決意しました。 その中で様々な学びがあったので、大まかな時系列に分けて紹介していきたいと思います。

0〜3ヶ月 研修期間

会社に入ってから約3ヶ月間は、研修期間として、様々な課題にチャレンジしました。 タグバンガーズはWeb開発が中心の会社で、主な言語としてはJava、フレームワークはSpringを使用しているので、まずは、Javaで課題を出していただきました。 具体的には

  • 誕生日から年齢を出力するプログラム(Java)
  • 四則演算ができる電卓(JavaScript)
  • catコマンド(Java)
  • lsコマンド・latrのオプションつき(Java)
  • chatアプリ(Java)
  • Webサーバ(Java)

の順で課題に挑戦しました。 これらの課題はそれぞれに核となる技術があり、それらについての理解を深めるという目的で、社長自らが考えてくださいました。 当時はプログラムをほぼ書いたことがなかったので、どの課題にも苦戦しながら臨みましたが、 わからないところがあったら、丁寧に、楽しそうに教えてくれたので、こちらも楽しんで学べました。 また、少し難易度の高いテーマについては、社内勉強会と称して、忙しい中時間をとって説明してくれたりもしました。 分かりやすいというのはもちろんですが、全体的に楽しそうに教えてくれたのが印象的でした。 そうして少しずつプログラムに対する理解を深めていき、約3ヶ月後からはいよいよ実務に入らせていただくことになりました。

3〜6ヶ月 iOSアプリの保守、開発

約3ヶ月経った頃には、先輩のエンジニアにご指導いただきながら、iOSアプリの保守や開発を行いました。 ここでは、現場でどのようなツールを使い、どのように仕事を進めていくのかを学ぶことができました。 具体的には、Gitの使い方・レビューの受け方・タスク管理の仕方・データベースの扱い方などです。 実際の開発現場を知れたというのは、かなり価値のあることだと思っています。 なぜなら、例えプログラムが学べる学校に通っていたとしても、開発手法については学べないと思うからです。 業務内容としては、既存アプリのバグ修正が中心でした。 学んだことは、バグを1つ潰すのにも膨大な時間がかかり、論理的に考えていかないといけないということでした。 一見当たり前のことのようにも思えますが、実際にやってみるまではデバッグの大変さを理解していなかったので、大きな学びの1つだと思います。

6〜10ヶ月 スマホアプリの開発

NativeScriptという、iOSとAndroidの両方を同時に開発できるフレームワークを用いて、スマホアプリの開発を行いました。 まず画面のモックアップを作り、その後でAPIコール部分を作りました。 このアプリは、業務用の、比較的簡単な操作しか行わないものだったので、求められる技術レベルはさほど高くなかったように思えます。 しかし、レイアウト調整や土台作りを除き、モックアップからストアでの配布までほとんど1人で作らせていただけたので、責任感もそうですが、達成感がかなり大きかったです。 また、従来はiOSとAndroidで別々にコードを書かないといけないところ、1つのコードで実現できてしまうNativeScriptというフレームワークも魅力的でした。 ここで学んだのは、アプリを作る上で大変なのは、最後の1手間だということです。 モックアップを作るときは、実際に画面ができていくので、進捗も分かりやすく、達成感も感じやすいです。 しかし、最後は完璧な状態にしないといけないので、細かいレイアウトの調整や、エラー制御などが求められます。 これらの1手間がかなり厳しく、色々な手直しが入り、正直心が折れそうになりました。 その分、リリースが完了した時の達成感は一入でした。

8ヶ月頃 Spring One参加(サンフランシスコ)

インターンを始めて約半年が経った頃、社内研修としてSpring Oneに参加するため、サンフランシスコに連れていってもらいました。 海外に行くのは生まれて初めてだったので、非常に貴重な経験をさせてもらったと思っています。 海外に行って一番驚いたのは、外人のフレンドリー具合が日本人の比ではないということです。 カンファレンスの登壇者で有名な人に、そうとは知らず声をかけてみたら、サンフランシスコを巡るミニツアーを開催してくれました。 僕は英語もまともに話せないのに、優しくしてくれて、さらに名所の紹介までしてくれるなんて、日本人の感覚からは理解ができません。 それほどフレンドリーで、紳士な人がこの世にいるということは、衝撃的でした。 また、もう1つの大きな変化としては、海外に行ったことで、日本が好きになったことです。 海外に行くまでは、日本のことを少し下に見ていて、他の国に比べてそこまでいい国だと思っていませんでした。 しかし、サンフランシスコの物価が高いというのもあるとは思いますが、全体的に日本のサービスの質の方が高く感じられました。 特に、日本の食べ物(特に味噌汁)が恋しくなった時に、日本も捨てたもんじゃないと思えました。 「おもてなし」の精神は口だけではなく、本当なんだと実感しました。

10〜12ヶ月 Webアプリ・APIの開発

WebアプリはAngularというJavaScriptのフレームワーク、APIはSpringで実装しました。 AngularはNativeScriptでも使っていたので、比較的習得が早かった気がします。 Springを本格的に触ったのはこれが初めてで、それもSpring Data RESTという特殊な部類だったので、なかなかに苦戦しました。 しかし、RESTでAPIを作ると、簡単にエンドポイントが作れてしまうので、メリットも大きいように思えました。 Springに関しては奥が深く、まだまだ勉強すべきことがたくさんあるので、今後の学習課題の1つだと思っています。

12〜15ヶ月 機械学習を用いた画像認識アプリの開発

Pythonによる機械学習のライブラリを用いた画像認識アプリを開発しました。 前々から機械学習には興味があったので、このプロジェクトが決まった時は嬉しかったです。 ただ、機械学習に興味があっただけで、具体的に何かを作ったことはなかったので、ここで実際に作らせていただけたのは大きかったです。 このプロジェクトを契機に、より機械学習に関する知識を深めたいと思い、自ら学習するようにもなりました。 その中でも、CourseraのMachine Learningの講義は大変勉強になったので、興味がある方は是非受けてみてください。

15〜18ヶ月 Webアプリ(モックアップ)の開発

最後のプロジェクトに臨む頃には、Gitの使い方やタスク管理の仕方などがある程度習熟してきて、基本的な操作は問題なく行えるようになりました。 正直にいうと、最初の頃はあまり理解せずに、GUI頼みでそれらのツールを使っており、だいぶ経ってからきちんと理解するに至りました。 月並みですが、やはり基礎は大切で、最初の段階できちんと理解しておくべきだと、振り返って感じました。 このプロジェクトでは、主にレイアウトに関する学びが大きかったと思います。 これまで直接CSSを触る機会はあまりなかったのですが、触れてみると意外にも奥深く、デザインをいじるのも楽しいと感じました。 ただ、センスがないので、いいものに触れて磨いていきたいです。

まとめ

さて、改めて1年半を振り返ってみましたが、かなり多くのことを学べた気がします。 特に、インターンを始める前の自分は、プログラムを書くことを楽しいことだと思っておらず、 将来的に必要となるスキルの1つとしか思っていませんでした。 しかし、この会社で勉強させてもらい、楽しそうに教えていただいたことで、段々と好きになりました。 そして、自分がどんな分野に興味があるのかということも、突き詰めていったことで段々と見えてくるようになりました。 この会社で学んでいなければ、突き詰めていくこともなかったと思うので、別の道を考えていたかもしれません。 そういう意味で、大きな変化があったと思います。 最後に、この会社のいいところをあげるとするならば、みんな優しいということです。 特に、役員さん達はそれぞれ違った優しさを持っており、それゆえに社内の雰囲気もいいです。 僕はあまり馴染むのが得意ではないのですが、そんな僕に対しても優しく接してくれたので、嬉しかったです。 この1年半を一言で表すとするなら、感謝以外に思いつきません。 この会社に入るかどうか迷っている方が読まれているのであれば、間違いなくおすすめです。 是非門を叩いてみてください。

Tagbangers, inc.では一緒に働く仲間を募集しています
4 いいね!
4 いいね!
今週のランキング