人生初ハッカソンに参加しました(改・ハッカソン初参加に悩んでいる人向け)
先日投稿した記事を、社内に展開するように改稿しました。
# 前置き
先日人生初の社外ハッカソンに出たので、何か足しになるかなと思い書いています。
ハッカソンに興味があるけど、参加する勇気がない人やそもそもハッカソンって何、という人向けの記事です。
(賞が取れたとかじゃないのでマサカリはやめてください!)
(技術情報の共有の場に何か投稿しろ、という下期の目標をマネージャーに設定させられて慌てて3/31に投稿しました)
# 私の自己紹介
社会人も明日で5年目。会社の研修で初めてプログラミングをしたゴリゴリの文系出身で、プログラミング研修は半泣きで3日遅れの課題をやっていた劣等生(誇張一切ありません)。
配属後、iOSエンジニアになり、優秀な先輩の庇護下、ぬくぬくと決済系アプリのメンバーをしてました。
そのころは比較的プログラミングをしてたんですが、
約1年弱はリーダー業務をしており、仕事ではコードをたまに見る程度でほぼ書いてません。
要するにポンコツです。
# 参加したのはこちら
[Yahoo! JAPAN Hack Day 2021 Online](https://hackday.jp/)
2-6人のメンバーで、24時間で1作品と、その90秒のプレゼンを作るという技術力だけでなく体力も問われる祭りです。
(まだ1回しかハッカソン自体に出たことないですが、類似のハッカソンではやっぱり体力勝負なことも多いようです)
HackDayは、テーマは自由、色んな最新技術が提供されているのでそれを利用することが可。
参加費用は1,000円でした。
他の技術イベントと同じく、参加を申し込んだ後、参加景品が色々もらえるので元は取れるかも。(今回はオンライ開催なので段ボールが自宅に届きました。)
- Tシャツ
- 耐熱マグカップ
- 紅茶
- カップラーメン
- クリアファイル等々
# 参加したきっかけ
Twitterにプライベート用とは別でエンジニア用のアカウントを作っていて、そこでのお友達に誘ってもらいました。
お誘いのDMが来たのが、2021年3月12日 午前9:13。
なんと、申し込みの締め切りは2021年3月12日 午前12:00。
興味はあるけど、力不足かな、、、いやでももたもたしてると仕事が始まってまうし、締め切りが来ちゃう、エーイ!!!ということで参加表明しました。
勢い大事。このギリギリさがなければ参加できてなかったと思います。
まあ何が言いたいかというと、こういう思わぬ機会が巡ってくることがあるのでエンジニア用のTwitterアカウントは役に立つよ、という話です。
Qiitaとかconnpassと連携するのがおすすめ。
# 当日までの1週間
今回、コロナもありますし、全員関東住みとはいえ住んでる県もバラバラなので、準備期間から開発まで完全オンラインでやりました。
仕事終わりの20時~22時くらいを週3日くらい会議してました。
当日までに話し合ったこと/やったことを列挙します
## 事前準備初日: HackDayの概要認識合わせ
zoomでみんなでサイトの読み合わせをしました。
あと、一応軽い自己紹介や、スペックの確認、ハッカソンの経験の有無なども。
## 事前準備2日目: アイデアをブレスト
アイデアソンというらしいです。
こんなもの面白くない?みたいなことをざっくばらんに話しました。
## 事前準備3日目: 作品の方針決め、役割分担ざっくり
2日目でこれだ!という作品は決まらなかったので、3日目に一つに絞り、詳細の認識合わせをしました。
(ハッカソンでは「何を作るか」まで当日に決める猛者も当たり前にいるらしいです!)
あとは、当日までの提供されているサービスの下調べの役割を分担を決めました。
# 作ったもの
OCRというカメラで撮影したものから文字列を読み取ってくれる機能が提供されていたので、「それをせっかくだから可視化したら面白いよね」というメンバーのアイデアにより、完成したのがこちら。
テキストモンスター。縮めてテキモン。ビジュアルが可愛い〜〜〜!!!
カメラで撮影した写真から、文字を読み取りその文字と一致するモンスター(いらすとや)をARで召喚。
相手とバトルして、召喚したモンスターの攻撃力が強い方が勝ち。
召喚したモンスターは図鑑でみることができます。
▼技術構成
今回はCLOVA OCRが提供されていた技術です。
▼デモ動画
https://youtu.be/IleOaUEZM3Y
# メンバーと役割分担
26~3X歳のメンバーで構成されてました。
ほぼ全員iOSエンジニアだったこともあり、作る作品はiOSアプリ一択だったのは検討事項が増えすぎず逆によかったのかも知れません
1. リーダー: サーバーサイドを担当
2. iOSエンジニア: AR部分を担当
3. iOSエンジニア: 文字解析部分を担当
4. iOSエンジニア: 環境構築やデータ同期やら図鑑機能など色々担当
5. デザイナー: 画面やアイコン、発表資料の作成を担当
6. iOSエンジニア(私): カメラ起動まで、画面作成、デモ動画作成を担当
# 私の担当したところと個人的なタイムスケジュール
最新技術を使ったり、難しいところのほとんどはチームのみんなが作ってくれました。
私の担当したのはiOSの基礎的な部分。
## 開始0~12時間
- スプラッシュ画面(起動画面)
- ホーム画面
- カメラ起動画面
## 開始12時間~16時間
- 仮眠
## 開始16時間~24時間
- デモ動画撮影 & 作成
- アプリの細かい修正など
大学で映像制作ゼミに入っていたのがこんなところで役に立つとは思ってませんでした。
ハッカソンで仮眠が取れることは珍しいことらしいです!
他のメンバーも3~4時間ずつ寝れました。
今回のタイムマネジメントというかチームマネジメントの部分で振り返りたいことはいくつかあるのですが、今回は割愛します。
# ハッカソンで学べたこと
感想に近いですが、以下のことを経験してみたい方、ハッカソンおすすめです。
## 久しぶりのコーディング
久しぶりにワクワクしました。やっぱりプログラミングは楽しいです。
今回は目に見える部分をよく担当させてもらえたこともあり、どんどん組み上がるのが面白かったです。
それを思いだせただけでも今回のハッカソンは意義がありました。
## 高速開発
ウォーターフォールの開発しか経験がないので、新しい経験でした。
とにかく急いでいるので、コードの綺麗さやエラーハンドリングに気を使わず、レビューもそこそこ、ガンガン作る。
普段は、決済系ということもありアプリの堅牢さを最重視しているので、ここの意識の切り替えも面白かったです。
## 普段と違う人とプロダクトを作る
みんなが当然のように使っているライブラリを知ったり、社外のチーム文化が見え隠れしたりして面白かったです。
高速開発なので、あんまりコードレビューとかは受けられなかったのですが、受けれたら色んな観点で指摘が来て勉強になっただろうな〜と思います。
## UIに凝る
凝ると言っても24hで作れる物の程度なのですが。
私は普段、仕事では業務アプリを担当しているので、UIはとってもシンプル。
基本的にUIKitというデフォルトで準備されている物しか使わないし、改善系の案件が多いので、新しい画面を1から作る機会も長らくありませんでした。
特にスプラッシュ画面(起動画面)を作成したのが新鮮でした。
ボタンに画像をはめたり、背景を入れたり、独自フォントを入れたり。
# 反省
個人的な反省です。次回に活かしたいです。
もしこの記事を読んでハッカソン参加しよう!と思った人は、参考にしてください。
## 企画
あんまり案が出せなかったなぁと。
「できるかどうかはおいといて色んな企画を出そう!」と思っていたものの、本当にこんなもの24時間で私は作れるのか……?とイモってあんまり冒険した案は出せなかったな〜と思ってます。
ハッカソンってどういう企画がウケるのかも分からなかったですし。
うとうとしながら他の人の発表も見ていたのですが、みんな本当に24時間でこんなの作ったの!?と思うくらいすごい物が多かったです。
参加するときは、過去の作品も結構見ておいた方が勉強になると思います。
## コア機能はつよつよのメンバーに任せきり
うーん、力不足。
## 環境系のエラーが発生した時にパニック!
メンバーの一人にzoomでPCの操作を明け渡して対応をお願いすることに。
足を引っ張ってしまって本当に無念。
今まで個人開発をしよう!と思ってもこの環境構築あたりが全く出来なくて(エラーが出ても原因が全く分からないし、検索しても同じ原因なのかが分からない)断念したことが多かったなぁと今更ながらに自覚しました。
個人開発の経験があった方がハッカソンで足でまといになる確率はグッと下がるとは思います。
少し勉強しよう。
## デモビデオ
大学の時に簡単な動画の編集はやっていたから、とりあえず担当することになったのですが。
他のチームのデモビデオの完成度が高くて、私のチームの作品の良さをもっと綺麗に印象深く表せたら良かったのにな……と思いました。
寝不足であんまりパワーが割けなかったという言い訳もありつつ、少し悲しい。
でも、表現の方法がいくつかあるというのはハッカソンの強みだそうです。
# 感想
また参加したい。今度はもっと新しい挑戦が出来るといいなぁと思っています。
私は新しいことを出来るようになるのが遅い人間なので、そこはハッカソンには向いてないかもしれません。
それを許してくれるチームだったことが今回最大の幸運でした。
あと家で開発するための新しいMacが欲しいです。
# おまけ
メンバーのnoteです。