今日、GitHubに241日目の草が生えたよ
本記事はFUN Advent Calendar 2022の23日目の記事です。
昨日はダネさんの「FF14から見るグループワークにおける報連相の大事さ」でした。
Part2、Part3もあります
FUN Part2 Advent Calendar 2022
FUN Part3 Advent Calendar 2022
自己紹介
どうもこんにちは、JETです。
と言いたいところですが、今日はなぐもです。
未来大の学部4年で、モバイル中心の技術を触ってます。
最近はポケモンにお熱で、動画編集もやったりしてます。
草を生やすってなんぞや
GitHubに草を生やすって知ってますか?
正確にはContributionsといい、GitHubにどれだけ貢献したかを可視化する機能のことです。
コミットしたり、issueを立てたり、プルリクを出したり、レビューをしたりするとContributionsとしてカウントされ、草が生えます。
実際に生えた草がこんな感じです。
そこそこ生い茂ってますね。
これが畑なら収穫が待ち遠しいです。
草を生やした経緯
上の画像見てもちょっとわかると思うんですが、頑張る期間と頑張らない期間の差が大きくて、1ヶ月コード書いてないみたいな状況がよくありました。
僕はよくサボるので、ルール付けによって強制的にコードに触れる機会を増やそうとしました。それで思いついたのが、1日1コミットというルールです。
1ヶ月連続で草を生やした時に記事を書いたので、詳細はそちらの方ちらっと見るとわかります。ちょっと内容の重複があります。
振り返り
じゃあまずは毎日コミットを始めた4月にタイムスリップして、
どんなことやってたか、その時の心情などを振り返っていきましょう。
4月
えーとですね、この頃はICT演習のAndroid開発でJetpack Composeを使った開発をすることになったので、その勉強のためにじゃんけんアプリから作ることにしました。
ICT演習っていうのは弊学でやってるチーム開発で、学部生・院生が混ざって相互スキルアップをすることを目的としています。
ちなみに僕は2つ掛け持ちしてます。
Jetpack Composeっていうのは、AndroidアプリのUIを宣言的に構築できるUIツールキットです。従来のやり方よりも直感的で少ないコード量で書けます。
じゃんけんアプリはサクサクっと完成させる予定だったのが、従来の書き方の違いに混乱して、Twitterで疑問点を相談したりしてるようですね。
4月の終わりではまだ4日目、これからがんばるぞーという気持ちです。
5月
じゃんけんアプリも無事完成して、ToDoアプリとかフリマアプリみたいなアプリを練習でいくつか作ってました。
この頃、もう一つのICT演習でSwiftを使った技術を扱っていたので、どっちも頑張ろうということで、SwiftとKotlin、両方でコミットするというマイルールを自分に課しました。
実質1日2コミットですね。
そして5月27日、無事に1ヶ月連続で草を生やすことに成功しました。
上にあるように、それでブログも書きました。
内容は簡単なことしかやってないですが、強い自信に結び付きます。
6月
5月と同様に、アプリを作りながら勉強を進めています。
やる気は全然落ちてないようです。リーダブルコードを読んでみたり学習の意欲はかなり高かったです。
プログラミングを後輩に教えるTAとかもやったり、卒業研究も進めたりと、かなり忙しい時期ですね。
7月
TA業務と学会発表の準備が忙しく、KotlinとSwiftで毎日コミットというのがだいぶキツくなってきました。
アプリの作り捨てを続けていて、モチベもだんだんなくなってきたので、大好きな「ハゲタカのえじき」を模したゲームを作ってみることにしました。
ネットワークに接続しない機能で完結させたので、特に難しい技術を使うことはなかったですが、1ゲームとして作り切る上で書くコードはそれなりに多く、楽しんでやれたと思います。コミット量が増えました。
8月
学会発表も終わり、夏休み突入。
夏休みをどう使うかはずっと考えていて、せっかくの長期休みに開発だけするのもつまらんだろうということで、新しいことに挑戦したりしました。
一応毎日コミットはKotlinとSwiftで継続していきましたが、コミット量少ないです。でもコミットは欠かさずしてました。
9月
iOSDCに参加しました。iOSのITカンファレンスってやつです。
技育展に参加しました。ハッカソンみたいなやつです。
技育展に参加したことで、この夏は開発したなあって感じの雰囲気を出せました。ちょっとコミット量も増えました。
あと、コードレビューとかもお互いにするようになりました。
10月
DroidKaigiに参加しました。AndroidのITカンファレンスってやつです。
ちょっとこの月は1回体調を崩しちゃったりして、コミット量少なめになってます。
SwiftとKotlinでどっちもコミットっていうのはこの頃やめました。なんかどっちつかずって感じになってしまったので、とりあえず1コミットでいいかなと
11月
ICT演習での開発をしながら、自作アプリの細やかな修正などを続けました。ポケモンの新作が出たので夢中になって遊びますが、一応1日1コミットは続けています。
12月
先月と同じ感じ。Web開発にも興味を持って、ちょっと始めたりする。10月にReactをやろうとして挫折してやらなくなっちゃったんですけど、とりあえずjsの基礎から学び始めました。挫折した時はアプローチを変えるといいです。
振り返ってみて
総評。やってよかったです。
それだけしてればいいって話ではないですが、コード書くのが習慣化したと思います。こんなサボり症の僕が長い間継続できたってだけで涙ちょちょぎれます。
ただちょっと、「コミットに拘るとできなくなることがあるな」って思ってきました。
「今日はコミットは10分くらいで済ませよう」と考えた時に、実装の躓いてるところを解決させるためには絶対その時間じゃ収まらなかったり。それで無理やり変数名の修正とかして1コミットにする日とかもあったんですけど。
コミットに拘ると「コードを書く」ことになるんですけど、実際「コードを読む」時間がたくさん必要で、他人が書いたコードとか、ドキュメントや書籍を読んだりして勉強する時間も必要なんですよね。
難しい実装をどうやろうって考えたり調べたりする時間がコミットに繋がらないのが難しいですね。その辺目的と手段がスイッチヒッターになってる気がします。
忙しい時にしょうもないコミットだけ重ねるくらいなら、勉強の時間をちょっとでも取った方がいいのかなとも思うんですけど、コミットを毎日続けるってこと自体が実際やる気に繋がってるので、一概には言えないです。
質問コーナー
Q. モチベ維持のコツとかってありますか?
iPhoneユーザにおすすめなのは、GitHubアプリのウィジェットです。
僕のiPhoneの画面です。最初にこれを埋めた時はちょっと感動しました。
だいたい一画面で3ヶ月とちょっと分くらいなので、3ヶ月坊主の壁を超えるのにちょうどいい気がします。
Androidは無理なのかって話ですが、Google Play ストアにも非公式アプリで表示するやつがあるみたいです。ちょっと保証はできないですが。
Q. うっかり忘れたりってしなかったですか?
不思議としなかったです。なんというか、1日に1回コミットしなきゃいけないっていうのが染み付いちゃってます。朝起きて、いつコミットするかをベースに1日の計画をしてる気がします。
万が一にも忘れないように23時とか23時半にアラームをつけたりすることはよくありましたが、結局コミットするのを忘れててアラームで思い出すってことはなかったです。
一度アラームを消すのを忘れてて、お風呂に入ってる時に鳴りっぱなしだったことがあります。極力アラームは使いたくないです。
最後に
毎日コミットはあくまでコーディングの習慣化、サボり癖の改善になったというだけで、実際まだまだ勉強不足だと感じます。
多分、こういうルール決めをしなくても自然と草生えるだとか、草が生えなくても目標に向かって勉強したり開発する方が強くなると思います。
あとはハッカソンに出たり、インターンをしたり、そういう行動を起こすのも成長に繋がりやすいです。今年はHack Uと技育展に出ましたが、技術調査、チーム開発での立ち回り、人の目を引くプレゼンのやり方などなど、大きな学びにつながったと思います。
1日1コミットに関して、多分やり方とかもっと工夫すれば充実感が増える気がします。一生続けようって覚悟は正直ないんですが、具体的な成果を出せるまではやめたくないですね。
最後まで読んで頂きありがとうございました。
みんなもいい草を生やしましょう!
明日はしゅれねこさんの「朝焼肉の習慣は人生を変える」です。