The HIRO Says

If you smell what The HIRO is cooking!!!

Coderetreatに齢45にして初参加

2020年11月7日(土)に、こちらのイベントに参加させていただきました〜

ここ最近の週末は、GolangLeetCodeの問題を解くか、Kubernetesのclient-goのソースリーディング・動作確認を続けています。一方で、ずっとひとりで学習を続けているので、たまには違った視点が欲しいなと思い、腕試しを兼ねて同イベントに参加してみました。

イベント概要

平たくいうと、ライフゲームというお題をみんなで実装してみましょうというものです。
但し、以下のようなルール・制約があります。

  • 実装45分、振り返り15分の計60分のサイクルを、6回繰り返す
  • 使用する言語・開発環境は自由
  • 基本はペアプロ、慣れたり気分転換したくなったらモブプログラミングで!
  • 45分経ったら、そのコードは破棄!

45分ごとに頭も気持ちもコードもリセットするため、いろいろなチャレンジができるチャンスでもあります。

自身の行動記録

覚えている範囲でメモ。ちなみに開発環境は、TDDのトレーニングで有名なcyber-dojoを主に使用しました。

Iteration 1 : まず慣れる

まずはTDDを忠実に実施することで、ライフゲームの仕様の理解とイベントのルールへの慣れを優先しました。ちなみに、言語・テストツールはJavaScript + Jestでした。

Iteration 2 : 設計を考える

次はJava + JUnitで、オブジェクト指向の観点から設計を意識して進めました。このあたりでライフゲームの実装イメージが掴めた感じ。

Iteration 3 : Golangでやけど

配列操作の都合と、自身が最近学んでいることを試してみたいことから、Golang + testingをチョイス。しかしながら、人数の都合でトリオを組んだメンバーが初Golangだったため、言語の勝手で詰まってしまい、私が言語仕様を説明している間にタイムアップ (´・ω・)

Iteration 4 : Golangおかわり

Iteration 3を受けて、Golangを試したい!という方が他にもいたため、再度チャレンジ。
最初の5分は、時間の節約と言語仕様の説明を兼ねて、私がIteration 3での実装内容を復元し、残りの時間でみんなでワイワイする形に。完了のイメージがはっきりと見えてきたところでタイムアップ。45分はかなり短い。

Iteration 5 : Clojureに散る

なぜかClojureをやろうということになって、モブプログラミングで試したものの… そもそも書き方が分からない、知りたいことがまるで検索で引っかからない(ググラビリティの低さ)、説明を読んでも意味が分からないと、文字通りの完敗。

Iteration 6 : Pythonで完成

最後は全員でモブプログラミング。リスト内包実装など様々なテクニックを皆さんから教えてもらい、時間内についに完成!
ちなみに私は、純粋に体力が尽きてしまい、このiteration途中でコーディングから離脱してアイデア出し係に。6 iterationはかなりハード。

感想

  • 参加者と運営の皆さんのホスピタリティのおかげで、45歳でも多くのことを学べました。感謝。
  • Golangの独習内容は、他者に説明できるレベルになっていたことを確認できました。
  • 久々に会社以外のIT系の人と直に話せたため、かなりのリフレッシュになりました。

おまけ

f:id:hageyahhoo:20201109192631j:plain 株式会社アトラクタ様のおかげで、美味しいハンバーガーをいただきました。本当に感謝です。

お店はこちら。