※本記事はプログラミング初心者向けの内容です。
■はじめに
以前エンジニアの方に、「GitHubに上がっているスターの数が多いリポジトリを読んでみるのも勉強にはよいかも」と教えていただいたのですが、「いきなりコードを読むなんてできるのだろうか・・・もうちょっと勉強してからやってみよう」と正直心の中で思ってしまっていました。
しかし、「読まなければ読めるようにならないよ?」、「勉強してからっていつ?」、「いつまで経ってもやらないんじゃないの自分?」と自分で勝手に危機感を持ったので、まずはやってみる精神でやってみました。また、独学だとエンジニアの方からのアドバイスってすごく貴重でありがたいのです。せっかくエンジニアの方が親切にアドバイスしてくださったのでやってみようと思いました。
■やってみた結果(結論)
自分が抱えている課題を解決する糸口になる可能性があるので、初心者でもメリットがあるなと感じました。「しっかり読まないといけない、読めないといけない」という意識は取り払って、まずはやってみるのが良いと思いました。
■どのようなプロセスで行ったか
スターの数が多いリポジトリの調べ方はググれば出てくると思うので、本記事ではどのように取り組んだかを記載します。「初心者がこんな感じで見てみるのもありかもね」くらいの認識でざっと読んでいただければと思います。
1.目的(課題や知りたいこと)を明確にする
今回は仮に、「アラームのアプリが設定時刻にバックグラウンドから起動し音を鳴らすにはどのようにすればよいかのヒントを探す」ことを目的とします。
検索結果からスターがついていて、関連しそうなリポジトリを選択。
今回は、以下のリポジトリを参考にさせていただきました。
参考:Alarm-ios-swift/IOS/Alarm at swift-4.0 · natsu1211/Alarm-ios-swift · GitHub
3.ファイル構成を確認し、関連しそうなファイルを探す
ファイル名で推測しにくい場合は、次の4に進みましょう。
※余談
今回の目的を達成する以外にもコードを見てみるメリットがありました。
まずファイル構成。機能をファイルごとに分けて部品化し、使いまわせるようにしているのは常識だとは思うのですが、私のような初心者には、「オブジェクト指向を理解したコーディングってこんなイメージなのだろうな、このくらいできないとマズいのか・・・。」という発見がありました。
また、ファイル名や関数名が誰が見てもなんとなく書かれている内容が推測しやすい名称になっていて、改めて名称の付け方は大事だなと思いました。
初々しさMaxで恥ずかしい・・・。
4.ざっとでよいのでコードを読んでみる
「Scheduler.swift」のファイルの119行目に「UILocalNotification()」の記述を発見。どうやら時間になると通知を出して音を鳴らしていると推測できます。目的のヒントになりそうなキーワードなので、通知に関してググり定義などを調べていきます。
■注意点
以下の記事からは、GitHubのコードを読むことはメリットもあるものの、デメリットもあることが記載されていますので、参考にしてみてください。
私としては、「初心者は入門書を1冊しっかりやることが重要」というのは改めて認識しなければと思う一方で、デメリットを認識した上でGitHubのコードを読んでみるのは学習法の1つとして有効かなと感じました。
参考:GitHub - 「コードを読め」という勉強について(32185)|teratail
■おわりに
本記事のテーマに取り組む中で感じたのは、「うまくできなくてもいいから、とりあえずやってみる」の大事さでした。(なんだか小学生の感想文みたいな表現で恥ずかしすぎますが笑)
「ちゃんとできないと」とか、「できるようになってから」とか、ググった記事の内容だけで「これは自分のレベルには向かないんだな」と決めつけてしまうのはもったいないですね。言葉にするのは簡単ですが実践し続けるのは簡単ではないので、定期的にこの記事読み返したり、いろいろやってみる事例を増やしたいと思います。