1
/
5

Socket インターン体験談

概要

私は高校卒業してすぐに Socket という会社でアルバイトを始め、約2年間働き続けました。なので厳密にはインターンでは無いのですが、インターン体験談と書いたほうが分かりやすいと考えてこのようなタイトルにしています。

また、Socket は私が働いて2年経った頃に Supership という会社に合併吸収されましたが、働いていた期間は恐らく Socket の方が長かったので「Socket インターン体験談」というタイトルにしました。

( Socket に居た時の思い出の方が強く残っているということもあります )

この記事では私が Socket でやったことや学んだことについて書きたいと思います。

目次

・入社した経緯

・やったこと

・学んだこと

・インターンの感想

・今後どうするか

・最後に

入社した経緯

私は中学三年の頃にプログラミングに出会い、その後情報系の高校に進学して更にプログラミングの勉強を行いました。当時は自分の技術に自信があり、このまま世の中に出てもやっていけるんじゃないかと思っていました。しかしその反面、自分の技術がどこまで社会で通じるのかという疑問と、更に自分の技術を高めたいという思いが強まり、一度プログラミングのアルバイトを経験したいと思うようになりました。

そこで Twitter のフォロワーさんから教えて頂いた Wantedly を利用し、合計で6つの企業さんに面接を申し込みました。その結果、採用して下さったのは Socket ともう1社ありましたが、Socket の面接をして下さった奥田さんという方と生内さんという方の価値観に非常に魅力を感じ、Socket でアルバイトとして働くことに決めました。

やったこと

初期

Socket は Rails を使う会社でしたが、自分は当時全く分からなかったので、まずは Rails チュートリアルという学習サイトで実際に手を動かしながら Ruby と Rails を学んでいました。また、学ぶ過程で成果を GitHub に上げることで、git の使い方も勉強しました。

Rails をある程度理解してからの仕事は基本的に簡単なもので、コードの変更はわずか1, 2行のものばかりでした。ある程度仕事に慣れてくると、変更範囲の大きい機能追加を任されるようになりました。しかし、この仕事は中々成果を出すことが出来ず、遂には機能追加が凍結されてしまいました。

この経験を通し、自分の力量を知ることと、仕事を円滑に進める為のコミュニケーションや自己マネジメントを学ぶことが出来ました 。結果的には大失敗に終わってしまいましたが、会社の先輩は叱るのではなく「何が駄目だったのか」や「何を学んだのか」ということを自分に考えさせてくれて、とても良い経験となりました。

本来なら首を切られてもおかしくない失敗ですが、それでも私の成長を見守ってくれた先輩には感謝してもしきれません。

中期

機能追加のタスクが失敗した後は自分の力量を把握しながら出来そうなタスクを Redmine から担当していき、タスクを解消してくという仕事が続きました。

そんな時、今度は他社サービスと連携するサーバの不具合を修正する仕事を担当することになりました。この仕事は一見単純に見えましたが、実際は何故動いているのか分からない連携サーバの解析や連携の担当をしている方のヒアリングが必要で、かなり難しい仕事であることが分かってきます。しかし、今回の仕事は自分の力量を把握した上で自分でも出来ると思ったので、私は引き受けることにしました。

最初はシステムを解析をしていたのですが、いつの間にか仕様の再確認を行ってシステムを丸ごと私が書き直すこととなりました。私は「仕様の再確認」という作業で色んな方とミーティングやヒアリングを行い、エンジニアはシステムだけでなく人とのコミュニケーションも重要であることを学びました。

結果として仕事は最後まで完走することが出来て、新しいドキュメント等も整備することが出来たのですが、そのサービスは Rails から Scala に置き換えることが決まってしまったので、実際の成果は仕様の再確認とドキュメントのとなりました。

ゼロから作り直したシステムが実際に使われなかったのは残念でしたが、この経験を通してシステム設計や変更に強いコードを書く技術が多少身についたのでは無いかと思います。

後期

バイト先が Supership に合併吸収され、私の参加していた開発チームでは既存の Rails システムを Scala にリプレースするプロジェクトが発足しました。私もそのプロジェクトに参加し、ゼロから Scala という一度も触れたこと無い言語の勉強を始めました。

Scala は最初は全く理解出来ず難解な言語だと感じていましたが、このプロジェクトに採用されていた CleanArchitecture や型プログラミング等を学ぶにつれて、なんと柔軟な言語なのだろうかと思うようになりました。Scala は今まで触れた言語の中では最も抽象的に記述が出来て、変更に強い疎結合なシステムが作れる言語だと思います。

そのプロジェクトで一番私が成果を出したのは、前述した「他社サービスと連携するサーバ」を Scala に置き換える作業でした。今回は仕様の再確認等は既に行っていたので、実際の作業は Scala で実装しなおすだけとなります。しかし、最初のうちは CleanArchitecture が全く理解できず、実装の仕方に苦しめられました。それでも完成させなければと思い、最初のうちはほとんど先輩に聞きながら作っていましたが、ある程度作業を進めていくと CleanArchitecture が目指しているものがある程度理解出来るようになり、一人でレビューしてもらえる状態までコードを書くことが出来るようになりました。最終的にそのシステムの移行は完了し、多くの指摘は頂きましたが無事に仕事を完遂させることが出来ました。

この仕事はアルバイトを始めて以来最も難易度が高い仕事だと思いますが、これを通してシステム・アーキテクチャの面白さや、抽象化やシステム設計の重要性に気がつくことが出来たのでかなり成長出来たと思っています。

学んだこと

学んだことは書ききれない程ありますが、主に技術のこと、情報を収集・整理する力、仕事を円滑に進める力の3つでは無いかと思います。

技術のことは本当にたくさん学ばせて頂きました。Ruby, Rails, JQuery, Node.js, Nightmare.js, React.js, CSS3, SCSS, HTML5, PHP, MySQL, AWS, Docker, Scala, PlayFramework, git, zsh, CleanArchitecture, DDD等、ここには書ききれない程あります。特に、前述したシステムアーキテクチャの面白さや、抽象化やシステム設計の重要性を知ることは一人で開発していたら絶対に出来なかったと思っているので、本当に勉強になったと感じています。

情報を収集・整理する力については、分からないことがあった時に検索したりログを確認したりしてまとめた情報を Qiita Team に投稿して先輩にご教示を頂くということを繰り返すことで、現状何が問題点で何が解決出来なくて悩んでいるのかということや、自分に必要な情報は何で必要で無い情報な何かが理解出来るようになりました。このスキルはエンジニアにとって非常に重要であると考えており、学生のうちに学ぶことが出来て良かったです。

仕事を円滑に進める力については、主にコミュニケーションの面で学ぶことが多かったです。私はエンジニアはコードを書いているだけでコミュニケーションは大して必要無いと思っていましたが、アルバイトを通じてこれは全くの間違いであるということに気が付かされました。仕事を進めるにあたって特定の人しか持っていない情報もありますし、技術的に悩んだら先輩エンジニアの方に助けを求めることも多くあります。これらのコミュニケーションの時に自分が伝えたいことは何か、どういう情報が欲しいのかをまとめて簡潔に質問をするというスキルが仕事を円滑に進める力であると学びました。他にも、仕事内容を整理するためにメモを取ることや、自分のタスクを分割・整理して効率良く仕事を進めることも学ぶことが出来たと思っています。

インターンの感想

私は入社当時コミュニケーションが苦手で、社員さんとも上手く会話が出来ていなかったと思います。それでも私を可愛がってくれたり、私を一人のエンジニアとして真摯に意見を述べてくれた Socket の先輩達には頭が上がりません。私がここまで成長出来たのは Socket の先輩方のおかげでした、本当にありがとうございます。

また、アルバイトをしている中で、前當さんという方が社内でLT大会を開催していました。私はこのLT大会で人生初のLTをしたのですが、この時のことは今でも強く覚えています。LT大会では自己紹介LTをガチガチに緊張しながら行ったのですが、会場にいた社員さんがジョークに笑ってくれたり、私の悩みに共感してくれたりして頂いていてとても楽しかったです。私はこのLT大会が本当に楽しくて自分の周りでも開催してみたいと思い、学生LTという現在コミュニティ人数が300人にまで成長した学生エンジニアコミュニティを立ち上げました。学生LTを立ち上げることが出来たのは社内でLT大会を開催して私にLTの機会を与えてくれた前當さんのおかげだと思っています、本当にありがとうございました。

学生LT公式サイト: https://student-lt.tech/

今後どうするか

私は Socket で働いて自分でプロダクトを生み出してみたいと思うようになりました。ですので、今後は他のインターンに参加して自分の技術の幅を広げつつ、自分のプロダクトを生み出してみようと思っています。

現在は「猫を保護する施設と里親のマッチングサービス」の開発を行っています。このサービスは現在現実で行われている里親探しや保護猫探しをインターネット上でカジュアルに行おうというサービスです。名前は CatHub で、しばらくの間は CatHub の開発に専念したいと思います。このプロダクトの開発では優秀な仲間に恵まれたので、その仲間達と共にリリースに向けて全力を注いでいます。

リリースは2018年内を目標に活動していますので、もしリリース出来たら是非利用してみて下さい!

最後に

Socket の先輩方には本当に感謝に堪えません。

何も出来なかった私を雇って下さり、本当にありがとうございました。

1 いいね!
1 いいね!