はじめに
勉強って面倒な時は本当に面倒です。
机に向かおうとしていた体が気づけばベッドの上に転がっている、なんてこともしょっちゅうです。危機感を覚えた私は、どうにか机に向かう癖をつけられないかとインターネットの海を漂流していたところ、TILというものを見つけました。
TIL(Today I Learned) とは、その日に学んだことをGitHub上に簡潔に記録していく学習方法のことをいうそうです。
今回はGitを使ってTILを記録する方法と、1週間実践してみて感じたことをまとめましたので、ぜひご覧ください。
一人で調べて一人でまとめているので、どこか間違っている場所があればコメント等で教えてください。
目的
- 学習を日常の習慣にする
- 学んだ内容をアウトプットし、知識を定着させる
- Gitコマンドに慣れ、GitやGitHubの基本操作を身につける
- GitHubの草(コントリビューション)が茂っているのを見て気持ちよくなる
GitHubには他にも多くの機能がありますが、最初からすべてを理解しようとすると混乱してしまいそうだったため、今回は「学習記録ツール」として使いながら、今後少しずつ理解を深めていくことにします。
初日
GitとGitHubが別のサービスであることを知り、混乱しました。その日は学んだ内容をChatGPTにまとめてもらい、「Gitを使って保存して」とコマンドまで丸ごと出力させました。指示どおりにコピペしていくうちに気づいたら作業が終わっているような感じでした。
数日後
Gitコマンドのチートシートを作成し、基本的な操作を整理するようになりました。Markdown形式にも少しずつ慣れ、見やすく記述できるようになった反面、面倒に感じてただの文章を載せてしまう日もありました。
また、ある時ふとVSCode上でコミットできることに気づき試してみると、変更したファイルの横に「M」というマークが表示されました。これは “Modified(変更済み)” を意味していましたが、当時は意味が分からず少し不安になり、以後はGitコマンドを通して概念を理解してから再度試すことにしました。
① 対象フォルダへ移動
cd "対象フォルダの絶対パス"
② 状態を確認
git status
③ 変更をステージ
git add .
④ コミット
git commit -m "変更内容の要約"
⑤ プッシュ
git push
7日目
Gitコマンドの操作に慣れてきた頃、別の勉強で作成したファイルをプッシュしてみようと思いました。しかしチートシートには新しいリポジトリを作成する手順がなかったため、再びChatGPTに頼りながら進めました。結果としてリポジトリの作成とファイルのアップロードに成功しました。その手順をチートシートにも追記し、次回からは自分一人で行えるようにしました。
① 対象フォルダへ移動
cd "対象フォルダの絶対パス"
② Gitの初期化(フォルダをGit管理化)
git init
③ブランチ名をmainに統一
git branch -M main
④.gitignoreを作成(不要ファイルの除外)
例:.gitignore(プロジェクト直下に作成)
--------------------------------------
# OS
.DS_Store
Thumbs.db
# Editor
.vscode/
.idea/
# Build / cache
node_modules/
dist/
--------------------------------------
⑤ GitHubで空のリポジトリを作成(README等は今は一旦無くても良さそう)
例: https://github.com/<ユーザー名>/〇〇.git
⑥ リモート(origin)を登録
git remote add origin https://github.com/<ユーザー名>/〇〇.git
⑦ 状態を確認
git status
⑧ 変更をステージ(コミット対象に選択)
git add .
(特定ファイルだけなら)git add index.html など
⑨ コミット(ローカル履歴に記録)
git commit -m "ファイル内容が分かる簡単なメモ"
⑩ 初回プッシュ(GitHubへ反映)
git push -u origin main
※ -u を付けると次回以降は「git push」だけでOK。
全体を通して学んだこと
この取り組みを通じて、ふと浮かんだ疑問をスマホに書き留めたり、今夜はどんなことを書こうかと考えることが日常になりました。その結果、学習内容を振り返る時間が明らかに増えました。
目的の一つでもあった、机に向かう習慣についてもこの調子で定着しそうです。TILは毎日学習することを前提としているため、机に向かう時間が以前の倍くらいに増えました。
技術面での学び
この期間に学ぶことができたのはざっくり次の通りです。
- Dockerの基本的な概念や主要なコマンド
- Gitとは何か
- GitHubとの違い
- HTML・CSS・JS・PHPの基礎
- 簡単なLinuxコマンド
- Linuxを学ぶべき理由
簡単なWebサイトを5本ほど模写し、フロントエンドとバックエンドの全体像を俯瞰することができる初心者向けの書籍も1冊やり切ることができました。少しずつではありますが、“開発の流れ”というものが頭の中でつながってきた実感があります。
(おまけ 直近で読んだ本まとめ)
これ1冊でゼロから学べる Webプログラミング超入門 ーHTML,CSS,JavaScript,PHPをまるごとマスター
物凄く丁寧で優しい 簡単に一周できた この本を一発目に選んで正解だった
ゲームやスマホアプリ作るところまで教えてくれてすごい
これだけで基本がしっかり身につく HTML/CSS&Webデザイン1冊目の本
デザインメイン 2/3くらい進めた
楽しいけどバックエンド志望ならさらっとで良いよと自戒を込めて
はじめてのWebデザイン&プログラミング: HTML、CSS、JavaScript、PHPの基本
これからじっくり取り組んで着実に力にしたいなって感じ
カレンダー型ToDoアプリを作るところまで教えてくれる ありがとう
今後の課題
今後の課題は、Gitについてはブランチの概念理解とGitHubフロー(開発手順)の習得かなと思っています。これまではmainブランチに直接コミットしていましたが、実務では新機能や修正ごとにブランチを切り、レビューを経てmainブランチにマージするのが一般的だそうです。今はまだぼんやりしてます。
次のステップとして、以下の操作を学んでいこうと思います。
-
git branchでのブランチ作成・切り替え -
mergeやpull requestの流れ - GitHub上でのチーム開発の流れ
TIL更新の延長として、これらを少しずつ実践していきます。
また、できる限り具体的に書いた方が記憶に残るんだろうな~と思いつつも、実際はなんだかんだざっくりとした記録しかできなかった気がします。とはいえ毎日更新されるものを復習用ノートみたいに細かく書くと情報が散らばってしまうので、自分の中で(あぁ、あれ書いたときの話ね)と思い出せるくらいの情報量がちょうどいいのかなと思いました。
おわりに
今回はGitを使ってアウトプットを実践しましたが、たとえばNotionを使ったり紙のカレンダーを使ったりと、記録方法は人それぞれあったものを使用するのがベストなのかなと思いました。重要なのは、いかに習慣を設計するかだと感じました。TILを書くことはその仕組みを技術的にも心理的にも支えてくれる手段になり得るのではないかという手応えを感じています。
この記事が、私と同じように学習を続けている誰かにとって少しでも励みになれば嬉しいです。
最後までお読みいただき、ありがとうございました。