All Articles

「初めてのハッカソン」に初めて参加した話

はじめに

先週末 (2021/05/08—2021/05/09) の2日間でハッカソンに参加したので,感想などをまとめておきます.

ハッカソンとは?

ハッカソン (英語: hackathon, 別名:hack day, hackfest, codefest) とは、ソフトウェア開発分野のプログラマやグラフィックデザイナー、ユーザインタフェース設計者、プロジェクトマネージャらが集中的に作業をするソフトウェア関連プロジェクトのイベントである。

(出典:Wikipedia)

要は,チーム (または個人) が短期間 (1日~1週間ほど) で開発をするイベントです. 今回は,株式会社サポーターズ主催 初めてのハッカソン~オンライン開発合宿vol.3~ に参加しました.

きっかけ

修士課程へ進学し,ぼちぼち就活のことを考えなきゃな~などと思っていたところへサポーターズからハッカソンの案内が…. テーマが「初めてのハッカソン」ということもあって,善は急げと参加した次第です.

チームとメンバーの紹介

  • チーム名:math-eng (マス・エング)

    • メンバー全員が所属している (していた) 数理工学科 (mathematical engineering) が由来
    • #数理工学しか勝たん
  • 成田史弥

    • バックエンド担当
    • この記事を書いている人
    • 詳しくは こちら をご覧ください
  • 迫田拓弥 a.k.a. syakoo

    • フロントエンドおよび全体の構成担当
    • 研究室の先輩 (M2)
    • 高専出身の (つよつよ) エンジニア
    • 詳しくは こちら をご覧ください
  • 川渕晋哉

    • バックエンド担当
    • 学科の後輩 (B3)
    • 春休みにPythonを教えていたこともあってスカウトした

何を作ったのか?

文字を暗号化したり,逆に暗号化された文字を解読する オモチャ Webアプリ ”EncDec Generator” です. 暗号化された文字の入力を画像認識で行うところが推しポイントです.

アプリの構成など詳しくは 発表用スライドGitHubのレポジトリ をご覧ください.

やったこと

先に書いてある通り,私はバックエンドを担当しました. その中でも文字の暗号化および復号の機能を実装しました. 暗号化には (みんな大好き) RSA暗号を利用しました. これは素因数分解の困難性により安全性が保障されている暗号です.

RSA暗号を採用した理由としては,

  • 学部の講義で学んだ
  • 仕組みが 簡単 シンプル

が挙げられます. 鍵対 (公開鍵と秘密鍵のペア) を生成して暗号化する (または復号する) という操作を,Pythonのコードに落とし込んでいく作業に苦労しました.

結果と感想

結果としては努力賞を受賞しました! 全部で26チームが参加し

  • 最優秀賞 × 1チーム
  • 努力賞 × 6チーム

だったので,TOP7に入ったことになります. 努力が報われ,非常に嬉しかったです.

最後に感想を残しておきます.

開発の感想

  • 初めてのチーム開発とはいえ,見知ったメンバーとの開発だったこともあってスムーズにコミュニケーションがとれた
  • 他人のコードは (例え同じ言語を使用していたとしても) 全くの別物.それは相手にとっても同じこと.命名規則を定める,コメントを残すなど心がけたい
  • バックエンドを担当したと言いつつもPythonのコードしか書いていないので,フレームワークやデータベース周りまで含めて開発できるように勉強したい

イベントの感想

  • 初めてのハッカソンということもあり完成するか不安だったが,無事にデプロイまで持っていくことができて安心した (先輩には非常にお世話になりました!)
  • 自身がもつ知識や経験をプロダクトという形でアウトプットできたのは非常に良い経験になった
  • やっぱり開発は楽しい!

Published 2021/05/12

Hello, world! I am an web backend engineer based in Japan. I am interested in tech, math and mahjong.