私は1年前に働き始めたばかりですが、他の誰かと同じ理由でオープンソースプロジェクトに参加したいと思っています。何か役に立つものを作成し、自分のスキルをさらに高めてください。
私の問題は、私が適合するプロジェクトを見つける方法がわからないことです。
初心者向けのプロジェクトを見つけるにはどうすればよいですか?どの属性を検索する必要がありますか?プロジェクトが適切ではないかもしれないという兆候は何ですか?人々とオープンソースプロジェクトを一致させるのに役立つツールはありますか?
私は1年前に働き始めたばかりですが、他の誰かと同じ理由でオープンソースプロジェクトに参加したいと思っています。何か役に立つものを作成し、自分のスキルをさらに高めてください。
私の問題は、私が適合するプロジェクトを見つける方法がわからないことです。
初心者向けのプロジェクトを見つけるにはどうすればよいですか?どの属性を検索する必要がありますか?プロジェクトが適切ではないかもしれないという兆候は何ですか?人々とオープンソースプロジェクトを一致させるのに役立つツールはありますか?
回答:
私が最初にオープンソースに貢献したのは、以前の有料プロジェクトで以前に使用したことがあるライブラリでした。最初の使用中にコードのバグを見つけたので、パッチを作成し、プロジェクトに参加して、レビューのために提出しました。
約8か月後、空き時間ができたときに、プロジェクトにさらに貢献することで、私は還元する(そして開発スキルに取り組む)ことを決めました。そこで、リポジトリを複製し、コードベースに慣れ始めました。コードベースにマイナーパッチ修正を送信し、機能要求を監視して数週間後、機能要求をピックアップして、かなり実質的なモジュールをプロジェクトに追加しました。
多くの個別のパッチ修正を生成することは、重要な開発にとってかなり面倒なので、リポジトリをgitハブのブランチにクローンし、コードをパンチアウトし始めました。数週間後、数千行のコードをプロジェクトリーダーと私は、コードベースの他の部分と一貫して機能するように修正をライブラリに統合およびテストしました。
これは非常に貴重なプロセスであり、次のことから多くを学びました。
この特定のプロジェクトは、ネットワークプロトコルのすべてのレベルでネットワークパケットを生成およびデコードすることに基づいています。私は低レベルのネットワーキングに個人的な関心を持っているので、ドメインの関心と知識を共有している別の開発者と議論するのは素晴らしいことでした。
足を濡らしたいだけなら、すでに使用しているプロジェクトを見つけてください。リポジトリを複製します。バグを修正したり、ユニットテストを追加したりできるかどうかを確認します。他の人のコードベースを新鮮な目で見るのは恐ろしいように思えますが、学ぶには非常に価値のあるスキルです。いくつかのパッチを提出してください。最初は、コードが綿密に調査されることが期待できます。心配する必要はありません。プロジェクト管理者の信頼を得るのはプロセスの通常の部分です。
プロジェクト管理者とのメリットのベースを確立した後、管理者は、新しい機能の提案、機能要求の実装への割り当ての依頼など、より多くの責任を探し始めます。
メインのオープンソースリポジトリネットワーク(github、sourceforge、google code)のいずれかに既存のプロジェクトが見つからない場合は、まだ存在しない本当に使用したいアプリを考えて、自分で起動します。
謙虚になる準備をし、さらなる改訂を支持して作業が拒否されることを期待してください。誰でもコードをオープンソースプロジェクトに追加できるという神話は完全に間違っています。あなたとプッシュアクセスの間には常にゲートキーパーがいます。プロジェクト管理者からの信頼を得るため、コードが優れているほど、長い目で見て精査されることは少なくなります。あなたのプロジェクトなら、あなたはその門番になります。
更新:
私はそれについて考えただけで、私の答えの多くが参照しているプロジェクトを言及することを気にしていないことに気付きました。知りたい人のために、それはSharpPcapです。主任開発者のクリス・モーガンは非常に専門的であり、適切です。彼はプロジェクトを管理するという大変な仕事をしており、OSSプロジェクトを成熟させるために必要なことについて多くを教えてくれました。
個人的な時間の制約のため、私は1年以上コードを提供することができませんでしたが、スタックオーバーフローに潜んでいて、SharpPcapに関する質問に時々答えることで、まだ還元しようとしています。
ここであなたの完璧なマッチを見つけるために私がすることを提案します:
すでに使用し、知っており、気にかけているオープンソースプロジェクトがある場合は、最初に試してみてください。それ以外の場合は、一般的にやりたいことを考えて、この分野のプロジェクトを検索します。
潜在的なプロジェクトを見つけたら、急いで進まないでください。自分で使用してみてください。それは説明とレビューから見えたのと同じくらいアクションで良いですか?そうでない場合は、完全なショーストッパーではありません。多分それはあなたが飛び込んで本当に違いを生む機会です。結局のところ、完璧な製品のために他の開発者を必要とする人はいません。ただし、このプロジェクトに参加したいかどうかについて重要な洞察を得ることができます。また、興味のある分野で新しいテクノロジーを直接体験できます。
また、プロジェクトにあまりにも多くの時間を費やし始め、プロジェクトの詳細を学習する前に、プロジェクトのメーリングリスト、フォーラム、バグ追跡システムに数週間滞在することを検討してください。定期的にプロジェクトへの貢献を開始する場合は、そこで多くの時間を費やします。
考え出す:あなたはあちこちにぶらぶらしているのを楽しんでいますか?このプロジェクトは、元気で良いコミュニティを持っているように感じますか、それともゆっくりと死んでいきますか?そこにいる中核の人々は、新参者を励まし、指導するように思われますか?
潜在的に異なる分野の複数のプロジェクトに対してこれらの手順を実行すると、間違ったチームに参加したときに失望する可能性が低くなります。そのような経験は、将来あなたが再びそれをすることを潜在的に落胆させる可能性があります。
さらにいくつかの考え:
あなたが本当に興味のあるプロジェクトが、その周りに多くの開発者と活動がある注目度の高いプロジェクトである場合、おそらく、コミュニティで権利や興味深い役割をコミットするなど、十分な評判を確立するのに苦労するでしょう。この場合、関連性の低いスピンオフプロジェクトへの参加を検討してください。たとえば、jQueryへの貢献を開始する代わりに、あなたにぴったりのjQueryプラグインを見つけてください。後で「上に移動する」ことを検討できます。
プロジェクトが好きであるが、そのサイズ、複雑さ、またはコード品質の要件に不安を感じる場合は、テスト、ドキュメントのメンテナンス、バグレポートの検証などのサポートロールから始めることを検討してください。プロジェクトメーリングリストで、現時点で最も必要な支援の種類を尋ねると、彼らはそこを案内してくれます。:)
この方法で、プロジェクトを学習して評判を高めながら、準備が整うまで何度も拒否される標準以下のパッチを提出し始めた場合よりも貢献します。
最後の、そして最も重要なこと:あなたが一カ所でやけどを負ったら、先に進んでください。あきらめないでください。
お役に立てば幸いです。
あなたの誠実な興味を持つオープンソースプロジェクトを見つけて、あなたが積極的に使用することを強くお勧めします。
理由は簡単です:それは雑用と趣味の違いになります。
お使いのコンピューターをご覧ください。オープンソースのソフトウェアは何ですか?推測は、ChromeやFirefox、あるいはOpen OfficeやInstant Messengerクライアントでしょう。それらは完璧ですか、それとも可能であれば変更したい小さなものがありますか?
もしあれば、今こそそれについて何かをする時です。
人々が何年もやってきたように、プロジェクトを見つけて(または開始して)、物事を行うためにオープンソースソフトウェアを使い始めることをお勧めします。それは、おそらく単純化されていても、あなたにとって些細なことのように思えるかもしれません。しかし、何かを使用したり、バグを見つけたり、ソースを入手して修正したりすることの満足度を説明するのは非常に困難です。または、おそらくあなたが望むように機能するように変更します。
また、「関与」するためだけにハッキングしないでください。Linuxカーネルへの私のパッチの95%は決して日の目を見ることはありません。私以外の誰も望んでいないことは確かです。しかし、私はまだpiglatin_printk()
数年前に4月1日のギャグとして開始された実装を楽しんでいます:)
はい、他の多くの有能な人々の前であなたのコードと思考プロセスを取得することは非常に貴重です。ソロプロジェクトは、やってはいけないことを示す素晴らしい方法です。ヒント、バージョン管理ソフトウェア、メーリングリスト、バグトラッカーを使用するだけではありません。
はじめに、Ohlohを掘り下げて、最初にを使用して興味のあるソフトウェアを見つけることをお勧めします。ダウンロードして、ビルドして、遊んでください。それから何か他のものをつかんでください。最終的には、何かを改善したい、またはあなたが見つけたものとは完全に異なるものを実装する衝動があることに気付くようになります。
他に役立つのは、オープンでフレンドリーな会社で働くことです。私の会社はXenを広く使用しているので、興味深いバグを見つけて修正するのに問題はありません。とにかくやらなければならないからです。また、最終的に結果を使用するため、RFCやドラフト仕様などに参加している従業員も気にしません。
オープンソース開発を始めようとしている人々に関して私が繰り返し気づいたことの1つは、彼らが大きなプロジェクトの膨大な複雑さと大きさに圧倒されるということです。私は数年前に同じ問題に直面しましたが、私の経験から、より大きなプロジェクトをすぐに見ないことが最善です。
私が好きかもしれないプロジェクトをしばらく見て過ごした後、私はそれらがまだ私の手の届かないところにあることに気づき、それから私自身で非常に小さなプロジェクトに取り組み始めました。本当に関連性があるかどうか、または他の人がそれを使い始めるかどうかに関係なく、Githubでコードをリリースすることを強調します。最終的に、人々はあなたがしていることに興味を持ち始めるかもしれません。それ以外の場合でも、より大規模で人気のあるプロジェクトにゆっくりと移行する自信と技術的能力を獲得できます。
このために、新しい開発者が毎週新しいOSSプロジェクトを開始することでオープンソースに参加することを奨励するCode 52と呼ばれる新しいWebサイトがあります。
これは、これまでオープンソースに関与したことがない人にとってはそれほど気が重くなく、他のOSSプロジェクトにも参加したいと思うことを願っています。
:私は読書をお勧めしますhttp://open-advice.org/を。
これは、コミュニティを作成および維持する人々、および参加したいコミュニティや参加方法に自信がない人々を支援することを目的としています。
それに失敗したら、あなたに共鳴するミッションを持つプロジェクトを見つけるか、あなたに既に役立つプロジェクトに分岐して貢献してください。
幸運を。
私が始めたとき、私はオプションをオンラインで検索しました、そして、あなたが初心者としてあなたの歯を沈めることができる何かを見つけることは挑戦的であるとわかりました。
一部のプロジェクトは、あまりにも高度であるためではなく、コミュニティが歓迎していないために貢献するのが困難です。だから、壁にぶつかってもがっかりしないでください。
検索中に、私は初心者があまりストレスの多いプロセスなしでサポートを開始できる10のオープンソースプロジェクトのリストをまとめることにしました。使用するリンクは次のとおりです。
役立つと思いますし、かっこいいものを見つけたらいつでも追加できることを願っています!
興味のあるトピックについて、自分でプロジェクトを開始することをお勧めします。
一般的にプロジェクトに取り組むことで多くのことを学ぶことができます。他の誰かがどのようにコーディングするかを見て、より良いコーディング方法を学ぶ必要はありません。また、他の人はあなたよりも経験が少ないことが多いため、何をすべきでないかを実際に見ることがあります。
通常、他の人のコードを見るのに役立ちますが、使用するライブラリとコンポーネントを介して、自分のプロジェクトで他の人のコードに遭遇します。
経験は良いことと悪いことを教えてくれます。
私はGoogleコードのプロジェクトオーナーであり、貢献者を探しています。(まだこの答えを広告に悪用することはありません。)したがって、私の意見はあなたにとって興味深いかもしれません。
あなたは最初のものを見つける必要があるでしょうあなたがに興味が「再。その後に関連するいくつかの分野でいくつかの専門知識を開発し、あなたの興味。次に、専門知識が要求され、必要とされるプロジェクトを見つけます。
プロジェクトが小さければ小さいほど、すでに貢献者が少ないほど、貢献者が求められる可能性が高くなり、作成者/プロジェクト所有者に直接連絡することができます。a)あなたの専門知識を教えてくださいb)プロジェクトでそれを適用できると思われる場所c)あなたが達成できると思うもの。
覚えておいてください。1つまたは2つの主流のプログラミング言語を知っているだけでは、専門知識ではありません。