エンジニアとして成長するべく私が実践している学習方法

＜この記事は「[Money Forward Advent Calendar 2015](http://qiita.com/advent-calendar/2015/moneyforward)」の10日目の記事です＞

エンジニアとして成長するために日々、新しいことや興味のあることを勉強している方が多いと思います。

今回は私が実践していてオススメだと思う学習方法を紹介させていただきます。

# その1 Twitter

ある言語や分野について学んでいくうちに自ずと、その界隈で有名な人を知るようになると思います。

それは、困った時にググると毎回出てくるブログの著者の方だったり、勉強会に参加した時に発表していた登壇者の方だったり。

そうやって知った方々を私はTwitterでフォローするようにしています。

理由として、そういった方々はアウトプットが素晴らしいため、Twitterでのツイートも有益な情報をつぶやかれていることが多いと感じているからです。

また、その方がフォローしている方やBotもとても有益な情報をもたらしてくれることが多いためフォローするようにしています。

そうするとその分野での良質な情報が集まるようになるので、通勤の電車の中で見て、これは試してみたい！とか後でじっくり読みたい！と思った記事などをリツイートして週末や時間のある時に自身がリツイートしたものを見て学習しています。

なるべく取捨選択してリツイートするように心がけています。
そして自身の感情などは1つも呟かないので、ひょっとするとこいつはBotなのではないか？
と勘違いされることがありますが手動です。

ちなみにTwitterのアカウントは [@hachinobu1](https://twitter.com/hachinobu1) です。
私はiOSエンジニアでSwift言語とかのリツイーターです。

# その2 GitHub Trending

エンジニア大好きGitHubです。

ご存知の方も多いと思われますがGitHubは言語ごとに「本日」、「今週」、「今月」という単位でスターの数が多かったリポジトリや流行っているものを見ることのできる [Trending](https://github.com/trending?since=weekly) があります。

Trendingを見るにはGitHubにログインしたら右上の自身のアイコンのところ[View profile and more]をクリックしてリストからExploreをクリックします。
<img width="184" alt="スクリーンショット 2015-12-09 21.00.56.png" src="https://qiita-image-store.s3.amazonaws.com/0/27785/a2c9fdde-b7a1-1274-ca0d-a86dabc94d85.png">


Explore画面の右上にTrendingというのがあるのでクリック。
<img width="1029" alt="スクリーンショット 2015-12-09 21.05.50.png" src="https://qiita-image-store.s3.amazonaws.com/0/27785/779a0bc1-d489-6583-30ea-31fb936b47be.png">


Trending repositoriesページの右側に期間と言語を選ぶところがあるので、そこから自身の興味のあるものを見ることができます。

<img width="997" alt="スクリーンショット 2015-12-09 21.10.02.png" src="https://qiita-image-store.s3.amazonaws.com/0/27785/9bb9814c-d548-1f8c-814f-198240b0c043.png">



<img width="988" alt="スクリーンショット 2015-12-09 21.13.50.png" src="https://qiita-image-store.s3.amazonaws.com/0/27785/ba5b7fc8-7c5f-2a30-f501-aa3ab9fa40c0.png">

スターが多いということは、それだけ注目されているリポジトリであり、沢山のPull Requestが飛び交っている可能性が高いです。

大勢の人に見られていると意識するとコードの書き方にも気を配るでしょうからモダンな書き方などを学ぶにもってこいです。

実際にcloneしてコード見ながら手元で動かすことで勉強になるし、こんな書き方できるんだ！などの発見が多いと思います。

そういった発見を自身のブログネタにできたりと良いことづくしです。


# その3 Search GitHub
これまたGitHubです。

Search GitHub??
なんだそれは。と思った方もいらっしゃると思いますがSearch GitHubとは
GitHubにログインすると検索Barがありますよね？

その検索Barをよく見てください。

プレースフォルダに**Search GitHub**と記載がありますね？

そうです。これです。

<img width="999" alt="スクリーンショット 2015-12-09 21.24.59.png" src="https://qiita-image-store.s3.amazonaws.com/0/27785/ddf933ed-e89e-36ac-beee-428fa5ebd25f.png">

これをどんな時に使うかというと、お目当のリポジトリを検索する時に使っている方が多いと思いますが、私の場合は少しだけ違います。

皆さんはあるAPIやライブラリの使い方が分からないとか、これを使って他の皆はどんな風な設計でコードを書いたりしているんだろう。と気になったことはありませんか？

私はそう思った時に使っています。

具体的かつ簡単な例をあげるとiOS9で追加されたUIStackViewがあります。
そのクラスに生えている
insertArrangedSubview(view: UIView, atIndex stackIndex: Int)
というメソッドの使い方が分からないとします。

そんな時こそ**Search GitHub**です。
迷わずinsertArrangedSubviewと検索窓に入力して検索しましょう。

<img width="417" alt="スクリーンショット 2015-12-09 21.49.03.png" src="https://qiita-image-store.s3.amazonaws.com/0/27785/b6cd103f-dda5-f570-c258-8103cf8134c0.png">

すると当然、そんな名前のリポジトリを作っているスキモノは存在しないという結果が表示されます。

<img width="995" alt="スクリーンショット 2015-12-09 21.50.38.png" src="https://qiita-image-store.s3.amazonaws.com/0/27785/c4c6cb92-b8b1-2657-9569-5b1bbe0c7564.png">

しかし諦めるのは待ってください。
**Search GitHub**のデフォルトのスコープはリポジトリなのです。
なので今、私が検索した結果はリポジトリではヒットしないよというだけなのです。

よく見てください。
**Repositories**の下に **Code 126**となっています。
これは、そんな名前のリポジトリなんてないけどCodeの中探したら126件ヒットしたよという意味です。

早速Codeをクリックすると

<img width="1009" alt="スクリーンショット 2015-12-09 21.58.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/27785/9fcfbcff-8b4a-280c-7ee8-c67f27a3a352.png">

検索したメソッドを使っているコードのファイルが見ることができます。
左下のLanguagesからお目当の言語を選択することで更に絞ることができます。

これでお目当のコードを探しだして、使い方などを理解できたりします。
全然Starがついていないリポジトリでも凄く参考になるものもあって、お礼の代わりといってはなんですが、感謝の気持ちを込めてStarをつけたりして去っていきます。

Search GitHub便利ですよ。

# 最後に

私はエンジニアになりたての頃、どうすればもっと成長できるか、どうやって勉強したら良いのかと漠然と考えたり悩んだりして不安になってました。
先輩に聞いても特に腑に落ちるような答えは返ってこなかったりして。。

他にも今の会社でエンジニアが自分一人で成長したいけど、どうすれば良いのかとか、昔の私と同じような境遇で悶々としている人にこの記事が少しでも役に立てれば幸いです。

Swiftもオープンソースになるような昨今、インターネット上には本当に沢山の上質なコードで溢れています。

もうこの時代に、一人ぼっちだから成長できないよ。は通じないんじゃないかなと。

私もエンジニアとしてまだまだ未熟者なので、共に成長していけたらと思います。

要は悩む暇とかあったらコード書きなさいという事ですね。

日々是精進。