プログラミングの習得ってなかなか難しいものですよね。でも数々の学習法がある中で、最も「プログラミング力がつく」方法はオープンソースプロジェクトに参加してみて、プロジェクトに貢献することです。
「え…それってハードル高くない?」と思った方。
実はオープンソースプロジェクトはプログラミングの知識がない方でも貢献できる場面が多々があります。いわんやプログラミング初心者をや。
なぜオープンソースプロジェクトなのか?
オープンソースプロジェクトがオススメできる理由は下記です。
・ソースはオープンであるべきと考える人たちがたくさんいる
オープンソースプロジェクトにはコーディングを通して世界をよりよくしようとする熱心な理想主義者たちが集います。そうしたシェアの願望はプロジェクトを完遂させる大きなモチベーションとなります。
・初心者プログラマにとって格好のスタートの場を与えてくれる
おそらくプログラミング初心者はプロジェクトの細かいサポート的な役割を担うことになります――ライブラリのバグ修正やコードレビュー、ドキュメントの一部をコーディングなど。
でもそうした役割を通して「きれいなコード」に触れる機会に恵まれます。「きれいなコード」とは、読みやすく維持もしやすいコードのことです。世界に通用するプログラマになるためには、誰でも理解できるコードを書けなければなりません。
・プログラミング仲間ができる
オープンソースコミュニティでは、きっと気の合う人や自分をサポートしてくれる仲間を得ることができます。もしフリーランスの方なら、そこからお仕事の紹介なんかももらえることが結構あります。
・もちろんプログラミングスキルが上がる
もちろんプログラミングスキルが上がるのは間違いないですし、オープンソースコミュニティの一員になれるのも大きなメリットです。
オープンソースプロジェクトに参加する前に知っておきたい3つのこと
1.プログラミング言語
あらゆるアプリケーションの最も根源的なテクノロジーは「プログラミング言語」です。コラボレーションの場となるGithubで頻繁に使われている言語は、JavaScript,、Python、 Java,、Ruby、PHPです。自分のスキルや好みに合った言語を使っているプロジェクトに参加しましょう。
2.プロジェクトタイプ
Githubには「Showcase」というプロジェクトのカテゴリのようなものがあります。いくつか例を挙げると、「セキュリティ」、「VR(バーチャルリアリティ)」、「テキストエディタ」、「CSSプリプロセッサ」など。
またプロジェクトタイプで注目したいのは「世界中で使われるアプリケーションであるか?」です。自分の書いたコードが世界中の人々に使われるなんてプログラマ冥利に尽きますよね。例えば「Emonji」カテゴリなどは今世界的に人気のShowcaseです。
3.プロジェクトの規模
開発コードが数千行に及ぶような大規模プロジェクトは初心者プログラマ向きではないかもしれません。こうした大規模プロジェクトでは求められるスキルも高くなります。逆に「初めての方限定(first-timers-only)」や「初心者(beginner)」「簡単(easy)」などのラベルがついているプロジェクトはおすすめです。
オープンソースプロジェクトにどう参加すればいいのか?
ここではポピュラーなオープンソースプロジェクトへの参加方法を紹介します。
1.自分でプロジェクトを作る
あらゆるプロジェクトは必要性からスタートします。もしGithubやBitbucketに自分が作りたい機能が見つからなければ、自分で新規プロジェクトを作ってみましょう。その際に他の参加してくれるかもしれない人々に伝えておくべきことは下記です。
・自身のプロジェクトにはどんなスキルが必要か?
・プロジェクトにどれくらいの時間を割けるのか?
・そのソフトウェアでどんな問題を解決できるのか?
・そのプロダクトの潜在ユーザーはどれくらいいるのか?
2.有償ソフトウェアの代わりとなるものをオープンソースで作る
今日の商用プロジェクトはオープンソースでの解決を積極的に促進しています。多くの企業がオープンソースのツールをベースに使って開発しているのです。これがオープンソースプロジェクトがクローズドなソフトウェアにうち勝つ理由でもあり、自身が直面した問題を解決するソフトウェアが存在する理由でもあります。
3.既存のプロジェクトに参加する
Githubでは自由に参加できるプロジェクトがたくさん存在します。またデベロッパーはプロジェクトを分岐させたり、コードを書き換えたり、プルリクエストを送ることもできます。
しばしばデベロッパーは自身のコードの品質チェックを怠ることがありますが、そうしたチェックはいつでも歓迎されます。そのためバグを見つけ、その解決法も一緒に送るとより歓迎されます。
また盛り上がっているプロジェクトを知りたい場合は「Trending」を見てみてください。アドバンス検索もできますので、自身の言語などからもプロジェクトを絞って探すこともできます。
前述のようにオープンソースプロジェクトに参加すると数々の利益が得られます。新人プログラマの方も臆することはありません。プロジェクトに貢献できる場は数々あるので、ぜひ一度参加してみてください。
(※本稿は「How Junior Developers Can Contribute to Open Source Projects」を翻訳・再編集したものです)