【初心者向け】ハッカソンにエンジニアとして初参加するために準備したこととその参加レポート

はじめに

先日、connpassで募集していた「はじめてのハッカソン」というイベントに参加しました。こちらがHPになります。
今回の記事はその時の参加レポートです。自分はRails(Ruby)エンジニアとして参加しました。今までハッカソンの経験はなく、参加するまでスキル面で色々と不安に思うことがありました。
ですので、今回はイベントの詳細をお伝えすると共に、ハッカソンに出るためにやっておいたほうがいいことなどを体験談をもとに話させていただきます。(今回はアイデアやタスクマネージメントなどの話ではなく、開発面の話を中心にしたいと思います。)

「はじめてのハッカソン」の概要について

このハッカソンでは事前のアンケートをもとに運営の方が5人前後のチームに分けてくれます。当日そのチームが発表され、1日でアイデア出しと実装を行います。
スケジュールについては、11時すぎくらいから昼過ぎくらいまでで作るアプリを考え、18時ごろまでに実装+プレゼン資料作成をするといった流れです。ですので、実装できる時間はだいたい5時間程度といったところです。
順位づけなどは特に行わず、誰でも気軽に参加できるハッカソンというのがこのハッカソンのコンセプトです。参加者の中にはプログラミング歴1ヶ月のような方もいました。
この「はじめてのハッカソン」はスキルに不安がある人でも気軽に参加できるのが特徴だと思います。

自チームの作品と作業担当について

今回はクリスマスプレゼントにおすすめな商品を紹介するというコンセプトのアプリケーションを作りました。商品の検索にはAmazonAPIを利用しました。 僕のチームは4人いたのですが以下のような感じで役割を分担しました。

  • フロント担当、プレゼン資料作成
  • フロント担当、画面遷移など
  • サーバーサイド担当、マージ作業
  • サーバーサイド担当、検索ロジックの作成 (自分)

言語はRuby(Rails)を利用しました。
RailsでAmazonAPIから商品を表示させるという雛形をサーバーサイド担当で実装し、その間にフロント担当は各画面のHTML, CSSを作成しました。
その後、フロント側で作成したHTMLをRailsでも利用できるようにERBに変換するマージ作業を人手で行い、完成という流れでした。

やっておいたほうがいいと思ったこと

ハッカソンでは時間がありません。ですので、調べながら開発をするという時間はなるべく減らせたほうがいいと思います。
ハッカソンで必要になるであろう機能についてあらかじめ自分で実装しておいて、それをカンペとして用意しておくとかなり早い段階でアプリの雛形を作ることができます。機能が十分になくても、雛形が完成するとしないでは精神的な面で全然違うと思います。
主にサーバーサイドの話になりますが、例えば以下のようなものはすぐに作れるようになると(覚えていると)開発が楽になると思います。

  • テーブルの作成(1:多の関係をすぐに作れるとなおよい)
  • テストデータをDBに入れる
  • 検索フォームの作成
  • 外部API(Twitter, Amazon, GoogleMapなど)のアクセスキー取得とAPIの利用方法
  • CRUD APIの作成
  • Herokuへのデプロイ
  • gitコマンド

実際、今回の作品は、自分が事前にAmazonAPIを利用して作成した商品検索のアプリを雛形にしたので、当日はかなり良いスタートを切ることができたと思います。

感想など

色々上から目線で語ってしまいましたが、正直自分の実力のなさを痛感した日でした。
もっとコーディングスキルをあげて、息を吸うように開発ができるようにしないといけないと思いました。
また、各メンバーが持っているスキルセットによってチームで採用する(できる)技術も変わってくるので、得意分野を極めつつも、自分の出来る分野を広げていこうと思いました。

そのほかに、うまく作業を分担するにはどうすればいいのかという課題があったと思います。
今回はHTMLを作成してもらい、それをRailsでも利用できるように人手でERBに変換したのですが、少し非効率な気もしました。
この辺りを他のハッカソンのチームはどうやっているか知りたいです。

最後にですが、色々な課題やうまくいかない点が多かった今回のハッカソンですが、「ハッカソンに参加する」という予定を先に入れてしまうことでプログラミングの勉強も集中してできたかなと思いました。
これからも頑張っていこうと思います。