give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

ミスは恥ずかしくないし、メンターも怒ったりしませんよ、というお話 #fjordbootcamp

このエントリは「フィヨルドブートキャンプ Part 2 Advent Calendar 2023」4日目の記事です。

adventar.org

Part 1はこちらです。

adventar.org

はじめに

僕はフィヨルドブートキャンプ(FBC)でメンターをやっています。
メンター業の一環で生徒さんのコードレビューをやっているのですが、コードの問題点や改善ポイントをコメントしたりすると、ときどき以下のような反応(日報でのコメントを含む)が返ってくることがあります。

  • 「大変申し訳ございません。修正させていただきました」
  • 「ミスがたくさんあって凹んでいます。自分が情けない」
  • 「ミスばかりしてるのになんでメンターさんは怒らないんだろう」

上のような反応について、それぞれ僕の視点ではどのように見えているのかを書いてみようと思います。

大変申し訳ございません。修正させていただきました → そんなに壁を作らなくても!

めちゃくちゃ丁寧に返信してくれるのはいいのですが、丁寧すぎると生徒さんと僕らメンターの間に分厚い壁があるような気がして逆に居心地が良くなかったりします。

メンターとのやりとりは基本的に「ですます調」で十分です。

なので、「大変申し訳ございません。修正させていただきました」よりも「すいません、修正しました」ぐらいがちょうどいいです。

ミスがたくさんあって凹んでいます。自分が情けない → 学習中の身なんだから完璧は無理だって!

百戦錬磨のベテランプログラマが発言するならまだしも、大半のFBC生はプログラミング初心者なので、そもそも最初から完璧なコードが書けるわけがありません。

間違って当たり前ですし、みなさんはこれから成長するためにFBCで学習していて、我々メンターはその成長をお手伝いするためにいます。
なので、必要以上に反省したり、凹んだりするよりも「なるほど、また一つ賢くなったぞ!」ぐらいのポジティブさで受け止めてもらった方が嬉しいです。

ミスばかりしてるのになんでメンターさんは怒らないんだろう → 怒ってもマイナスにしかならないでしょ?

もしあなたが「僕は怒られて伸びるタイプなんです!ミスしたらこっぴどく叱ってください!!」という人なら、事前に教えてください。ボロクソにコメントしてさしあげます😎

ですが、現実にはそんな人は滅多にいないでしょう。
にもかかわらず、「なぜ怒らないのか」と考えるのはおそらく、過去に自分が「ミスをしたら怒られる」という経験を何度もしてきたからなんじゃないかなと思います。
(学校教育とかそういった「昔からある何か」によって、ミスをしたら怒られるという思い込みが我々の内面に刷り込まれているのかも?)

プログラミングに限らず、人間って多くの場合、ミスをしたら「しまった!」と思って落ち込む(反省する)ので、そこを第三者(上司、親、先生、メンター、etc)がさらに責めても泣きっ面に蜂になるだけで、プラスの効果はないと思うんですよね。
最悪、恐怖心だけが強くなって「怒られたくないから今後はミスを隠す」みたいな、余計に悪い方向に進んだりすることもあると思います。

なので、僕は(そして他のメンターも)なんのプラスにもならない「怒り」を生徒さんにぶつけることはありません。

そもそも僕らメンターの仕事はミスを見つけて怒ることではなく、開発の現場でそういったミスをしないように生徒さんをスキルアップさせていくことです。

ミスをするのは恥ずかしくて情けないかもしれないが

コードレビューという形式や、メンターと生徒さんという関係性だと、どうしても権威勾配が発生してしまうというか、メンターがコメントを入れると「間違いを指摘されてしまった」というネガティブな心象を生徒さんに与えてしまうのはどうしても避けられません。
その受け止め方も人それぞれなので、人によってはひどく落ち込んでしまう場合もあるかと思います。
(なるべく落ち込ませないように我々メンターも気を遣いながらコメントしているものの、どうしても限界がある)

もちろん、ミスはしないに越したことはないのですが、生徒さん側もミスを過剰に恐れると、それはそれで成長のスピードを阻害するんじゃないかなと思います。

転ぶのが怖いから自転車に乗らない、では一生自転車に乗れない

「自転車に乗りたいけど、転ぶのが怖いから自転車に乗りたくない」だと一生自転車に乗れません。
数回こけることは恐れない、ぐらいの気持ちで向かった方が自転車には早く乗れます。

もちろん激しくこけると大けがをするので、子どもはヘルメットを付けたり、大人がサポートしたりします。
これと同じで、FBCではFBC生が自転車に乗れる(=プログラマになれる)ようにメンターがサポートします。

FBCの中なら多少ミスしても大けがをすることはないので、FBC生のみなさんはこけること(=ミスをすること)は恐れずに、「ミスがなんじゃい!」ぐらいの気持ちでプログラミングに立ち向かってほしいな〜と僕は思っています。

ミスを無くすためには

ミスを恐れるな、とはいうものの、いつまでたってもミスが減らないのもまた問題です。
同じミスを何度も繰り返してしまうような場合はしっかり自己分析して、具体的な改善策を出す必要があります。
そのために、以下のような問いの答えを自分なりに考えてみましょう。

  • 自分がよくやってしまうミスは何か?(問題は何?)
  • なぜそんなミスをしてしまうのか?(原因は何?)
  • 具体的にどうすれば改善できるか?(改善策は何?)

この中でも特に大事なのは最後の改善策の部分です。

「気を付ける」や「がんばる」ではなく、具体策や仕組み作りを考える

改善策は「次から気を付ける」とか「がんばる」みたいに具体性のない言葉が出てきがちです。
しかし、人間はミスをする生き物なので、人間の努力だけでは限界があります。
なので、「次からはこういうふうにします」という具体策や仕組み作り(人間の努力だけに頼らない何か)をすることが大事です。

「やってみた→どうだったか?(うまくいった?ダメだった?)」のふりかえりが1週間後にできるような改善策を考えましょう。

例:傘をよく電車に置き忘れてなくしてしまう場合の改善策

  • ❌ 忘れないように気を付ける → 絶対また忘れる
  • ✅ AirTagを買って傘に取り付ける → 効果の有無を検証可能

「ふりかえり」のスキルを身につけよう

ちなみにこれは僕が働いているソニックガーデンでよくやってる「ふりかえり」の手法です。
ほとんど同じ話が以下の記事に載っているので、詳しくはこちらを読んでみてください。

kuranuki.sonicgarden.jp

まとめ:「おーい、磯野、野球やろうぜ」の精神で教えています

というわけで、このエントリではFBC生向けに「ミスは恥ずかしくないし、メンターも怒ったりしませんよ」という話を書いてみました。

ところで、フィヨルドブートキャンプの運営者である駒形さん(@komagata)は、プログラミングを教えている動機を以下のように説明しています。

こんなこと書いたら「クッソスクールワロタwww」と言われるかもしれないが、僕らはプログラミングとプログラミングをする人が好きなのであって教えること自体が好きなわけじゃない。

もちろんプログラミングをする人とプログラミングを通じたコミュニケーションである「教えること」も嫌いじゃないが一番やりたいのはプログラミングなのだ。

野球が好きで「おーい、磯野、野球やろうぜ」と誘うのだが野球のルールもバットの振り方も知らないというのではメンツにならない。だから教えるという感じ。

スクールをやっているけど教えるのが好きなわけじゃない - komagataのブログ

「おーい、磯野、野球やろうぜ」の精神でプログラミングを教える、というのは言い得て妙だなと思うのと同時に、僕も「うん、そうだわ」と思います。

「大変申し訳ございません。修正させていただきました」に違和感を感じるのも、これが理由なんですよね。

楽しいは正義

生徒さんからすれば「遊びでやろうとしてるんじゃなくて、プログラマとして就職したいんですけど!!」と思われるかもしれません。
ですが、何事も「遊びか仕事かわからないぐらい楽しむ」というのがスキル向上の一番の秘訣だったりします。

僕らメンターはプログラミングを楽しんでいますし、生徒のみなさんにも同じように楽しんでもらいたいです。
なので、ミスをして必要以上に凹んでほしくないですし、僕らも生徒さんのミスを責め立ててモチベーションを下げたくないと思っています。

繰り返しになりますが、「楽しい、面白い」と思う気持ちがスキル向上の一番の秘訣です。
その気持ちさえあれば、最終的にきっとプログラマとして就職できるはずです。

そんなことを考えながらプログラミングを教えているので、生徒さんのミスを見つけても「ドンマイドンマイ!」ぐらいしか思ってないですよ、ことを伝えたくてこのエントリを書いてみました。
このエントリを読んで、みなさんのコードレビューコメントの受け止め方がちょっと変わったら僕としては嬉しいです!

bootcamp.fjord.jp