この記事の要点
- 2022 年の Swift Mentorship Program の開始に先立ち、2021 年に参加したメンティー(指導を受ける側)数名の学びの体験が共有されています。
- ドキュメント執筆、サーバーサイド Swift(Vapor)、言語設計とコンパイラ開発という異なる領域に取り組んだ 3 名の事例を通じて、メンタリングがどのように学習を後押ししたかが紹介されています。
- 12 週間のサマーコホートに加えて、good first issue へのコントリビューションを対象としたメンタリングが通年で随時提供されるようになりました。
プログラムの目的
Swift Mentorship Program は、経験豊富なコミュニティメンバーであるメンターと組み、オープンソースの Swift プロジェクトへのコントリビューションに取り組む中で学習を進めるためのプログラムです。新しいコントリビューターがコミュニティに参加する際の障壁を下げることを目的としています。この記事は、2022 年のプログラム開始を前に、2021 年のメンティーがそれぞれの学習過程から得た気づきをまとめたものです。
メンティーの体験
ドキュメント執筆
Anh Pham さんは、メンターの Erica Sadun さんとともに、オープンソースの Swift パッケージへのドキュメントのコントリビューションに取り組みました。学習目標は、実際にドキュメントを書くことでテクニカルライティングを練習することでした。
最初の数週間は、よくドキュメント化されたプロジェクトを研究し、活発でコントリビューションを歓迎しているプロジェクトを見極めることから始めました。この過程で、新しいコントリビューターが直面しがちな「自分にできるのか」という自己不信を、自身のスキルを認め、メンターからの問いに答え、間違いは学習に不可欠だと受け入れることで乗り越えていきました。
Erica さんから学んだ印象的な手法のひとつが「No Delete」ルールです。アイデアを練る間は delete キーを使わず、思考の過程をそのまま書き残すことで、アイデアを途中で切り落とさずに膨らませられ、創造性が高まったといいます。
サーバーサイド Swift(Vapor)
David Reyes さんは、メンターの Tim Condon さんとともに Vapor の入門に取り組みました。コードベースに飛び込む前にまず基礎を学ぶことを目標とし、Vapor の解説書を活用して入門的な内容を習得しました。
Vapor のような広範なテーマに取り組むのは容易ではありませんが、メンターからの定期的な助言によって学習対象を絞り込み、Vapor プロジェクトに関連するさまざまなパッケージに取り組めたとのことです。
言語設計とコンパイラ開発
Amritpan Kaur さんは、オープンソースの言語設計とコンパイラ開発に取り組みました。知識の不足を学習の機会に変える練習を主な目標とし、Swift コンパイラのコードベースに踏み込んでいきました。
最初の数週間は複数の Swift Evolution Proposal を読み込みました。専門用語を確認したり、理解の妨げになっていた計算機科学の概念を言葉にして整理したりすることで、変更の動機や提案されたセマンティクスについての議論に加われるようになりました。そして、日常的に Swift を書く iOS エンジニアである自分自身が、言語の実用上の使いやすさについて価値ある視点を提供できると気づいたといいます。
一方で、コンパイラのコードベースはより大きな挑戦でした。コントリビューションを始める前にこれほど大きなプロジェクトを完全に理解することはできないと早い段階で割り切り、コードを読み通そうとするよりもステップ実行でたどる方が効果的だと発見しました。学習を「最初に済ませるもの」ではなく「継続するもの」と捉え直したことが、大規模で複雑なプロジェクトに取り組む不安を乗り越える助けになったと振り返っています。
プログラムの変更点
Diversity in Swift ワークグループは、より多くのプログラマーを Swift コミュニティに迎え入れ支援するため、Swift Mentorship Program を継続して提供していくとしています。
夏季の 12 週間コホートに加えて、good first issue へのコントリビューションを対象としたメンタリングが通年で随時提供されるようになりました。これにより、新しいメンターとメンティーが年間を通じていつでも応募できるようになっています。