【プログラミング】一人ハッカソンをKPT形式で振り返ってみた話

ハッカソン_アイキャッチプログラミング

どうも、ウェブ系ウシジマくんです。

先日、Twitterでこんなツイートをしました。

ここ最近、自分のコーディングスピードが遅いことを痛感していたため、時間制限のあるハッカソンを行うことでスキルアップに繋がればいいなと思ったので実施した形です。

結論としては、取り組んだことで、次のような経験値を貯めることができたかなと。

  • 問題の切り分けについて
  • 機能実装の際、やること・やらないことの取捨選択
  • 自分の弱点について明確化

という訳で一人ハッカソンをやってみた感想をKPT形式で振り返ってみようと思います。

ハッカソンとは?

laptop

本題に移る前に、

「ハッカソンってなに?」

と思うかもしれないので、ちょこっと解説しておきます。

ハッカソンとは、プログラミングをするという意味の「Hack」と耐久レースという意味の「Marathon」を組み合わせた言葉です。

簡単に言えば、プログラミングの耐久レースのこと。

ハッカソンの場合は、テーマを決めて開発していくことになりますね。

【Keep:継続して取り組んでいきたいこと】

フリーランスとして今まで携わってきた案件では、すでにローンチしているサービスの新規機能開発やバグ改修を行うことが多いもの。

しかし、今回のハッカソンでは、設計〜実装、テストまでの全行程を一人でこなすので、効率の良い開発が必要不可欠になります。

プログラミング初心者の頃と比べると、「自分が書いたコードがどのような戻り値になるのか」を予想立ててできるようになっていたので、それが今回のハッカソンで実感できたのはかなり大きな収穫でした。

また、バグや思うようにコードが動かないときに、サーバーとフロント、どちらに問題があるのか?という切り分けができたのも、自分の中で成長を感じた部分ですね。

この部分については、現場で開発を経験を積んでいたからこそ、鍛えられた部分が大きいと思います。

【Problem:問題点の洗い出し】

正規表現やログイン周りなどの、サーバーサイドにおける生命線とも呼ばれる部分への理解が曖昧なのを痛感しました。

一度正規表現については自分なりにまとめてみてはいたものの、各メタ文字を理解しながら構築するのはなかなか難しかったです。

ただ、それでもcontrollerに対するメールアドレス・パスワードのvalidationは作成できたので、やりきることができたのはプラスだったかな。

他の箇所としては、可読性の低いソースコードになっていたのも反省点ですね。

定数の位置や各コードを処理ごとにグルーピングするなど、チーム開発においても必要不可欠な部分なので、この部分についてはGithubなどにアップされている他人のソースコードをリーディングすることでレベルアップしていきたと思います。

【Try:解決策】

Problemであげた問題点については、現在個人開発を行っているQiita_cloneを引き続き行っていくことで、全体的なレベルの底上げになって行くのではないかと考えています。

今回の開発ではレビュワーがいるので、そこで自分が作成したコードをスキルの高いエンジニアにレビューしてもらえるのは、大きなメリットと言えます。

いただけるアドバイスも非常に明確なので、自分の知識では理解しきれない部分については、質問することで吸収していければなと。

まとめ:一人ハッカソンは自分のスキルを再確認するのに最適なアウトプット

今回の一人ハッカソンを通じて、自分のプログラミングにおけるスキルの棚卸しができたので、結果としてやってよかったです。

もっとプログラミングスキルを身に付けたい!

独学でプログラミング学習を進めてきたけど、この先どうやって進めていこう?

と考えている人は、一度テーマを決めて一人ハッカソンを経験してみることをオススメします!

スキルアップにもなりますし、やってみると楽しいですよ。