JPHacks2021に参加しました!

この記事は、HUIT アドベントカレンダー 2021 の7日目の記事です。

昨日はくーじろーさんのawaitの裏側のお話でした。今回私がJPHacksでプロダクトを制作した際にも非同期処理を扱いましたが、相変わらず何言ってるのか分からない記事でした笑(難しくて)

さて、今回は私が今年参加したハッカソンの体験を書き綴っていきます。


参加の経緯

HUITでハッカソンの募集が投げられていたことで興味を持ち、JPHacksに先輩方とチームを組んで出場しました。

実はJPHacksに参加する前にテクのこというSCSK主催のハッカソンにもHUITチームとして参加しており、その際はtakapiroさんに教えてもらいながらPythonfastapiというフレームワークを用いてバックエンドを担当しました。

そこでも非常にいい経験をさせていただいたのですが、「もっと開発したい!」という思いから、テクのこメンバー + kokiさんという強力助っ人と共にJPHacksにも参戦することになりました。


プロダクト

私たちのチームはCOCONOMASKというプロダクトを作りました。ざっくり言えばCOCOAのbluetooth信号を拾うことで、近くに人がいるかどうかを判断して自動開閉するマスクです。以下のものは発表用スライドです。

githubレポジトリはこちら

結果としては賞をいただくことは叶いませんでしたが、非常に楽しく、学びのあるハッカソンでした!!


担当機能

私はPythonfastapiというフレームワークを用いてバックエンドを担当しました。



テクのこの際にも同様の技術を扱っていたのですが、正直私はtakapiroさんの説明を聞くのが精一杯で実質的には今回が初のコーディングです。メンバー登録ログイン機能家族機能(JPHacks後半戦で消滅したのでスライドにはありません)を実装しました。

firestore上のデータを扱うのに非常に試行錯誤しましたが、無事JSON受け渡し係としての役目は果たせたと思います。


感想

  • 普通こんないい経験させてもらえるのか
    大学入学したのを機にプログラミング始めてから半年くらいしか経っていないのにJPHacks本戦を経験させてもらえるなんて驚きですね。本当に先輩方様様です。ありがとうございました!
  • githubの扱い分かってきた
    反省会の時にtakapiroさんが言っていたことですが、個人で開発するよりもハッカソンのようにチームで開発したほうがgithubの有用性がよく分かるというのは確かにそうだなと思いました。これからも積極的に使っていきたいです。
  • とにかく調べまくって実験しまくることが大事
    どうやって機能を実装してみればいいのか分からないとき、どうやってエラーを解決したらいいのか分からないとき、公式ドキュメントや同様の質問が投げられているサイトをとにかく読み漁ってみれば案外何とかなるなと思いました。人に聞く前にまず自分で調べるのは基本(自戒)
  • コードリーディングの重要性に気が付く
    これまでは人が書いたコードをしっかりと読み込んだことがありませんでしたが、1行1行丁寧にさらっていくことで、それが何をしようとしたコードなのかを理解でき、さらにその技術を自分に取り込むことができるのだなと実感しました。
  • そもそもの技術力をしっかりと持っておきたい
    テクのこJPHacksもそうですが、オンライン開催だからなのか共に2週間以上の制作期間が設けられていました。そのおかげもあってじっくりと学びながら実装していくことができましたが、本来ハッカソンはもっと期間が短いらしい(?)ので事前にある程度の技術力を備えておかなければならないなと思いました。

今後やっていきたい技術

このハッカソンを機に、今後やりたいことがたくさんできました

  • ネイティブアプリ(Dart)
  • React・Node.js
  • 機械学習
  • ハード
  • SQL etc…

(「これ全部できます」ってサラッと言えたら強すぎる)
視野を広く持ちつつも、地に足つけてこれからも頑張って勉強します!


最後に、共にJPHacksで戦ったメンバーのみなさんのブログも貼っておきます


明日のアドカレはkokiさんの:HuggingFace:の記事です!
お楽しみに!

終わり

Author

Haru

Posted on

2021-12-07

Updated on

2022-03-05

Licensed under

You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.