質問
つまり、私は 5 年以上プログラミングを行ってきましたが、オープンソース プロジェクトにコードをコミットしたことはありません。私は多くのツール (主に Java コミュニティ) を使用し、その内部を調べました。何かに携わってみたいけど、どの方向に進むべきか全く決められない。
オープンソースに取り組んでいる皆さん、どこに進むかを決めるのに何が役立ちましたか?何があなたを動機づけたのですか?それはただの気まぐれだったのでしょうか?とても情熱を注げるものはありましたか?出発点についてはどうですか?私のような人は、参加を待っているオープンソース プロジェクトを見つけるにはどこに行けばよいでしょうか?
解決
まずはあなたの興味のあるものをじっくりと検討させていただきます。興味のないことに深く関わりたくないでしょう。あなたが通常コンピュータを何に使っているかをいくつか考えてみましょう。私はジオキャッシングが好きなので、自分の趣味をサポートするソフトウェアに取り組むのが好きです。
次に、www.sourceforge.net または www.codeplex.com を参照するとよいでしょう。前者はよりプロフェッショナルな雰囲気があり、オープンソースコーディングに専念する人が多く、複数のメンバーがいるのに対し、CodePlex は 1 人の開発者によって作成されたプロジェクトがあり、それを公開して保存する場所として機能する傾向があると思います (個人的な意見)。
最後に、プロジェクトの要求を見て、私生活にそれに取り組む時間があるかどうかを評価することが重要だと思います。
他のヒント
もっと気軽に始めたい場合は、オープンソース ソフトウェアを日々の使用に追加し始め、機能拡張や修正が必要と思われるものを見つけて、ソースをダウンロードして修正し、パッチを送信してください。
Sourceforge には、多くのオープンソース プロジェクトの「募集職種」のページがあります。 http://sourceforge.net/people/
閲覧して、興味のあるものがないか確認してください。
そして、私自身もオープンソース開発者として、FOSS をサポートしていただきありがとうございます。
私のアドバイスは、支援が必要なプロジェクトを無作為に選ぶのではなく、自分の努力があなたとコミュニティの両方に利益をもたらすものを選ぶことです。たとえば、使用しているオープンソース ソフトウェアのうち、特定の領域で改善が必要だと思うものを選択することもできます。
ただし、そのようなプロジェクトを見つけたら、コントリビュートを開始する前に、その文化を理解するために少し時間を取るつもりです。たとえば、そのプロジェクトは多数のプラグインを備えた小さなコアを好むのか、それともメイン プログラムに機能を追加するだけでよいのかなどです。大規模プロジェクトの多くには、新しい貢献者向けに具体的な指示があります。本 大聖堂とバザール も興味深いかもしれません。
それはあなたの目標が何であるかによって異なります。興味のあるプロジェクトを選択しないと、時間が経つにつれて興味が薄れてしまいます。改善や修正の方法を常に考えることになるため、実際に使用する具体的なものが最適です。
一方、新しい言語で練習したい場合は、アクティブなプロジェクトに取り組んでいる場合に、時間をかけてコードの塊に取り組んでいくのが良い方法です。同僚を怒らせないように、コミットする前に必ずレビューを受けてください:)
私のアドバイスは、まず自分が取り組みたいプロジェクトを見つけることです。あなたがよく知っているオープンソース ソフトウェアを思い浮かべてください。ソフトウェアを改善する方法をすでに知っている場合はボーナスポイント。
ほとんどのプロジェクトには、その中で何をする必要があるかを示す「ヘルプ募集」ページがどこかにあります。ここは、大きな改善に着手する前に、基礎を固めてコードベースを学ぶことができる、取り組む小規模プロジェクトを探すのに最適な場所かもしれません。
あるいは、独自のプロジェクトを開始することもできます。頻繁に使用するコードで、他の人にとっても役立つと思われるコードがあるはずです。世の中には、「これが私が持っているものです。役立つ場合は使用してください。そうでない場合は使用しないでください」というタイプのプロジェクトがたくさんあります。ただ、たくさんの努力をする気がない限り、すぐに人気が出るとは期待しないでください。
参考にさせていただけますか 別の FOSS クエリに対する私の以前の回答 (オープンソースに貢献するにはどのレベルのプログラミングが必要ですか) さらに、誰かのアイデアに従おうとするのではなく、自分自身のかゆみを掻きむしってください。簡単なバグ修正や機能追加がない限り、プロジェクトに興味がなく、パッチを提出したい場合は、先に進み、もっと楽しめるものを見つけてください。
ほとんどの人が言ったことを繰り返します...興味のあるプロジェクト、または使用したいプロジェクトを見つけてください。私は日常の仕事に役立つだろうと 2 つのオープンソース プロジェクトに参加するようになりました。自分が使用する、または投資しているプロジェクトであることは、コードの開発とリリースを継続する動機付けに役立ちます。
長い間、私は自分のコードを公開検査に出すことについて不安を感じていましたが、最初の数回のコミットの後は、実際にはそれほど大したことではありませんでした。得たフィードバックのおかげで、私はより良い開発者になれるだけです (そもそも私がその一人と呼べるのであれば)。
幸運を!
理由は人それぞれだと思いますので、一概にこうするということは言えません。私がそれをした理由は次のとおりです。
私たちが使っていたのは 存在データベース 中小企業革新的研究プロジェクトの場合。いくつかのデータベースには、失うことが許されないデータがありました。URI の内部処理が理想的ではないことが判明し、データにアクセスできなくなりました。開発チームに相談したところ、問題を修正するのに必要な時間を費やすことができた人は誰もいませんでした。そこで、私は数週間フルタイムで作業し、すべてを修正してコミットしました。私の貢献はビジネス上のニーズから来ており、上司がその期間だけ私にそれに取り組むことを快く許し、それをコミュニティに寄付するという事実によって可能になりました。
正直に言うと、ほとんどのオープンソース プロジェクトは、新しい開発者をすぐに受け入れるわけではありません。ただし、私がお勧めしたいのは、毎日のワークフロー、使用しているソフトウェア、お気に入りのソフトウェアを見つめることです。それらはオープンソースですか?興味のあるものはありますか?
興味のあるプロジェクト (できれば使用しているソフトウェア) を選択し、バグ トラッカーをチェックして、修正を提出するための要件を確認することをお勧めします (通常、提供される形式を除いて要件はありません)。一般に、バグ修正に貢献したり、コミュニティの他の部分 (フォーラム、メーリング リスト、IRC チャネルなど) に参加したりすることが、すぐに参加する最も簡単な方法です。
一般に、最終的にオープンソース プロジェクトの開発者になるほとんどの人は、この方向に進みます。ただし、魅力的ではないバグ修正は非常に役立ち、足を踏み入れて自分の名前を世に出す良い方法ではあります。
以下のすべては、モチベーションを高めてオープンソース プロジェクトに参加するのに役立ちます。
- 関連するスキルを持っている (そうしないと貢献するのは難しいですが、それでも良い学習経験になるかもしれません)
- ソフトウェアのユーザーであること あなた自身(あなたはそれをもっと気にし、理解するでしょう)。多くのオープンソース プロジェクトがテクノロジーに精通した開発者をターゲットにしているのは偶然ではありません。
- 哲学を大切にする あなたがサポートしている組織/財団の名前 (たとえば、FSF 哲学が好きなら、GNU プロジェクトに貢献したいと思うかもしれません)
- ツールチェーンを知る - これにより、参入障壁が低くなります。たとえば、プロジェクトがビルド管理に Maven を広範囲に使用している場合、Maven で何を行っているかを知るのに役立ちます。
- コミュニティを好きになる - プロジェクト内の他の人と仲良くなると、貢献する道がスムーズになり、貢献することがさらに楽しくなります。
逆に、オープンソース コミュニティが新しい貢献者やユーザーを同様に引きつけるためにできることもいくつかあります。
- ドキュメンテーション - 何が起こっているのか理解できない場合、おそらくユーザーと潜在的な貢献者を同様に無視するでしょう。
- 簡単な初期構築 - 初心者がビルドを機能させることができない場合、彼らはただ諦めてしまうかもしれません。できるだけシンプルでわかりやすいものにしてください。可能な限り、標準的な方法で共通のツールを使用します(例:Maven を使用する場合は、カスタム セットアップなしで新しい Maven インストールで正常にビルドされることを確認してください)
- フレンドリーで歓迎的である - 人々があなたのコミュニティに参加して幸せだと感じられるように。
- 即応性を高める - プロジェクトが専門的に運営されていると感じられ、コミュニティが目に見える進捗状況を確認できるようにするため
- 営業中 - 誰もが参加でき、密室で間違った決定を下すリスクを負わないようにするためです。