Jag TalonさんはWebエンジニアとしてのキャリアをスタートしたとき、まず何をするべきなのかが分からず途方に暮れたそうです。コーディングスクールにも通って、在学中はコーディングに関する本をたくさん読んだそうです。しかし、いざ卒業すると、Webエンジニアとしての目的(ゴール)が漠然としていることに気付き、「次は違う学校に通った方がいいのか?」「もっと本を読むべきなのか?」と混乱してしまったのです。これは彼だけに限ったことではなく、多くのエンジニアが直面する問題でもあります。
そんな初心者Webエンジニアが最も効率的に成長する方法は、プロジェクトに参加することです。
彼はトレンドに追い付くためにたくさんのウェブサイトを辿って、たくさんの本を読みあさりましたが、ほとんどのことは忘れてしまって、全く身につかなかったそうです。なぜなら、一度も実際のプロジェクトで使ったことが無かったからです。そこで、プロジェクトで手を動かしてみること、特に、オープンソースに貢献することこそが、成長の一番の早道だとTalonさんは考えています。
以下、彼の記事を参考に翻訳しています。
なぜオープンソースなのか、その理由は4つあります。
・リアルなプロジェクトで働く経験が積めるから。
・リアルな人間からのフィードバックをもらえるから。
・他の人のコードを読みながら勉強できるから。
・本物のテクノロジーに触れることで、常識にとらわれない考えを養えるから。
それでは、いくつか実際にWebエンジニアとして勉強になったプロジェクトをご紹介します。
・CSSgram: “CSS library for Instagram filters.”
・tacofancy: “community-driven taco repo.”
・Bliss: “Want to use Vanilla JS but find native APIs a bit unwieldy? Bliss is for you.”
・MediumEdit: “Medium.com WYSIWYG editor clone.”
・Tachyons: “Functional CSS for humans.”
・Ghost: “Just a blogging platform”
・TodoMVC: “Helping you select an MV* framework”
・Ava: “Futuristic JavaScript test runner”
もしここに興味の引くプロジェクトがなければGitHub Explore, 24 Pull Requests, Up for Grabs, First Timers Onlyもチェックしてみてください。
GitHubのプロジェクトにはissueリストがあります。まずあなたがすべきことは、自分が取り組めるレベルのissueを探すことです。探すのに最適な方法は、直接聞いてみることです。どのようにあなたがプロジェクトに貢献できるのか分からなかったり、タスク自体が明確ではないのならば、コメントで聞いてみるか、新しいissueを作って「どうすればいいのか分からない」と正直に言ってしまえばいいのです。
もちろん、無視されることもあるでしょう。そんなのは普通です。コメントを無視されたり、あなたのコードが拒否されたりすることがあっても決して落ち込まないように。いろんなプロジェクト関わっていてコメントを読む暇がない人もたくさんいます。そんなときは、あなたは実生活と同じように次から次へとプロジェクトを飛び回ればいいのです。また、コードを拒否されても、なぜ拒否されたのかをじっくり考えてから何度もトライすればいいだけです。自分のミスから勉強するのです。
自分のスキルよりも少しだけ上のissueを選んでみることがお勧めです。私の場合は、CSSgramでプルリクエストを送る前にCSSフィルターについて勉強しなければならないことが分かったので、CSSフィルターについて勉強しました。これは後々、プロジェクトにも活用できたのでいい経験でした。
最後になりますが、オープンソースに触れることは習慣づけることが大事です。一日に一時間でも、一週間の内の一時間でもいいので、習慣的にオープンソースに貢献することで、あなた自身が成長できるのです。
この記事では英語の参考サイトしか載せられていませんが、この記事を通してどのようにご自身に合うオープンソースを探していくのかを知ってもらえると幸いです。
この記事は「Are you a beginner at web development? Give open source a shot」を翻訳・参考にしています。