この一年間、自分がGitHubで取り組んできたことを紹介してみる

どうも、kokushinです。
[un-T factory! XA Advent Calendar 2017](https://qiita.com/advent-calendar/2017/unt-xa) 18日目の投稿です。

今回は技術的な内容ではなく、僕がこの一年間取り組んできたGitHubでの活動についてお話したいと思います。

1〜2年前は全くと言っていいほど利用していなかったGitHubですが、今年に入って本格的に使い始めようと決め、コツコツとGitHubでの活動を続けてきました。

動機としましては「ポートフォリオサイトの代わりにしたかった」「プロジェクトを一元管理できる環境が欲しかった」など色々ありますが、とにかく**「周りのエンジニア友達に遅れを取りたくない！」**という気持ちが強くなったことが一番の理由です。

実際どれくらい頑張ったのか、成果を数値で見てみましょう。

[GitHub: @kokushin](https://github.com/kokushin)

2016年のcontributions数は **47** でした。
なんかスッカスカで残念な感じ。

![Screen Shot 2017-12-15 at 20.16.22.png](https://qiita-image-store.s3.amazonaws.com/0/57867/87270307-09b3-228d-8147-c218840df0b1.png)

プッシュされていたのは[Electron+Vue.js製のマークダウンエディタ](https://github.com/kokushin/mdve)、[gulpのテンプレート](https://github.com/kokushin/gulp-template)など。
この頃は全くと言って良いほど活用しきれておらず、とりあえず使ってみるか〜程度でした。

そしてこちらが2016年後期〜今年のcontributions数です。

![Screen Shot 2017-12-15 at 20.16.32.png](https://qiita-image-store.s3.amazonaws.com/0/57867/f4a99e3b-1bde-5d8a-2c77-0780bdd11d22.png)

なんと **1,423** まで増えました。前年の数値から約30倍の大幅アップです。
普段の業務ではGitHubを利用していないので、終業後や休日などプライベートな開発だけでここまで伸ばせたということになります。

ちょっと意識するだけでここまで変われるものなんですね...
Qiitaのcontributionsもそうですけど、やっぱり成果が目に見えるシステムってモチベーションの継続に繋がるので良いな〜と改めて実感しました。

そんな僕が一年間GitHubで何をやってきたのか、
実際に取り組んできたことをご紹介したいと思います。

## 何をやったか

自分のGitHubに関する一年間の主な行動を振り返ってみました。

- 有料プランにした
- 全ての個人プロジェクトをGitHubで管理するようにした
- 気に入ったリポジトリにスターを付けまくった
- トレンドリポジトリを毎日チェックするようにした
- ブログをGitHubで管理するようにした
- OSS（オープンソースソフトウェア）開発を行った
- OSSのソースコードを読み漁った
- 共同開発を行った

細かくご紹介していきます。

### 有料プランにした
GitHubは無料で利用できますが、その場合オープンなリポジトリしか作成できません。まだ公開したくないプロジェクトや、表に出せない情報を含むソースコードの管理を行えず、生産効率が悪くなると判断したため「Developer」プランへ加入しました。

価格は$7/monthなので、月額800円くらいです。
これでプライベートリポジトリを作りたい放題なので、気軽に **アイデア思いつく→速攻リポジトリを作る** の流れを行うことができました。

プロジェクトのスタートダッシュの敷居がかなり低くなるのでオススメです。

### 全ての個人プロジェクトをGitHubで管理するようにした

上記の流れができたので、以降は自然と個人でのプロジェクトをGitHub上で管理するようになりました。
GitHubにはWikiがあるので、思いついたアイデアや仕様、要件定義などを整理することも容易ですし、ProjectやIssueを使ってタスク管理を行うことも可能です。「プロジェクトの一元管理がしたかった」という面では、GitHubはまさに自分が求めていたモノでした。

### 気に入ったリポジトリにスターを付けまくった

役に立った・興味があるライブラリやソースコードに対してスターを付けまくりました。
またいつかお世話になるかもしれないので、ブックマーク代わりにこの機能を使っていたのですが、それ以上に**「感謝の気持ち」**的なものを込めて付けていた事が多かった気がします。
エンジニアはやっぱり数値とか目に見える評価をされるとすごく嬉しいはずなので、少しでも開発のモチベーション向上に繋がると良いな〜と思っています。

### トレンドリポジトリを毎日チェックするようにした

[Trending repositories on GitHub today](https://github.com/trending) から開発言語別でチェック可能です。
今どんなライブラリが世界で注目を集めているのか知ることができるので、はてブ、Qiitaと併せて毎日チェックしています。

### ブログをGitHubで管理するようにした

静的サイトジェネレータに[Hexo](https://hexo.io/)、サーバー環境にGitHub Pages、ソースコード管理にGitHubを利用してブログを運用しています。
記事のバージョン管理も出来るしサーバー代かからないし、記事投稿すればcontributionsに加算されるのでモチベーションも維持にも繋がります。オススメ。

### OSS（オープンソースソフトウェア）開発を行った

[CSSフレームワーク](https://github.com/unys/uny)や[CLIツール](https://github.com/kokushin/node-twatch)、[開発環境のテンプレート](https://github.com/kokushin/web-starter-kit)など、細かいものから大きなものまで色々作ってはGitHub上で公開しました。
実際の使用感をフィードバックしてくれたり、脆弱性を指摘してくれたり、スターを付けてくれたり、一人だけでは得られないものをたくさん得ることができました。

### OSSのソースコードを読み漁った

より良いOSSを開発するために、世界中で使われているライブラリのソースコードを色々読んで勉強していました。
気になるプロダクトを見つけたらすぐにブラウザ上でソースコードをチェックできるところもGitHubの良いところですね。コミットの履歴やクローズ済みのIssueなんかもチェックして、開発者がどういう作業をしていたのか覗いてみるのも勉強になると思います。

### 共同開発を行った

友達と一緒に[ドキュメントのジェネレータ](https://github.com/plant-milk/Yogurt)を共同開発しました。
GitHubにはQiitaと同じくOrganizationという機能があり、チームを作って共同で開発を進めることも容易です。
仕様やアイデアをWikiにまとめて共有したり、お互いの作業の進捗を見ながら役割分担をしたりと、ここでも「プロジェクトを一元管理できる」素晴らしさを実感できました。

「●●の機能追加したよー」とか「こうしたらどう？」とか、ソースコードを見せ合いながらコミュニケーションを取れるのもGitHubの面白いところですね。

## GitHubの利用で自分に起こった変化

上記のようなことを一年間続けていた結果、自分に以下のような変化が起こりました。
少々長くなってしまったのでこちらは箇条書きのみで...

- OSS開発の意欲が向上した
- プロジェクトの進行がスムーズになった
- Gitコマンドを使うようになった
- 自分じゃ気付けなかったミスや知見を得られた
- 新しい技術を追っていきたいと思うようになった
- リポジトリの検索を多用し、自分のコードを他人のコードと比較するようになった
- 便利なライブラリや自分が作ったものを周りの人に共有するようになった
- GitHubの公式グッズを買うようになった（ステッカー、マグカップ、フィギュア etc...）

こうやって振り返って見てみると、それなりに成長できた感じがしますね。

時にはプロジェクトの管理ツール、時には情報収集のツール、時にはコミュニケーションツールになったりと、**ソースコードのバージョン管理だけではなく、エンジニアとしての成長をサポートしてくれるほか、モチベーションの向上にも一役買ってくれるGitHub** は、本当に素晴らしいサービスだと思います。

まだ使い始めて1年程度で言うのもアレですが、GitHubを継続して利用するということに対して「損」だと思ったことは一切なく、むしろメリットしかないと思っています。


## 今後の目標

2018年も引き続きGitHubを活用しつつ、もうちょっとコミュニケーションツールとしての利用をしてみようと考えています。
具体的な計画は以下のとおり。

- コミュニティに参加してみる
- プルリクエストを送ってみる
- フォロー・フォロワーを増やす
- スター獲得を狙ってみる

大きな目標としては、**「コミュニティに参加してみる」**ですかね。
今年は個人的な活動が大半だったので、なかなか他の人の開発を手助けするということができませんでした。
まずはIssueを送ってみるとか、実際にコードを書いてプルリクエストを送ってみるだとか、より深いOSS開発に入っていけたら良いなと思っています。

もちろん、個人的なOSS開発も引き続き行っていきます。ただ、何も目標がない状態で開発をしていても面白くないので、とりあえずスターが100個くらい付くプロダクトを1つはリリースしたいと思っています。
シンプルなもので良いと思うので、世界でどういったモノが求められているのかいち早く察知し、スピード重視で取り組んでいきたいところです。

## 最後に

GitHubを頻繁に利用するようになってから創作意欲は格段に向上しましたし、色々と学ぶことも多くありました。

まだGitHubを利用したことがない、もしくは迷っている方はぜひ来年からと言わず今から使い始めてみてください。特に、**新人のエンジニアには絶対オススメなサービス** だと思います。

「こういうの作ってみたんですがどうでしょうか」とか「ちょっとコードレビューしてもらっても良いでしょうか」とか、GitHubを通じて周りの人をどんどん巻き込んでいきましょう。
そういった行動が後々の自分の成長や評価に繋がっていくはずです。

最後まで読んでいただきありがとうございました。
少しでもお役に立てる情報があれば幸いです。

それでは良いエンジニアライフを！