1留したダメ人間が、学生エンジニアバイトとしてスマホゲーム会社で働いてみて思ったこと

[Happy Elements 株式会社 カカリアスタジオ Advent Calendar 2016](http://qiita.com/advent-calendar/2016/hekk_cacalia_studio) 14日目の記事です。
担当は学生エンジニアアルバイトの @k7a です。よろしくお願いします。
技術的な内容の記事は結構他の方々が書いているので、私からは**学生エンジニアアルバイト**という立場ならではの記事を一本書かせて頂こうと思います。

# 入社前の話

本題に入る前に、**一体どんな奴が、どういう経緯で働き始めたのか？**という事を説明しておきたいと思います。

## ふわふわと生きてた話
![image](https://qiita-image-store.s3.amazonaws.com/0/97014/521c4ef9-8ff8-71da-9bc2-8cd79a2ce93c.png)

### 以前はスーパーのアルバイトをしていた
入社する前は何をしていたのかと言うと、普通にスーパーで掃除とか品出しのバイトをしながら大学に通っていました。（大学には今も在学中です）
一応情報系の学部で、適当にプログラミングを勉強して、適当にPCを使う仕事に就けたらなあという至極ふわふわした理由で進学した気がします。

### プログラミングは軽く触った程度
**プログラミングに最初に触れたのは中学生の頃**で、Javascriptを使って動的なページを作ったり、CGIのブラウザゲームを改造してレンタルサーバーを借りて運用してみたり、といった事をしていました。（当時は関数だとか変数だとかの概念すら知らず、ただ見よう見まねで弄っていたのを覚えています）
それからもちょくちょくちょっとしたスクリプトを書いたりだとかはしていましたが、**がっつりとプログラミングにのめり込んでいたという訳でも無く**、高校に入ってからはイラストやデジタルアートなど、プログラミングとは程遠い分野に熱中していました。
一応進路希望は「プログラマー」とか書いていましたが、理由としては**「体を動かしたり人とコミュニケーションを取るのが好きじゃないから、部屋の中でPCとにらめっこして生きていきたい」**なんていう極めて消極的なものでした。

## 留年してちょっと心を入れ替えた話
![image](https://qiita-image-store.s3.amazonaws.com/0/97014/2952a342-9fb2-1e6f-d3ab-a1d178d92f4d.png)

### 大学4年目で留年

そんな感じで大学3年までふわふわした生活をしていたのですが、4年目で**留年**してしまいました…
ただ、単位は割と取っていたので、結構時間に余裕ができてしまったんです。そこで、**「ただでさえ留年してしまっているのに、みすみす時間を無駄にしてしまう訳にはいかないな…」**と思い、せっかくできたこの時間を何か有効活用したい、という事でスーパーのアルバイトを辞めて、プログラミング系のアルバイトを始めてみようと思ったのが入社のきっかけでした。

### 大学がつまらなかった

少し話を戻すと、そもそも進学時に期待していた**プログラミングの勉強は大学では思っていたよりできませんでした。**一応プログラミングの講義はありましたが、あまりにレベルが低かったので時間の無駄だと思い、まともに講義を受けず、最低限の出席と課題だけこなしていました。
しかしながら、意識が低い学生だったので特に自分で勉強するということもなく、だらだらと日々を過ごしていたのですが、**留年をきっかけにそろそろ就職について真面目に考えないとなと感じ（遅い）**、同期の友人達は3年次に既に**インターン**に行っていたというのもあって、自分もインターンとかアルバイトでなんかやってみるか、という感じで、何かできないか探し始めました。

## 意外とすんなり入社が決まった話

![image](https://qiita-image-store.s3.amazonaws.com/0/97014/10b765dc-7ce3-79f6-d9b9-bf62ce299d1e.png)
そんな訳で、それからしばらく色々な会社を探して、なんやかんやで最終的にHappy Elements K.K（以下HEKK）でアルバイトを始める事になりました。
HEKKでは**Ruby on Rails**と**Unity**で開発を行っているという事で、事前に軽く勉強して、RailsでちょっとしたWebアプリを作ってから応募した所、すんなり入社が決まってしまいました。
アルバイトの場合は、それなりにできそうであれば、とりあえず採用してみて試用期間で適性を見てみるらしいです。そんな訳で、私は無事適性を認めてもらって今も働き続けられています。（試用期間で終了するケースもあるそうです）
入社したのは昨年11月頃で、現在は働き始めてからちょうど1年とちょっとくらい経った所になります。


…以上、見てもらえれば分かる通り、私は**典型的なダメ人間**です。
こういうIT系のインターンとかアルバイトって、**変態的なプログラミングガチ勢**とか**典型的な意識高い系**がやるイメージが強いと思うのですが（実際私もそう思っていて敬遠していました）、こんな人間でも働けているということで、少し親近感を持って貰えるのではないでしょうか。

# 働いてみて思ったこと

前置きが長くなりましたが、ここからが本題です。

## 若い人が多く、コミュニケーションが楽

![image](https://qiita-image-store.s3.amazonaws.com/0/97014/0a1c86e9-8be7-b3c2-922e-164274afdaaa.png)
ベンチャー系やゲーム業界のあるあるだと思いますが、やはり**若い人が多い**です。平均年齢は知らないのですが、２０代・３０代の方がほとんどですね。学生のエンジニアバイトは私含めて現在8人くらいです。
で、私の以前働いていたスーパーでもそうだったんですけど、他のアルバイトだと結構**怒鳴る社員**とか居ると思うんですが、そういう人は**一切居ません**~~（というか、コミュ障気味の人が多い）~~。
なので、雰囲気が良いというか、~~私みたいなコミュ障にとっては~~なんとなく居心地は良いです。
あと、社内コミュニケーションツールとして**[Slack](https://slack.com/)**を利用しているので、**直接話すのが苦手でもテキストで簡単にコミュニケーションが取れる**のが有り難いです。
以前のバイトではよく怒鳴る社員の人や面倒なお客さんと話さないといけないのが憂鬱でしたが、HEKKで働き始めてからはすごく気持ちが楽になりました。

## OJTという名の放任主義

![image](https://qiita-image-store.s3.amazonaws.com/0/97014/76c1d4f5-77ad-f9c9-9029-70e4c3a841de.png)
入社初日、最初に会社の諸々の説明を受けた後、配属先のチームのリーダーにチームの説明を受け、「じゃ、環境構築終わったら教えてね」と、**丸投げ**されました。
開発PCはMacなのですが、実は私はMacで開発するのは初めてだったので、とりあえず**ググる**所から始まりました。
一応「わからなかったら聞いてね」とは言われましたが、私は幼い頃から極力人に教えてもらわずに自分で解決したがる癖が付いていたので、とにかくググって自己解決しました。
環境構築が終わったら早速（簡単な）タスクを投げられて「できたら教えてください」みたいな感じで、また放置されます。**OJT (On the Job Training)**ってやつですね。（なのか？）

基本的に**手取り足取り教えてくれるなんて事は一切無い**です。細かいことは自分で調べて理解して解決する必要がありますし、慣れてきたら自身で設計も考えなければいけないようなタスクも振られます。やはりこの辺りが、基本的に言われた事をやるだけの一般的なアルバイトとは違いますね。

## 思ったより仕事のプログラミングは難しくない

上で散々「何も教えてくれない」と書きましたが、じゃあそれで苦労したのかというと、ぶっちゃけた話別に**苦労した覚えが大してありません**。
プログラミングにおいて必要な情報ってほとんどネット上に有るので、大体**ググれば分かる**んですよね。
![image](https://qiita-image-store.s3.amazonaws.com/0/97014/c0eb329e-7344-1d46-fa9c-2b99631ddb71.png)

働き始める前は、「正直自分はそんなにプログラミングガチ勢という訳でも無いし、仕事でのプログラミングについて行けるのだろうか」と結構**不安に思っていた**んですが、実際コードを見てみると**自分でも普通に理解できる**し、なんなら「ここらへんのコード、自分ならもっと綺麗に書けそうだな」と思ったりしました。なんか、**「ちゃんとしたプロダクトでも、所詮、自分と同じ人間がコードを書いてるんだなあ」**と思いました（社員さんには失礼かもしれませんが…）。自分が無駄に変な幻想を抱いていただけでもあるのですが。

という訳で何が言いたいかというと、そんなに**プログラミングに打ち込んでいなくても支障無かった**という事です。
逆に必要なのはどういうスキルなのかと言うと、色んな言語が使えるだとか言う漠然とした「プログラミングスキル」ではなく、問題に対処するための情報を収集する**「ググり力」**と、集めた情報を咀嚼する**「理解力」**、さらに断片的な情報を繋げて推測する**「応用力」**だと思います。
もっと言うと、それらのベースになるのが、PCの演算の仕組みだとかWebの通信の仕組み等々のいわゆる**基礎知識**になってくると思います。そういう意味では、大学での勉強も無意味では無かったな、と思うこともあります。

どれだけプログラミング経験が深くても、働いていると当然、使ったことの無いライブラリだったり、未知の問題に遭遇する訳で、それに対処する為には上記のような**情報処理能力**が必要なんですよね。具体的に言えば、公式のドキュメントを読んだり、フォーラムの情報を収集したりという所ですね。
いわゆるプログラミングスキルなんて、ひたすらコード書いてれば勝手についてくるので、そこを心配する必要は無いと思いました。**コードレビュー**をして貰えればさらに飛躍的に伸びるので、働きながら身につければ良いと思います。

## チーム開発を通して得られるもの

![image](https://qiita-image-store.s3.amazonaws.com/0/97014/4c32c681-6e41-447a-9ce1-303dc4b4ea0e.png)

一人で開発しているだけではなかなか得られないような経験が色々ありました。
まず始めに、開発にGithubを使っているので、必然的に**Githubでの開発フロー**が身につきます。また、開発する上ではもちろん他の人（エンジニアに限らない）とコミュニケーションを取っていく必要があるので、そういった**仕事上のコミュニケーション能力**も身につきます。

例えば、タスクを割り振られた時に、いきなりコードを書いて実装を始めるのではなく、大まかな仕様の確認から始まります。確認が取れたら、実際にどういう設計や実装方法に落とし込むか考え、それを説明し、問題ないか確認します。あるいは、軽めのタスクであればこの段階でPR（Pull Request）を出して**コードレビュー**してもらいます。レビューで指摘された点があれば修正し、再度確認してもらうのを問題が無くなるまで繰り返します。こういった経験は、チーム開発の現場でないとなかなか得られないと思います。

特に、コードレビューは本当にためになりました。自分では気付けない点を細かく指摘してもらったり、より良い方法を教えてもらったり…。それだけでなく、**「コードレビューされるから、恥ずかしくないようなコードを書かなきゃいけないな」**という意識が働いて、しっかりとコードを書く癖が付きました。
学生のうちからこういった経験が積めるのは、かなり貴重だと思います（特に都心部以外ではなかなかこういった所は無いので…）。

## 学生の間に色々挑戦してみるべきだった

![image](https://qiita-image-store.s3.amazonaws.com/0/97014/370fa4ef-efb9-9403-f935-d0b972f76de3.png)
上でも触れましたが、IT系のインターンやアルバイトはプログラミングガチ勢や意識高い系がやるようなものだと思っていて、自分でもついていけるのか不安だったりしました。しかし、今振り返ると、もっと早くから挑戦してみるべきだったと思います。
散々言いましたが、**思っているほど敷居は高くない**です。そして何と言っても、**仮に失敗したとしても許される**のがインターンやアルバイトの強みだと思います。社会人になってからだとそうはいかないと思いますが、**責任の軽い立場で色々できるのは学生の特権**で、それを存分に行使しないのはもったいないと思います。
例えば、仮にHEKKでアルバイトを始めて、試用期間で切られてしまったとしても、ショックではあるかもしれませんが、それで人生が終わるかっていうとそんな事は全く無いですよね。むしろ、エンジニアは適性が無かったということで諦めて、他の方向へ切り替えることで、結果的により良い人生を送ることができるかもしれません。
**「失敗しそうだからやらない」**のではなく、**「失敗が許されるうちに色々挑戦してみよう」**というスタンスでいると、後悔しない良い学生生活になるのではないでしょうか（なんだか自己啓発本みたいな流れになってきましたが…）。
私は卒業を間近に控えた今、**もっとインターンとかで色んな所に行っておけば良かった**なあと思います。


# おわりに - 仲間募集中

以上、大学3年までふわふわと生きてきた人間が、学生エンジニアバイトとしてカカリアスタジオで働いてみて思ったことでした。随分とダラダラと書いてしまいましたが、同じようにふわふわと学生生活を過ごしている方の心に、少しでも響けば良いなと思います。

この記事を読んでエンジニアアルバイトに興味を持った・プログラミングのスキルアップをしたい・スマホゲームアプリ開発に興味がある…そんな学生の皆さん、**カカリアスタジオで一緒にゲームを作りませんか？**
シフトの融通はかなり柔軟にきくので、大学との両立も可能だと思います。（私はそもそも留年してから入社しましたが…）
エンジニア以外の職種や、中途採用も募集中なので、是非ご検討下さい。
[採用情報はこちら](http://www.happyelements.co.jp/recruit/)