19
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

NIJIBOXAdvent Calendar 2022

Day 15

Write Code Every Dayを習慣化するための3つの方法

Last updated at Posted at 2022-12-14

自分は未経験で株式会社ニジボックスに入社しました。
周りの先輩たちに早く追いつきたい!という思いからWrite Code Every Dayを始めることにしました。
2021年3月頃から始め、この記事を書いてる時点で650日ほど継続をしています。

2021年
2021.png
2022年
2022.png

この記事では、Write Code Every Dayを習慣化するために行ったことを3つ紹介します。

Write Code Every Dayとは

Write Code Every Dayとは直訳すると毎日コードを書くことを意味しますが、元々はJohn Resig氏が始めた取り組みです。
John Resig氏のWrite Code Every Dayについての投稿にいくつかのルールが記されています。
引用元:

1.I must write code every day. I can write docs, or blog posts, or other things but it must be in addition to the code that I write.
2.It must be useful code. No tweaking indentation, no code re-formatting, and if at all possible no refactoring. (All these things are permitted, but not as the exclusive work of the day.)
3.All code must be written before midnight.
4.The code must be Open Source and up on Github.

ざっくり訳すとこのようなルールになります。

  1. 毎日コードを書かなければならない。ドキュメントやブログはその後にすること。
  2. 有益なコードを書かなければならない。
  3. 深夜までに書かなければならない。
  4. オープンソースとしてGitHubにあげなければならない。

1.ルールを優しくする

習慣化のためにまずしたことが、このルールを設定し直すことです。

特にルール2「It must be useful code.(訳:有益なコードを書かなければならない。)」はハードルが高いなと感じました。
冒頭でも書いた通り、Write Code Every Dayを始めることにした理由は技術力向上のためです。なのでその時点でいいコードが書けなくても一旦良しとしました。

まずは継続することを目的とし、毎日コードを書いていく中でいいコードが書けるようになればokというスタンスです。
ただし「改行を追加するだけ」とか「console.logを追加するだけ」のような書いても自分にとって得るものがないようなものはNGとして線引きしていました。

次にルール4「The code must be Open Source and up on Github.(訳:オープンソースとしてGitHubにあげなければならない。)」についてですが、まずは継続を目的にしていましたのでプライベートリポジトリでもokとしました。

最終的にはこのようなルールとしました。

  1. 毎日コードを書かなければならない。
  2. どんなコードでも良い。ただし、できるだけ有益なコードを目指すこと
  3. 深夜までに書かなければならない。
  4. GitHubで管理すること。

2.公言することで強制力を働かせる

自分1人で進めているとどうしても「今日はやらなくてもいいかな」と思うことがあります。
そこで自分はチームのメンバーにWrite Code Every Dayをしていることを伝えることにしました。また、終業後にコードを書くための時間をカレンダー上で設定し、みんなが見える状態で取り組むことにしました。(カレンダーに設定することで、遅い時間にミーティングを設定されにくくなるという効果もありました。)

ある週のカレンダー
スケジュール.png

公言することで「途中でやめる」=「一緒に働く人に嘘をつく」となり、続けざるを得ない状況になります。
ちなみにWrite code Every Dayを始めてから半年くらい経つと
カレンダーに設定しなくてもコミットしないと気が済まないようになってきました。

3.作りたいものがない場合は競プロがオススメ

毎日コードを書くといっても何を書けばいいのか?と思う方もいらっしゃると思います。
そういう方には競技プログラミングをはじめとする学習サイトがオススメです。

コーディングするための題材が用意されるので、コードを書くことに集中できます。
また、アルゴリズムやデータ構造など普段の業務ではあまり意識しないことを学べるという点でも取り組んでよかったなと感じます。

参考までに利用したことのあるサイトを貼っておきます。

AtCoder

LeetCode

AIZU ONLINE JUDGE

おわりに

Write Code Every Dayを始めてから作ったものはこんな感じです。(途中でやめたものもありますが)

  • 競プロ
  • 本の写経
  • SNS
  • 画像のスクレイピング
  • ポートフォリオ
  • マッチングアプリ
  • todo管理
  • 貯金箱アプリ
    などなど

ここまで続けた感想としては、
始める前と比べて実装方法を考えることに慣れてきたかなと思います。あとはコードを読むことに対する抵抗も少なくなった気がします。
業務で使用しないような技術を触ったり、アプリケーションを0から設計したりもするので、以前よりできることの幅は広がったかなと思います。

以上、この記事がWrite Code Every Dayの取り組みに役立ててもらえたら幸いです。

19
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?