脈絡はありません inoway

ハードルは低いほど飛びやすいをモットーに駆け出したエンジニアです

ハッカソン初参加の感想

現職の同僚に誘っていただき、Qiitaハッカソンに参加してきました。結果は予選敗退でしたが、エンジニアとしてとても貴重な経験ができました。

ハッカソン初挑戦で得た学びや気づきを残しておきます。

自分できなさすぎ

5人チームで自分はバックエンドを2人で担当しました。Docker環境でNestJSとPostgresQLで実装しようとしましたが、まずサーバーを立ち上げることに苦戦。Dockerfileなどを書き直してなんとか立ち上がりました。この過程で、yarnとnpmの違いがよくわかっていなかったり、package.jsonやyarn.lockの用途もよくわかっていないことに気づきました。

Dockerfileにはキャッシュなしでlockファイルを元にyarn installして、具体的なパッケージなどはyarn addでpackage.jsonに追加していくやり方が効率的ということに途中で気づきました。その時点で2,3時間ぐらいは消費してしまったと思います。

また、お次はNestJSでORマッパーはTypeORMでDBマイグレーションしようとしたところ、こちらもうまくいかない。また、デバッグしようにもPostgresQLにも明るくないため、テーブル一覧出すのってどうするんだっけ(汗)レベルで躓きまくりました。

苦戦しているうちに気づけば夜になっていて、もう一人の方が機転を効かせてExpressで1つのJSファイルにAPIを全部書いて、おまけにDBはSqliteにしてしまおうという方針に切り替えました。これが功を奏してなんとか最低限のAPIを作ることができました。(とはいえ、フロント側に責務の多くを寄せてしまうことになりました。。)

このように、時間制限のある状況で取り組むと、ただ知っているだけではだめで、血肉になったスキルのみが役に立つんだなと実感しました。テーブルやEntityの設計に関しては短時間でわりと筋の良い提案をすることができたので、ここは日頃の力を発揮できました。

ハッカソンの楽しさ

基本的に体力がないので、1日目の夜で心身ともに疲れ果て、リタイヤが脳裏をよぎりました。ただ、2日間で最後までなんとか作りきって、デモが他の参加者に受けている様子をみると、とても嬉しい気持ちになりました。また、他の参加者のプロダクトをみるのも非常に面白く、勝ち負け関係なしにお祭り気分になりました。

あんなに辛かったのに、終わった直後は「他のハッカソンはないかな?」と調べ始めたりしていました。今回誘っていただいた方はハッカソンに何度も出ていて、過去には優勝したこともある方なんですが、いわくハッカソンは慣れとのことなので、何度も出るうちにスピードアップしていけるのかもしれません。

また、単に技術力の勝負ではなく、割り切り力や精神的タフネスなど色々なものが求められるため、つよつよエンジニアだからといってハッカソンで勝てるわけではないというのも面白いポイントだなと思いました。

得た気づき

ハッカソンが楽しいという一方で、自分は性格的に何かを急いでやるのは苦手だなということにも気づきました。以前からフロントをゴリゴリ書いたりするのには苦手意識がありました。一方で、じっくり考える系のタスク(バックエンドでロジックを考えたり、インフラのことを学んだり、開発基盤を整えたりする)はとても好きなので、SREや基盤エンジニアなどの方向性に舵を切るのもいいかもしれないと思いました。とは言え、方向性の話で、それをやるだけの実力はまだまだ足りないので、日頃の業務でインフラタスクをやらせてもらったり、AWS資格を取るなどして研鑽していきたいです。

最後に

君もハッカソンでボロボロになってみないか?