【ITニュース解説】My Google Summer of Code Journey: Part 1
2025年09月15日に「Dev.to」が公開したITニュース「My Google Summer of Code Journey: Part 1」について初心者にもわかりやすく解説しています。
ITニュース概要
システムエンジニアを目指す初心者がGoogle Summer of Codeに初挑戦。安易な攻略法に惑わされ、貢献活動に偏り、提案書作成を疎かにしたため不合格となった。この経験から、基礎技術の習得、積極的な貢献と丁寧なコミュニケーション、そして詳細な提案書の作成が重要だと学んだ。
ITニュース解説
Google Summer of Code (GSoC) は、世界中の学生がオープンソースプロジェクトに貢献する機会を提供するプログラムだ。多くの学生がこのプログラムへの参加を目指す。この記事は、ある学生がGSoCに挑戦し、一度は失敗を経験したものの、そこから多くの学びを得た彼の物語である。
物語は2018年、彼がまだ高校生だった頃に始まる。YouTubeでソフトウェア開発関連の動画を見ていた彼は、偶然GSoCの存在を知る。当初、彼はプログラムが提供する高額な報酬、約5500ドルという金額に魅力を感じた。しかし、当時の彼は18歳未満だったため参加資格がなく、大学に入学したら必ず一度は挑戦しようと心に決めた。この時の決意が、数年後の彼の行動につながっていく。
時が経ち、2023年初頭、彼が大学2年生になった時、初めてGSoCへの本格的な挑戦が始まる。彼はGSoCについて深く理解しようと試み、関連動画を視聴したり、過去の参加組織を調べたり、採択された提案書を読み込んだりした。しかし、そこに書かれている専門的な内容や詳細さに圧倒され、目標とする組織や使用する技術、さらには本当にGSoCに参加したいのかどうかさえも、この時点でははっきりしていなかった。当時の彼には、GSoCを成功させるためのプログラミングスキルも、人との円滑なコミュニケーション能力も不足していたと感じている。
その年の12月になると、彼の状況は大きく変わっていた。彼はフルスタックWeb開発に没頭し、技術力を向上させていたのだ。再びGSoCへの関心が高まり、彼はYouTubeで「GSoCを攻略する方法」といった動画を大量に視聴し始めた。しかし、この時の彼の動機は、もはや報酬ではなかった。オープンソースへの深い愛情と、5年前の夢を叶えたいという純粋な気持ち、そして自分のスキルを意味のある貢献に役立てたいという強い思いが彼を突き動かしていた。
しかし、彼はここで一つの問題に直面する。彼が視聴していた「GSoC攻略動画」の多くは、インドの視聴者向けに作られており、GSoCをまるで競争のように扱う傾向があったのだ。これらの動画は、GSoCに採択されるための「ヒントとコツ」に終始し、本当に重要な「ファンダメンタルズ」、つまり基礎的なスキルや考え方についてはほとんど語っていなかったという。例えば、「GSoCに参加するには9月から10月には準備を始めるべきだ」という通説も、彼からすれば真実ではない。彼は、たった2ヶ月の準備期間で採択された人々を何人も知っている。彼自身も「ヒントとコツ」を全く使わなかったわけではないが、本当に大切なのは、基礎に集中し、自分の能力を明確に示し、効果的なコミュニケーションを取ることだと強く感じた。これらの要素があれば、採択される可能性は非常に高まるという。
彼は自身の技術スタック、特にMERN(MongoDB、Express.js、React、Node.jsというWeb開発技術の組み合わせ)に合う組織をリストアップすることから始めた。ゲーム開発以外に選択肢が少なかったため、MERNスタックに特化した組織を探す必要があった。この過程で彼は「gsocorganizations.dev」という便利なウェブサイトを見つけ出す。彼はこのサイトを使って、2018年から2023年までの間にGSoCに参加した組織を検索し、2024年にも参加する可能性のある組織を絞り込んだ。関連する技術やトピック、カテゴリでフィルターをかけ、最終的にRocket.Chat、Zulip、Sugarlabs、Oppiaといった組織のリストを手に入れた。その中から彼はRocket.Chatを選んだ。
Rocket.Chatを選んだ理由の一つは、彼らの優れたコミュニケーションシステムだった。彼らは自社のRocket.Chatアプリケーション上でやり取りを行い、GSoCで提案された各プロジェクトアイデアごとに専用のチャンネルを作成していた。彼らはコミュニティに対して非常に開かれた姿勢で、参加者を歓迎する雰囲気だったという。彼は2024年2月にはRocket.Chatアプリケーションの作成方法を学ぶためのミーティングに参加し、3月にはEmbeddedChatというプロジェクトへの貢献を開始した。この時、YouTubeの「GSoCに採択されるためには、応募する組織に2〜3ヶ月は貢献する必要がある」というアドバイスを思い出したものの、実際には締め切りまで残り2〜3週間しかなかった。それでも彼は貢献を決意した。
彼が貢献したもう一つの理由は、Rocket.Chatが貢献者のリーダーボードを作成していたことだった。このリーダーボードは、開かれたプルリクエスト(PR: 自分の書いたコードをプロジェクトに組み込んでもらうための提案)、マージされたプルリクエスト、開かれたイシュー(課題やバグ報告)の数を表示し、貢献度をランキング形式で見える化するものだった。彼はこのリーダーボードに対して複雑な感情を抱いていたが、結局のところ、主に小規模から中規模のイシューに取り組み、7つのプルリクエストを開き、そのうち4つがマージされた。これにより、彼は200人の貢献者の中で15位にランクインした。この順位は悪くなかったものの、上位5名は15以上のプルリクエストをマージしており、彼らが採択される可能性が高いと感じ、彼は満足しきれていなかった。
その年、Rocket.ChatはAIや大規模言語モデル(LLM)の統合に関する多くのプロジェクトアイデアを提案していた。彼はその中から「AIを使用したチャットスレッド要約機能」というプロジェクトを選んだ。しかし、ここで彼は大きな過ちを犯してしまう。彼は時間を賢く使うことができなかったのだ。彼は提案書の作成よりも貢献活動に集中しすぎ、なんと提出締切日の直前まで提案書に取り掛からなかったのである。
2024年4月2日、提出締切日の朝、彼はようやく提案書の作成に取りかかった。このプロジェクトのチャンネルでは、いくつかのアイデアや実装の詳細が議論されていたものの、彼は潜在的なメンター(指導者)と詳細についてほとんど話し合っておらず、独立して提案書を書き始めてしまった。彼はプロジェクトに関連すると思われること、そのプロジェクトがどのように役立つか、実装の詳細、スケジュール、将来的な展望などを書き連ねたが、正直なところ、その提案書は強いものではなかった。多くの重要な詳細が欠けていたのだ。
その間にも、同じ3月にRocket.Chatに参加した別の学生が、わずか数日でランキング3位にまで急浮上し、そして彼と同じプロジェクトアイデアを選んでいた。彼の貢献度を見た時、彼はすでに自分がその学生に負けることを悟っていた。それでも、彼は少なくとも提案書を完成させて提出したいと考え、午後6時30分(締切は午後11時30分)に提案書を提出し、その日の作業を終えた。
そして、2024年5月1日、結果が発表された。彼は自分が選ばれないことを既に知っていた。そして、その予想通り、彼はGSoCに採択されなかった。
採択されたのは、彼と同じプロジェクトを選んだ、あのランキング上位の学生だった。彼はその学生に連絡を取り、彼の提案書を見せてもらうよう頼んだ。快く共有された提案書を見て、彼は驚きを隠せなかった。自分には小さなプロジェクトに見えていたにもかかわらず、その提案書はあらゆる側面を網羅した、信じられないほど詳細なものだったのだ。その学生は、どんな細部も見落とさないよう、徹底的に記述していた。この提案書から、そしてこの挑戦の旅全体から、彼は多くのことを学んだ。そして、彼はこの経験を糧に、さらに自分を向上させることを決意した。
この一連の経験から彼が学んだことは、大きく三つある。 一つ目は、「ヒントとコツ」に関する動画を盲目的に視聴することをやめるべきだということ。 二つ目は、基礎に集中し、技術スキルを向上させ、積極的にプロジェクトに貢献し、自分の価値を明確に示し、そして効果的なコミュニケーションを取ることこそが重要だということ。 そして三つ目は、提案書と貢献のどちらに重点を置くべきかは組織によって異なるが、もし不明な場合は、両方に均等に努力を注ぐべきだということだ。
これは、彼がGSoCに挑戦し、一度は失敗を経験しながらも、そこから大きな学びを得て次へと進む彼の物語の第一部である。