//SoloScriptStart practicing

Blog

Notes on unassisted coding practice, written by the person who got caught out by it first.

The Difference Between Reading Code and Writing Code

Reviewing pull requests all day feels like staying sharp. It's a different skill from writing code from a blank file — and only one of them erodes quietly when AI fills in the other.

Why HTML Still Deserves Deliberate Practice

HTML gets dismissed as "not real programming" — until a layout bug or a take-home test makes clear how rusty that muscle actually is. Here's why it's worth practicing on purpose.

The Hidden Cost of Only Ever Reaching for the Same Language

Sticking to one comfortable language feels efficient. It also hides how much of what you "know" is language-specific muscle memory versus real understanding.

What Actually Happens to Your Coding Skills When You Stop Practicing

Skill decay isn't uniform — some parts of "knowing how to code" fade fast, others barely move. Here's what actually erodes, and what that means for how you should practice.

The Case Against Grinding LeetCode (and What to Do Instead)

Three hundred problems solved, and the freeze-up still happens on ordinary code. Here's why volume alone doesn't build the skill you think it does.

The Rubber-Duck Test for Code You Actually Know

Rubber duck debugging is usually framed as a way to find bugs. It's also a surprisingly reliable test for whether you actually understand code you think you know.

Why SQL Still Deserves Deliberate Practice

SQL is the language everyone assumes they'll just pick up on the job — until a real incident makes clear they never actually built the muscle. Here's why it deserves practice like any other language.

Why Typing It Out Still Matters

Reading a solution and being able to produce it from scratch are different skills. Here's why typing code out by hand still does something autocomplete can't replace.

Debugging Without a Debugger

Breakpoints are great, until the environment doesn't have one. Here's how to build the skill of finding a bug by reading code, not just running it.

The Case for Solving the Same Problem Twice

Once you've solved a problem, moving on feels like progress. Here's why deliberately revisiting exercises you've already solved builds a more durable kind of skill.

What Take-Home Tests Are Actually Testing For

A take-home assignment isn't just "build the feature." Here's what's actually being evaluated, and how to prepare for the parts that aren't obvious from the prompt.

Is Copilot Making You a Worse Programmer?

Copilot isn't making you dumber — but it is changing which skill you exercise every day. Here's exactly what erodes, what doesn't, and how to tell the difference.

Whiteboard Interviews Are Back — Here's How to Actually Prepare

Companies stopped trusting the take-home round and brought back the whiteboard. Here's why, and a practical plan for getting ready.

How to Prepare for a Coding Interview Without AI Assistance

Copilot won't be in the room. Here's how to actually get ready when you've got days, not months, and the autocomplete safety net is gone.

How to Practice Coding Without AI Assistance

Turning off autocomplete isn't enough by itself. What deliberate, unassisted practice actually looks like, and why it has to be structured differently.