とある神戸大生の走り書き

主にプログラミングに関して、学んだことを走り書きとして残していきます。

サイバーエージェントのエンジニアインターン、「学生版ヒダッカソン」に行ってきた

学生版ヒダッカソン -API編-というサイバーエージェントの1日インターンに参加してきました。 せっかくなので、振り返ろうと思います。

www.cyberagent.co.jp

リンク切れした時のために詳細を下記に載せておきます。

「ヒダッカソン」とは、エンジニア達が技術を競い合うサイバーエージェントの社内イベントです。 前回好評だった「ヒダッカソン」のサーバーサイド編の内容をアップデートして開催いたします。 今回のAPI編はサービスを模したWebアプリケーションのAPIを実装してスコアを競います。 メンターとなるエンジニア社員のバックアップのなか、学生同士で点数を競い合っていただきます。 1日で開発スキルアップを図り、現役のエンジニア社員、技術、開発環境に触れることができます。

参加までの流れ

書類選考

自分が今まで作ってきたものやインターンでどのような業務を行なってきたのかなどについてWEB上で回答して、それに対する選考がありました。

面接

書類選考を通過すると、面接の日程を決めるためのメールがくるので、それに回答しました。 面接自体は、書類選考で自分が書いたことについて聞かれるという一般的な内容でした。
思っていたよりも深く掘り下げた質問が無かったように感じたので、インターンに行きたいという気持ちがあればいけると思います。

交通費や宿泊費など

インターンがあった場所は、サポーターズ渋谷でした。交通費は全額支給され、宿泊する場所に関しては、道玄坂にあるアパホテルを二泊三日で手配していただきました。(二泊三日というのは、インターン前日の一泊とインターン当日の夜の一泊を合わせて二泊という意味です。)

内容

グループ分けなど

このインターンは上記にもある通りにハッカソン形式です。
使用する言語別に1グループ5人程度に分けられて、グループごとにメンターがつくという感じでした。 全体としては、35人ほどでした。

実際何をしたのか?

一人ひとりにサーバーが用意されていて、そのサーバー上にAPIを実装するという内容でした。
言語は、Ruby・Go・Pythonなど有名どころはだいたい開発環境が整えられおり、他の言語についても自分で環境構築さえできれば、使ってもいいよという感じでした!
また、ディスプレイが用意されていたので開発が捗りました。

難易度

僕にとっては非常に難しかったです。様々な知識が足りていないように感じました。しかし、その分、他の学生の方やメンターの方に質問をしたりして、少しずつAPIが形になっていく様には非常にやりがいがありました。

スコアなどの評価基準

仕様書に記載されている機能を一つ実装し、その後動作確認をリクエストすると自動的に確認が行われて、うまくできていれば点がもらえるという感じでした。
具体的に機能というのは、ユーザーのログイン機能などです。次回、開催される時はまた違った内容になると思われるますが、全てのPOSTリクエスト・GETリクエストを実装していく感じです。

自分の実装方法

いざAPIを実装しようとして最初は、慣れ親しんでいたRailsを使う前提で環境構築などを行なっていたのですが、どうもRailsでの実装には非常に時間がかかりそうだという事が分かったので(聞いたところでは、Railsで実装できた人はいなかったそうです。)、途中でSinatraでの実装に切り替えました。 ここで初めてSinatraを使うことになったのですが、思った以上に扱いやすくSinatraに助けられました。純粋にSinatraすげーって思いました。

Image from Gyazo

結果 

前半でRailsの環境構築に時間を使い過ぎてしまったためにSinatraでの実装に充てられる時間が非常に少なくなってしまい、その結果、全く点数を獲得することができませんでした。
ですが、とても楽しく、技術的に濃い時間になりました。また、自分の足りないものが明確になったり、新しい技術に触れる場になったので参加してよかったと思います!

振り返り

Railsを使ってWEBサービスを作っていると、どうしても上部だけ触る事が多いので、より深い知識が必要な時に太刀打ちできません。これからは、Rails全体を理解することを意識して開発を行なっていこうと思いました。(自分でgem作ってみるとか)
また、せっかくSinatraを使うことになったので、Sinatraで何か作ってみようと思います。

Sinatraで作れるもので面白そうなもの募集中です!

linch.link

以前リリースしたサービスLinch(リンク)でAPI以外でSinatraで何が作れるのかについて質問しています。もしよければ回答していただけたら嬉しいです。

tako8ki.hatenablog.com