NUTMEG B3の准教授と呼ばれている者です。
最近は開発モチベーションの急上昇と将来への不安が入り混じり、混乱した状態に陥ることが多く、そのせいか奇行に走ってしまうこともあります。申し訳ありません。
さて、ここまで技大祭とNUTMEGハッカソンを走り抜け、その過程で多くの経験や知識を得て、NUTMEGに加入する前と比べて格段に成長したと感じています。本ブログでは、
について、時系列に沿って共有していきたいと思います。NUTMEGに興味がある方にとって、技術力がほとんどない状態からどのくらい成長できるかの参考になれば幸いです。
NUTMEGに入るまでに持っていた知識といえば、
「Python?まぁまぁかな〜」
「機械学習?多少のモデルの原理くらいなら?」
という、何とも中途半端な素人エンジニアでした。
そんな私ですが、以前から興味があったDSチームに参加し、プロジェクトを通じて機械学習を使って技大祭に貢献したい、そして機械学習を用いた開発に挑戦したいという思いがありました。その結果、DSチームのTracking Parkingプロジェクト(以下トラパ)に参加することになりました。
機械学習にちょっとだけ触れたことがある程度の私にとって、トラパは非常に大変なものでした。具体的には、
が主な課題でした。しかし、メンター制度のおかげでGitHubとDockerの基本的な使い方を教えていただき、最低限のチーム開発ができるレベルには成長することができました。
とはいえ、プロジェクトの根幹に関する知識が不足していたため、このままでは力不足でした。
ではその間、何をしていたかというと、
といったことを行っていました。最低限のことはやっていたつもりでしたが、振り返るともう少し積極的にコミットすべきだったと反省しています。
この状況の中、時間は容赦無く過ぎていきました。この段階での課題としては、
といった問題がありました。
技大祭まで1ヶ月を切り、この状況は「やばい」の一言に尽きました。末端の私でも危機感を強く感じていました。
技大祭前日までは、ひたすら開発の日々でした。
YOLOのファインチューニングについては、のせさんの高性能PCをお借りし、自分はナンバープレートのOCR機能と、その後の駐車台数を出力する機能を追加しました。
電源を確保できたことで、ラズパイの処理性能不足を解消することができました。しかしその代わり、車でデスクトップPCを運用するという、かなり無茶な環境での実行となりましたが、何としてもトラパを成功させたいという一心で、なりふり構っていられませんでした。
以下は、前日に何とか環境構築を試みている様子です。
車内でデスクトップPCやラズパイを動かしていたものの、IPアドレスが見当たらず接続ができませんでした。そのため、早朝にのせさんに来ていただいて対応をお願いしました。(後にUSBハブが原因だと判明しました)
「ノートPCがあればいつでもアクセスできるし便利だろう!」
そう思ってMacを車内に放置するという、今思えば非常に浅はかな行動を取ってしまいました。当然、MacBookくんは熱を帯びてしまい、最終的にはショートしてしまいました。その結果、トラパの実行を断念することになりました。
悔しい気持ちはありますが、これを来年に向けてのバネにしていきます。
具体的には
を得ることができたと感じています。
毎日のように深夜3時、4時まで作業することが続き、それが苦ではなくなりました。これがきっかけで、何かを頑張るときに 「トラパの方がきつかった」 と思えるようになりました。
さて、ここからはNUTMEGハッカソンについてお話しします。技大祭が終わり、息つく間もなくNUTMEGハッカソンが開催されました。参加の動機は以下の通りです。
こうした理由から、軽い気持ちで参加を決意しました。
今回のお題は「技大祭を⚫️⚫️するWebアプリケーション」でした。私たちのチームは、マップとチャットを連携させたSNSアプリの開発に取り組みましたが、私はフロントエンドの経験が全くなく、このままではフロント必須のハッカソンにおいてお荷物になってしまう状態でした。
フロント、やるしかねぇべ。
これらはトラパで得た経験を活かしてスムーズに進めることができました。
チームメンターの窪坂さんに多大な助力をいただき、何とか開発をサポートすることができました。正直、まだ理解できていない部分も多いですが、最低限必要な機能を実装し、デプロイまでこぎつけることができたのは、窪坂さんの的確なアドバイスと多くの時間を割いてくださったおかげです。
GitHubやDocker周りの環境構築をスムーズに行えたことから、トラパでの経験が無駄ではなかったと実感でき、本当に嬉しかったです。
チームの目標であった「動くものを作ろう」という方針に基づき、実際にデプロイを行い、発表当日までに形にしていく過程はとても楽しいものでした。日に日にアプリが形になっていくのを見るのは本当に嬉しい体験でした。
今回の経験をきっかけに、自分で作りたいものが増えました。不安な部分も多かったのですが、結果として、フロントエンドに触れることができて良かったと感じています。
AI、デバイス制限、データ取得の難しさを体感し、AIを絡めたプロジェクトの難しさを学びました。
GitHubやDockerの運用を最低限自力で行えるようになりました。
限界までやってみることで、失敗しても「これだけ頑張った」と言える自信がつきました。
おかげで個人でアプリを作りたいという意欲も湧きました。
技大祭、NUTMEGハッカソンを通じて、多くの技術力を得ることができたと実感しています。特に、開発にフルコミットする経験をしたことは非常に良かったと思っています。
また、先輩や同期には心から感謝しています。先輩方の主導で技術力をより高めることができましたし、同期が頑張っている姿を見ることで自分も頑張ることができました。
何より、開発を楽しむことができました。楽しさがモチベーションを維持し、それが好循環を生んだのだと思います。
今回の反省を踏まえて、現在の運用法が最適かどうか見直したいと考えています。
現在個人で参加している、外部のAI入門講座でデータサイエンス領域で基礎力を高めたいと考えています。
具体的には
など、構想だけが積もっています。
今回のハッカソンで得た知識を用いて、食堂の注文管理アプリを作れたら良いなと考えています。あわよくば、機械学習システムも組み込んでみたいなとも思っています(必要かどうかは別になりますが)。
今後もNUTMEGメンバーとして頑張り、自他ともに認めるつよつよエンジニアになれるようこれからも努力していきます。