Open3

なぜWebエンジニアリングのお勉強にGitHubを活用するべきなのか?14の理由を考える

Shota NukumizuShota Nukumizu

考えられる理由

  • 実際のコードを学べる
  • OSS(Open Source Software)に参加できる
  • 最新の技術トレンドをキャッチできる
  • バージョン管理と協働のスキルを学べる
  • フィードバックを受け取れる

実際のコードを学べる

GitHubには数多くのプロジェクトやライブラリがホストされており、これらのコードを読むことで、実際の開発現場でどのようなコードが書かれているのかを理解できる。実際の現場で活用されるコードは、教科書やチュートリアルだけでは得られない。

OSS(Open Source Software)に参加できる

GitHubはオープンソースプロジェクトが集うWebサービスで、自分が興味を持つプロジェクトに貢献して実務経験を得られる。あと、OSSへの貢献は自分の技術的なスキルを証明するポートフォリオにもなりうる。

最新の技術トレンドをキャッチできる

新しい技術やライブラリは頻繁にGitHubで公開されている。GitHubを定期的にチェックすることで、最新の技術トレンドをある程度把握できる。

バージョン管理と協働のスキルを学べる

GitHubはバージョン管理やチーム開発のための機能が豊富である。バージョン管理やチームでの開発は、現在のソフトウェア開発において必要不可欠である。

フィードバックを受け取れる

自分のプロジェクトをGitHubに公開したり、他のGitHubのプロジェクトにIssueを立てたり議論したりすることで、他の開発者からフィードバックを受け取ることができる。

Shota NukumizuShota Nukumizu

[追記]他に考えられる理由は?

他に考えられる理由としては、主に以下のようなことが考えられる。

  • ドキュメンテーション
  • 問題解決へのヒント
  • コードレビュー
  • ネットワーキング
  • ソフトウェアのライフサイクルへの理解

ドキュメンテーション

多くのソフトウェアプロジェクトやライブラリでは、GitHub上のリポジトリに公式ドキュメンテーションが掲載されている。これにより、開発者はそのソフトウェアやライブラリの最新の機能やAPIについて学べる。

問題解決へのヒント

GitHubのIssueやPull Requestは、特定のバグの修正方法や機能の実装方法についての議論が行われる場所です。これらを読むことで、自分が遭遇した問題の解決策を見つけることができる場合があります。

余談になるが、これに関しては、Stack Overflowで遭遇したバグに対する対応策がソースコードや画像付きで丁寧に解説されていることがある。英語の読解力を必要とするものの、使いこなせれば問題解決能力が上がることは間違いない。積極的に使い倒すべきだろう。

コードレビュー

他の開発者が提出したPull Requestと、それに対するレビューへのコメントを読むことでコードレビューの方法を学ぶことができる。品質の高いソフトウェアを開発するための重要なスキルになる。

ネットワーキング

GitHubに自分のプロジェクトを公開したり、他のプロジェクトに貢献したりすることで他の開発者とのつながりを作れる。

ソフトウェアのライフサイクルへの理解

GitHubを通じて、ソフトウェアの開発、テスト、デプロイ、メンテナンスというようなライフサイクルを経験し理解できる。

Shota NukumizuShota Nukumizu

[追記]他に考えられる理由

  • 学習リソースへのアクセス
  • ツールやベストプラクティスへの理解
  • ソフトウェアライセンスへの理解
  • プロジェクト管理を学べる

学習リソースへのアクセス

GitHubには、無料でアクセスできる教育的なリソースが豊富にある。例えば、Awesomeと呼ばれる一連のリポジトリでは、特定のトピックに関する資料、ツール、プロジェクトが集められている。

ツールやベストプラクティスへの理解

GitHubにホストされているプロジェクトは、一般的に業界標準のツールやベストプラクティスに従っている。これにより、CI/CD(Continuous Integration/Continuous Deployment)、ユニットテスト、コードレビューなどの現代の開発プラクティスを学べる。

ソフトウェアライセンスへの理解

オープンソースプロジェクトは様々なライセンスが適用されており、それぞれがプロジェクトの使用方法や貢献方法を規定している。これらを通じて、ソフトウェアライセンスの理解を深められる。

プロジェクト管理を学べる

GitHubはプロジェクト管理のための機能も提供している。例えば、Issueトラッキング、マイルストーン、プロジェクトボードなどを通じて、タスクの整理や進捗の追跡を行う方法を学ぶことができる。

総括して考えると、Webエンジニアリングの学習で積極的にGitHubを使い倒すべきである。