04 — Daily Practice

Thirty minutes a day beats three hours on Saturday. This is not a motivational cliché, it is a claim about how skill acquisition works in your brain, and the neuroscience is on the side of the cliché. Skill is a frequency-of-contact function, not a total-hours function. A pianist who plays 30 minutes a day for a year is better than one who plays 3.5 hours only on Sundays for a year, even though the total hours are identical. C is no different.

The daily 30-min “C touch”

Every day of the working week, you touch C for at least 30 minutes. Not “at least 30 minutes of coding.” Touching C. The rotation:

Day

What “touching C” looks like

Mon

Read a chapter or section from your current book (K&R, CS:APP, Effective C, Beej, whichever is current). Highlight, take notes. No code required.

Tue

Code a small snippet — a function, a stub, a syntax experiment. 30–60 lines. Committed.

Wed

Read someone else’s C code. redis source, sqlite amalgamation, nginx event loop, a Linux driver, a github/openai/tiktoken.c file. Read, don’t build.

Thu

Fix a bug in your own current project. Or write a test that would have caught it. Or add error handling to a function that has none.

Fri

Write one paragraph — on your blog, in your journal, in a scratch file. About one thing you learned this week. Public > private, but private > nothing.

Sat

The long block. 2–3 hours. This is the day scope moves. Sprint deliverables get built here.

Sun

Rest. Or, in odd-numbered weeks (sprint-end), the retro from 01_sprint_cadence.md.

Notice that only 3 of the 7 days involve writing new C code. Reading, teaching, and fixing are as important as writing. You are not trying to be a code monkey; you are trying to be an engineer who thinks in C.

Why frequency beats intensity

Three reasons, in order of importance:

  1. Working memory decays fast. A concept encountered on Monday and not touched again until Saturday is 70% forgotten. Encountered daily, it enters long-term memory in about a week.

  2. The identity effect. After 90 consecutive days of touching C, you begin to think of yourself as “someone who does C.” That identity is worth more than any tutorial. You don’t need to convince yourself to open the editor; you just open it, because that’s who you are now.

  3. Sunk-cost momentum inverts. With intensity-based practice, missing Saturday feels catastrophic — a whole week wasted. With daily practice, missing Tuesday costs you 30 minutes, and Wednesday is right there. The recovery cost of a lapse is tiny, so you don’t spiral after one.

The “no zero days” streak philosophy

Rule: every weekday must have at least 30 minutes. Even the day you had a bad meeting. Even the day your manager pinged you at 8pm. Even the day you don’t feel like it — especially that day.

The mercy clause: you get ONE mercy day per week. A day where you can log 10 minutes (“read one paragraph of the man page for execve”) and it counts. Mercy days exist because the alternative — hard 30-min minimums — is what makes people quit in month three when life gets loud.

The reset rule: if you break the streak entirely (a zero day with no mercy), do not shame yourself. Log it in your notebook. Note why. Restart the streak the next day. The streak’s job is to serve you, not to be worshipped. A 45-day streak that ends in a controlled reset is more valuable than a 90-day streak that ends in burnout.

India-specific: the 6-7 AM slot

Your options for daily C time, ranked by reliability for someone in Bangalore/Chennai working at Zoho:

  1. 6:00–7:00 AM before work. Best. Nobody else wants your time yet. Cognitive freshness peaks. You will be tempted to skip because “I’ll do it in the evening”; do not. The evening will eat itself.

  2. The 30-min lunch slot. Second-best. Small, self-contained, easy to protect. Good for reading days.

  3. 10:00 PM – midnight. Worst. Cognitive fatigue is real, family/social pull is real, doomscrolling is real, and in April–May the heat will fry your focus even with a fan. Reserve this slot only for Saturday long blocks, if at all.

If you are not a morning person: the honest truth is that becoming one is easier than most people admit, and the mornings are where this roadmap is won. Sleep at 11 PM, wake at 6 AM, do 30 minutes of C, then go to work. Try it for two weeks before you decide it doesn’t work for you. Most people give up after two mornings, which is not a test.

What “touching C” does NOT count as

To keep the discipline honest, some things do NOT count as your 30-minute touch:

  • Watching a C tutorial on YouTube passively (unless followed by 15 min of code)

  • Reading a Hacker News thread about C

  • Configuring your editor

  • Reading THIS roadmap

  • Chatting with an LLM about C without writing code

The touch has to leave a trace: a note, a commit, a paragraph, a code snippet you can find later. If nothing external changed in the world because of your 30 minutes, it did not happen.

The weekly minimum

30 min × 5 weekdays + 2 hrs Saturday = 4.5 hours minimum weekly. Your commitment budget is 10–15 hours. That leaves 5–10 hours for the sprint deliverable itself, spread across Sat/Sun and one or two heavier weekday evenings. This math works. It has to work, because it is what you have.


Return to README.md · Next: 05_teach_to_learn.md