Hacktoberfest2025 — 初めての OSS 貢献がここから始まる多言語サンプル集

タグ HacktoberfestOSS貢献初心者向け多言語サンプルGitHubアルゴリズムプルリクエストcolumnコラムlinuxLinuxwindowsWindowsオープンソースfineanmolHacktoberfest2025
🚀 今すぐ試せます! デモスクリプトをダウンロードして、解凍後にターミナルで bash ファイル名.sh を実行してください(中身を一度確認してから実行すると安心です)。 (macOS / Linux 環境が必要)

Hacktoberfest2025 — 初めての OSS 貢献がここから始まる多言語サンプル集

ひとことでいうと

Hacktoberfest2025 は、毎年10月に世界中で開かれるオープンソース貢献イベント「Hacktoberfest」の入口となる多言語サンプルコード集です。C・C++・Java・Python など複数の言語のサンプルが1つのリポジトリ(ソースコードの置き場)にまとめられており、初めてプルリクエスト(Pull Request=変更提案)を送る練習の場として幅広く活用されています。貢献者として PR がマージ(取り込み)されると、GitHub のアバター(プロフィール画像)がプロジェクトページに自動表示される仕組みも用意されています。プログラミングを学び始めたばかりの方から、OSS 活動の第一歩を踏み出したいエンジニアまで、誰でも参加しやすい設計になっています。


こんな人におすすめ

1. GitHub の操作を初めて体験したい方 git clone(複製)・git push(送信)・プルリクエストという一連の流れを、手順が丁寧に書かれた README を見ながら実際に試せます。失敗しても本番プロジェクトに影響しないため、安心して練習できます。

2. Hacktoberfest に参加してグッズをもらいたい方 毎年10月1〜31日に開催されるオープンソースイベントで、4件の PR がマージされると公式スワッグ(Tシャツなどのグッズ)の獲得対象になります。このリポジトリは初心者向けに設計されており、PR のハードルが低めです。

3. アルゴリズムを多言語で比較しながら学びたい方 挿入ソート・ヒープ・フィボナッチ数列・回文判定など定番のアルゴリズムが C++・Java・Python など複数の言語で収録されています。同じ処理を別の言語でどう書くかを見比べる学習素材として活用できます。


インストール・使い方

このリポジトリはビルド(コンパイル一括処理)の手順が不要な静的コレクションです。各ファイルをそれぞれの言語処理系(Python / g++ / javac など)で単体実行できます。

Step 1: リポジトリをフォーク&クローンする

まず GitHub 上でリポジトリを「フォーク」(自分のアカウントにコピー)してから、手元のパソコンに「クローン」(複製をダウンロード)します。ターミナル(文字で命令を送る画面)を開いて以下を入力してください。コピー&ペーストで大丈夫です。

git clone https://github.com/自分のユーザー名/Hacktoberfest2025.git
cd Hacktoberfest2025

cd は「そのフォルダの中に移動する」という命令です。

Step 2: 作業用ブランチを作成する

ブランチ(branch)とは「作業用の枝」のことです。メインのコードを壊さずに変更を加えられます。

git checkout -b my-contribution-branch

my-contribution-branch の部分は自分のわかりやすい名前に変えて構いません。

Step 3: ファイルを追加・編集してコミット&プッシュする

自分の言語でプログラムを1ファイル追加したり、既存コードを修正したりしたら、変更を保存して GitHub に送ります。

git add .
git commit -m "Add: my new contribution"
git push origin my-contribution-branch

git add . は「変更したファイルを全部まとめる」、git commit は「変更に名前をつけて保存する」、git push は「GitHub に送信する」という操作です。

Step 4: GitHub 上でプルリクエストを開く

GitHub のリポジトリページに移動すると「Compare & pull request」というボタンが表示されます。クリックして内容を確認し、送信すれば完了です。PR がマージされると貢献者ページのアバターが自動的に更新されます。

Step 5: Python サンプルを手元で動かす

Python 3 がインストール済みであれば、追加のライブラリなしにすぐ実行できます。

python3 number-guessing.py

数当てゲームが起動します。C++ ファイルは以下のようにコンパイル(機械語に変換)してから実行できます。

g++ heap.cpp -o heap && ./heap

サンプルを手元で試す

リポジトリにはすぐ動かせるサンプルが複数収録されています。Python 3.12 系の環境があれば pip install などの追加インストールは不要です。C++ ファイルは g++(C++ コンパイラ)、Java ファイルは javac があれば個別にコンパイルして実行できます。どのファイルもシンプルな単体プログラムになっており、依存関係(他のライブラリへの依存)がほとんどないため、環境を選ばずに動作確認しやすい構成です。


動かしてみた

Python 3.12.13 が利用可能な環境で、リポジトリのファイル構成を実際に確認しました。pip による追加インストールなしに Python ファイルを直接実行できることを確かめています。収録されているファイルの一部を以下に示します。

./number-guessing.py                    # 数当てゲーム(Python)
./Income_Cal.cpp                        # 収入計算(C++)
./SwapTwoNumbers.java                   # 2数の入れ替え(Java)
./insertion.cpp                         # 挿入ソート(C++)
./heap.cpp                              # ヒープ構造(C++)
./plasma.c                              # プラズマ描画(C)
./Guess_game.c                          # 数当てゲーム(C版)
./LeetcodeProblems/palindrome.cpp       # 回文判定(C++)
./LeetcodeProblems/fibonacci.cpp        # フィボナッチ数列(C++)

Python・C++・Java・C と多言語・多様なアルゴリズムが1つのリポジトリにまとまっており、幅広い学習素材として機能していることを実際のファイル一覧から確認できました。LeetcodeProblems フォルダ配下には中〜上級の問題実装も含まれており、段階的に難易度を上げながら学習を進められます。


はじめの一歩 — すぐ試せる実践ガイド

  • 最初の PR は「1ファイル追加するだけ」でOK。得意な言語で簡単なプログラムを1つ追加するだけで立派な貢献になります。
  • **「ビルドステップを追加しない」「他のファイルを削除しない」「PR は小さくまとめる」**の3点がリポジトリのルールです。意識するだけでレビューが通りやすくなります。
  • コンフリクト(競合)が起きにくい構造になっています。新しいファイルを追加するだけで済むため、他の人の変更と衝突するケースが少ないです。
  • フォーク後に元リポジトリと同期したい場合は、README に記載された git remote add upstream の手順を使いましょう。upstream(元リポジトリ)の最新状態を手元に取り込めます。
  • Python サンプルから始めるのが最短ルートです。python3 number-guessing.py の1行で動くため、環境構築で詰まる心配がほとんどありません。
  • LeetCode 問題は C++ 実装を読むだけでも学習になります。自分の解法と比較することで、書き方のヒントが得られます。

活用例

  • アルゴリズム実装の参照・写経: LeetcodeProblems/ 配下にフィボナッチ数列・回文判定・配列反転などの実装があります。自分の解答と見比べながら写経(手で書き写す練習)することで、書き方のコツを体感的につかめます。
  • 言語横断の比較学習: 同種の処理が Java・C++・Python で別々に実装されています。たとえば数値処理を Java と C++ で読み比べるだけでも、構文の違いや設計の違いに気づく発見があります。
  • OSS 貢献ワークフローの習得: 大規模な OSS に PR を送る前の練習台として、フォーク → ブランチ → コミット → PR の一連の流れを安全に体験できます。失敗しても他の人のコードに影響しません。
  • Hacktoberfest イベントへの参加: 毎年10月の開催期間中に PR を送ると公式の参加カウントに含まれます。学習と同時にイベント参加実績を積めるため、一石二鳥です。
  • 初めてのコードレビュー体験: PR を送ると元リポジトリのメンテナーからコメントが付くことがあります。レビューのやりとりを通じて、コードを他者に読んでもらう感覚を早い段階で経験できます。
  • 自作アルゴリズムの共有・公開: 自分で書いたソートや検索のプログラムをこのリポジトリに追加することで、世界中の学習者に参照してもらえるサンプルとして公開できます。

用語とポイント解説

Hacktoberfest(ハックトーバーフェスト) DigitalOcean と GitHub が共催する年次のオープンソース貢献イベントです。毎年10月1〜31日の1ヶ月間、世界中の開発者が参加します。かんたんに言うと「10月限定のOSS貢献お祭り」です。4件の PR がマージされると参加認定・スワッグ獲得の対象になります。

リポジトリ(Repository) ソースコードやドキュメントをまとめて保管・管理する場所のことです。GitHub 上では1プロジェクト=1リポジトリという形が一般的です。かんたんに言うと「プロジェクトのファイル置き場」です。バージョン管理ツール Git と組み合わせて変更履歴も記録できます。

フォーク(Fork) 他の人のリポジトリを自分のアカウントにまるごとコピーする操作です。元のリポジトリには影響を与えずに自由に編集できます。かんたんに言うと「他人のノートをコピーして自分用にする」イメージです。GitHub 画面右上の「Fork」ボタン1つで実行できます。

クローン(Clone) GitHub 上のリポジトリを自分のパソコンにダウンロードする操作です。git clone URL と入力するだけで手元に複製が作られます。かんたんに言うと「クラウド上のファイルをパソコンに落とす」操作です。以降の編集はすべてパソコン上のファイルに対して行えます。

ブランチ(Branch) メインのコードと切り離した「作業用の枝」のことです。ブランチで変更を加えてから本流(main)にマージするのが標準的な開発の流れです。かんたんに言うと「下書き用のスペース」です。何か失敗してもメインのコードに影響しないため、安心して試行錯誤できます。

プルリクエスト・PR(Pull Request) 自分のフォークや作業ブランチから元のリポジトリへ「このコードを取り込んでください」と提案する GitHub の機能です。かんたんに言うと「編集した原稿を編集部に提出する」行為です。レビュアーがコードを確認してOKを出すと「マージ(merge)」されます。

コミット(Commit) 変更内容にメッセージをつけて保存する操作です。git commit -m "メッセージ" と入力します。かんたんに言うと「変更の保存ポイントを作る」ことです。コミットを積み重ねることで変更の履歴が残り、あとから元に戻すこともできます。

マージ(Merge) あるブランチやフォークの変更を別のブランチに取り込む操作です。PR がマージされると、提案した変更が本流のコードに反映されます。かんたんに言うと「下書きを本文に貼り合わせる」作業です。コンフリクト(別々の変更が同じ箇所を書き換えていた場合の衝突)がなければスムーズに完了します。

アルゴリズム(Algorithm) ある問題を解くための手順・計算方法のことです。挿入ソート(小さい順に並べ替える手順)やフィボナッチ数列(前の2つの数を足して次の数を作る規則)が典型例です。かんたんに言うと「問題を解く手順書」です。このリポジトリでは複数言語でアルゴリズムの実装例が確認できます。

コントリビューター(Contributor) リポジトリに変更を提供した人のことです。PR がマージされると自動的にコントリビューターとして認定されます。かんたんに言うと「そのプロジェクトに貢献した人」のことです。Hacktoberfest2025 ではコントリビューターの GitHub アバターがプロジェクトページに表示される仕組みになっています。


ぜひ Hacktoberfest への初参加や、アルゴリズム学習のスタート地点、OSS 貢献ワークフローの練習台などに活用してみてはいかがでしょうか。