若手エンジニアの教育に、リレーコーディングを導入するメリット
先日12月19日(月)に、東京工業大学准教授の森本先生とアカリク社の神前さんにご協力いただき、社内でリレーコーディングのイベントを実施しました。
私はリレーコーディングというものを初めて聞き、不安ながらイベントを実施させていただきましたが、かなり面白い・教育面での効果も見込る内容だと感じたため、まとめてみました。
リレーコーディングとは
事前に用意されたシステム上で、お題と使用言語を決め、リレー形式で各自1行ずつのコーディングを行うというものです。
お題は参加者のレベルに合わせて出題されますが、簡単なところでは「1から100までの合算値を出力する」等のゴールが設定され、順番にコーディングを進めていきます。
人のコーディングを見て読み解きつつ、正しいコーディングをする必要があり、やってみると結構盛り上がります。
実際のリレーコーディング画面。
左側の画面はソースコードが表示され、右側の画面にはチャットが表示されます。
お題は「入力された文字列に 「3」が含まれていれば, “BAKA”を表示する。」というもの。
今回のイベントでは、以下で実施しました。
なお、通常1人ずつ参加していくのですが、社員と学生で技術力に差があるため、チームを組むことになりました。
- 参加者:弊社社員3名、他社社員1名、学生8名
- チーム構成:社員1名・学生2名で1チームとする。
- 開発言語:C言語
- お題:
1."Hello World"を10回表示する。
2.1から100までの総和を求めて表示する。
3.入力された人名に"Hello"と返事をする。
4.入力された文字列に 「3」が含まれていれば, “BAKA”を表示する。
基本の重要性を再確認できる仕組みである。
リレー形式でのプログラミングとなるため、参加するエンジニアは人に見られること、正しいコーディングをすることを求められます。(間違えると詰むため)
普段当たり前のように行っているコーディングにおいて、改めて基本の重要性に気付くことができる機会になるのではないでしょうか。
仕組みから理解する機会が生まれる
表面的な理解だけでコーディングをすると相手へのバトンがうまく渡せなくなることがあるため、命令文やアルゴリズムの本質を捉える必要があります。
ライブラリを使用しているだけでは、本来なぜこういう処理をしているのか?を考えることがなくなりがちであるため、こういった機会から改めて深い理解が重要であると気付くきっかけになります。
可読性の高いコードを書く
1step単位で意図を理解させるようにコーディングをする必要があるため、どのように書けば読みやすいか?を考える必要があります。
自分のソースコードを読まれ、人のソースコードと比較されるという環境はなかなかハードルが高く、意識的に可読性の高いコーディングをすることの重要性に気付くきっかけになります。
今回は、社員と学生の混合チームでのペアプログラミングとなりました。
こたつで仲良く話をしながらリレーコーディングをします。自然と会話が生まれ、距離が近くなりました。
企業に導入するメリット
主に教育面での導入メリットを感じました。
上記にある通り、リレーコーディングをする上で基本の重要性を知るきっかけになることが最大のポイントです。
また、プログラミングという共通言語(?)を通して、コミュニケーションが発生し、お互いの強みや得意分野を知ることができる等、社員同士の交流にも有効です。
今回のイベントでは、新しい気づきがあり、今までやったことがないようなことでもチャレンジする意味があると感じました。
また、このリレーコーディングについては、社内だけでは実現しなかったものであり、企業だけでなく学校との連携も非常に有意義と感じさせられるものとなり、共有も兼ねて記させていただきました。