見出し画像

CoderDojoとOSS: 子どもたちの未来を形作るための小さな一歩

CoderDojo Advent Calendar 2023 2日目の記事です。
2023年をふりかえってみて、一番ワクワクした体験を共有します。


大人にも学びがあるCoderDojo

CoderDojoは非営利のプログラミングクラブです。CoderDojoを略して道場、道場に集まる子どもたちをニンジャ、サポートする大人たちをメンターと呼びます。私はプログラミング教育に興味があり、2023年6月にメンターとしてはじめて参加しました。

メンターの役割はプログラミングを教えることではありません。メンターの役割と心得はCoderDojo吉祥寺のメンターをする人へにまとまっています。コンピューターはガチャガチャいじっても意外に壊れません。ニンジャが試行錯誤を繰り返すうちに、自分なりの解決策を見つけることもあります。自分の工夫で動かすことができた!という貴重な成功体験を、横から奪ってはいけません。私は教えたがりなのですぐに口を出したくなってしまいます。けれど、その気持ちをグッとこらえて、ニンジャが困っていないかを観察することに徹しました。

そんな姿勢でCoderDojoに参加してみたのですが、私の予想はいい意味で裏切られました。一方向ではなく双方向の学びがあったからです。ニンジャたちはとても情熱的で、分野によっては私よりもずっと詳しいくらいです。小学生のニンジャは私にScratchの使い方を教えてくれました。繰り返し音を鳴らす時は「音を鳴らす」ではなく「終わるまで音を鳴らす」ブロックでないとうまくいきません。別のニンジャは、私が作ったリズムゲームをより良くするアイデアをくれました。タイミングよく楽器を鳴らせた時に「Great!」と表示すれば、より気持ちよくゲームができます。

開催予定を表示するGoogleカレンダー

思っていた以上に学びのあるCoderDojo。私は各地で開催される道場に顔を出してみたいと思い、あるプログラムを作りました。各地の道場の開催予定をGoogleカレンダーに表示するプログラムです。開催予定をカレンダーに表示すれば、自分の都合に合わせやすくなります。

調べてみると多くの道場がイベント管理サービス(connpassDoorkeeper)で予定を公開していました。そこで、イベント管理サービスのAPIを定期的に呼び出してGoogleカレンダーに表示することにしました。せっかくなので都道府県別にGoogleカレンダーを作り、誰でも使えるようにしました。FacebookのCoderDojo Japanグループにこのカレンダーのことをお知らせしたところ、たくさんのいいねを頂けてとても嬉しかったです。

CoderDojo Japanへの貢献

このカレンダーが思わぬ方向に発展します。きっかけは、ウェブサイトCoderDojo Japanを運営している安川(@yasulab)さんに、CoderDojoのイベントAPIについて教えていただけたことです。私がイベント管理サービスから定期的に集めていた情報は、すでにこのAPIで提供されていました。より正確な情報が提供されるので、カレンダーに使うAPIを切り替えることにしました。

CoderDojo Japanのウェブサイトはオープンソースソフトウェア(OSS)で作られています。不足している機能があれば、自分で追加を提案できます。そこで、カレンダーを表示するのに不足している情報がないかを調査してCoderDojo JapanのGitHubリポジトリーにIssueを作成しました。そして不足情報を補うコードを作成し、機能追加をPull Request(PR)という形式で依頼しました。CoderDojo Japanのバックエンドはプログラミング言語Rubyで記述されています。私にとっては久しぶりに触れる言語でしたが、ChatGPTに助けてもらい、すぐに提案を作ることができました。本当に便利な時代になりましたね!

私のPRは迅速にレビューされ、提案したその日のうちにAPIに取り込まれました。このスピード感、最高です!しかし、このスピードでソフトウェアを成長させるためには、それ相応の準備が必要です。ソフトウェアの背景を共有するためにドキュメントを充実させたり、間違った修正によってソフトウェアが破壊されることを防ぐために自動テストを充実させたり。事前にしっかりとした準備があったおかげで、私のような新参者でも気持ちよく貢献することができました。安川さん、どうもありがとうございます!その後、CoderDojo Japanの近日開催の道場まとめに、カレンダーへのリンクも掲載していただきました。

来たときよりも美しく

私は仕事でも趣味でもプログラミングをしています。その時に、常にOSSの恩恵を受けています。現代のプログラミングにおいてOSSは欠かすことができません。そんなOSSに少しでも恩返しをしようと、自分が見つけたちょっとした間違いをそのまま放置せず、作者にフィードバックすることを心がけています。こうした態度は、「来たときよりも美しく」の精神に基づくボーイスカウト・ルールとして知られています。書籍「プログラマが知るべき97のこと」で紹介されています。

私は自分のためにCoderDojoを楽しもうと思い、自分のためにカレンダーを作りました。そして、その楽しみを他の人にもおすそ分けしました。すると新しい情報を教えていただけて、結果的にCoderDojo JapanのイベントAPIを進歩させるお手伝いができました。こうした小さな貢献の積み重ねが、世界を良くしているのだと信じています。

CoderDojoがきっかけで、別のOSSにも貢献できました。中学生のニンジャに刺激をもらったエピソードです。彼はオペレーティングシステム(OS)が大好きで、自作してみたいという野心を持っています。マイクロカーネルOSのMachがいかに素晴らしいかをとうとうと語る姿に圧倒されました。OSに対するアンテナが伸びたおかげで「45分でゼロから作る!OS自作ライブコーディング」という動画を知ることができ、OSへの理解を深めるために「1000行で作るOS」を手元で動かすことにしました。OSSとして公開されている学習コンテンツです。

まだ公開されたばかりのコンテンツで、初学者にはつまづきやすい点がいくつかありました。改善提案をしたところ、こちらもすごいスピードで取り込んでいただくことができました。OSに関する知識はなくても貢献することができ、とても嬉しかったです。

子供たちの未来を形作るための小さな一歩

私の2023年を彩ってくれたCoderDojoとOSSの話をご紹介してきました。CoderDojoは私にとって相互学習の場であり、OSSに貢献する場にもなりました。万物は流転していきます。何事も放置していればエントロピーは増大し乱れていくものです。だからこそ「来たときよりも美しく」の精神と行動は、この社会を少しでも良くすることにつながります。CoderDojoに初参加するときはドキドキしましたが、やってみて本当に良かったです。

この素敵な体験を記事にするためにChatGPTと対話を重ねました。その結果生まれたのが「CoderDojoとOSS: 子どもたちの未来を形作るための小さな一歩」というタイトルです。CoderDojoで子どもたちと関わることも、OSSに貢献してソフトウェアをきれいにすることも、どちらも未来を形作るための小さな一歩です。このタイトルのおかげで、2つの活動がピッタリひとつに重なりました。最近は、技術書典15への執筆やマンションの理事会の活動で忙殺されているのですが、CoderDojoに再び参加できる日を楽しみにがんばります!

最後に、2023年11月現在での都道府県別CoderDojoカレンダーを紹介します。あくまでAPIで取得できる道場のみですが、28都道府県でCoderDojoが開催されています。お近くの道場へぜひ足を運んでみてください。

北海道青森県岩手県宮城県、秋田県、山形県福島県茨城県栃木県、群馬県、埼玉県千葉県東京都神奈川県、新潟県、富山県、石川県、福井県、山梨県、長野県岐阜県静岡県愛知県、三重県、滋賀県、京都府大阪府兵庫県奈良県、和歌山県、鳥取県、島根県、岡山県広島県山口県、徳島県、香川県、愛媛県、高知県、福岡県、佐賀県、長崎県、熊本県、大分県、宮崎県、鹿児島県沖縄県

この記事が気に入ったらサポートをしてみませんか?