ハッカソンに参加してきた

# ハッカソンに参加してきた

【技育CAMP2024】ハッカソンVol.8に参加してきました。サークルの仲間に誘われたので、えいやっ、と参加することにしました。

僕自身、ハッカソンの参加は初めてで、色々学ぶことが多かったです。

このハッカソンは、毎月のように開催されているもので、初心者歓迎、学年不問を謳っています。2~5人でチームを組んで、キックオフイベントから5日間の事前開発期間と2日間のハッカソン期間で開発をして、最後に作った作品をプレゼンするという感じでした。

実際に、ハッカソン初参加とか、プログラミングちょっとだけしたことあるけど本格的な開発は初めて、みたいな人もそれなりにいました。その一方で、発表した作品のUIやら使用技術やらがお化けみたいな上に、発表スライドがとてつもなくイケてるというようなチーム/人もいて、驚きの連続でした。見えている世界が違うとはああいうことなんだと…

# 初めてのチーム開発

今まで個人開発(といっていいのかも微妙なものですが)の経験は、まぁそこそこありました。言わずもがな個性派文庫とか、大学の第1クオーターと第2クオーターの間のインターバル期間に狂気駆動開発した履修登録支援Webアプリ「rishu-app」(原作:ogawas氏)とか。

対してチーム開発は全くの初めてで(個性派文庫は…複数人でやってるけどワンマン開発)、作業の流れとかは割となんとなくしか知りませんでした。というか、今回のハッカソンにサークルで参加する目的の1つにチーム開発を実践してみる、というのもありましたので、チームメンバーもチーム開発は比較的初めてです。

まぁ、やはり環境構築で躓きましたね。やはり触ったことない触ってみたい技術を試してみるのがハッカソンの醍醐味なので、僕が担当した範囲で初めての技術はnode.jsやdiscord.js、開発環境はdevcontainerを使って、本番環境はdockerという感じです。devcontainerがよくわからんからとりあえずwslでnode.jsしてたら、なんかよくわからんけど、discord.jsがネットワーク系のエラーを吐いて、しょうがないから生Windows環境で走らせたり、とにかく開発しないといけなかったので、予定していた開発環境の構築は後回しにして、動く環境で無理やり開発をしていたりしました。最終的にはなんとなくですがdevcontainerがわかってきたり、インフラ担当の先輩が尽力されてdockerで動くようになったりしました。

いろいろありましたけど、思っていたよりはスムーズにチーム開発は回っていたかなと思います。ハッカソン後半には、リポジトリの運用方法が定まってきていました。

でもやはりまだGitを使いこなせている気はしませんね。コンフリクトが未だに怖い…

タスク管理の参考:https://qiita.com/harayama2/items/ae71d94a55b844fbecc7

1つ反省したいというか、考えたいのが、ある人の実装が終わらないと自分の実装が始められないという待ち時間が発生してしまったことです。今回では、先輩が関数の仕様を決めて実装してくれないと、僕の実装が始められなかったということです。先に関数の仕様を決めておけば、実装を待たなくても自分の実装が始められたので、計画不足だったなぁと思っています。システム構成とか設計とか、それからインフラとかデータベースとかを勉強する必要があると痛感しました。

# 触ったことのないライブラリ

今回、僕はdiscord.jsを使ってBotを作りました。discord.pyはちょっと触ったことがありますが、discord.jsは初めてでした。

とは言っても、人気なライブラリなだけあって、日本語情報もそれなりにありましたし、英語にはなっちゃいますがYouTubeにもわかりやすい動画がありました。極め付けは、公式のガイドですね。英語ですが、一から十まで丁寧に解説されているし、公式の安心感がいいですね。discord.jsは詳しくは知りませんが、仕様がちょくちょく変わったり追加されたりするのが、Qiitaでもなんかちょっと違ったりするコードがあるので、公式が丁寧に教えてくれるのはありがたいです。

品質に結構ばらつきのありましたが、それらの記事を参考にしながらなんとか作れました。とりあえず動くものが作れたのは良かったのですけれども、個人的にはコードが汚いなと思いますね。そこら辺も、設計をかじりながら研究していきたいと思います。

# 懇親会でヤバい人たちとおしゃべり

ハッカソンの最後に懇親会と称して、十数分ほど、他の参加者の人とお話する時間がありました。僕にとっての開発の世界は、友人やサークルの仲間くらいのものだったので、ハッカソンを通してもっと広い世界に足を踏み入れた感じがします。今後もこういうイベントに参加して、交流を深めていきたいなと思います。

# 余談|なぜか急にvim(キーバインド)を触り始める

ここからが、この記事の本題と言っても過言ではないでしょう(?)。僕はこのハッカソン期間で、何を血迷ったのか急にVimキーバインドを触り始めました。流石にエディターを移行するのはめんどくさい(そもそもdevcontainer)ので、VS Codeをvimキーバインドにする拡張機能を導入しました。この記事もvimキーバインドで書いています。

やはりvimキーバインドみたいな、仕事道具は使って覚えるものなので、沢山のコードを書くハッカソンみたいな時期に導入したのは良かったのではないかなと思いますね。まぁ、この記事も長くなってしまったので、vim入門の話はまた別の記事で書こうかなと思います。

# 終わりに

初めての技術を触ってみるには、ハッカソンは非常にいい機会になると実感しました。また、サークルの仲間を誘って参加しようかなと思います。