Writing code should be actually seen as part of the “thinking process”

Natarajan Santhosh
1 min readApr 21, 2024

“Really good developers do 90% or more of the work before they ever touch the keyboard;”

While that may be true sometimes, I think that ignores the fact that most people can’t keep a whole lot of constraints and concepts in their head at the same time. So the amount of pure thinking you can do without writing anything at all is extremely limited.

My solution to this problem is to actually hit the keyboard almost immediately once I have one or more possible ways to go about a problem, without first fully developing them into a well specified design. And then, I try as many of those as I think necessary, by actually writing the code. With experience, I’ve found that many times, what I initially thought would be the best solution turned out to be much worse than what was initially a less promising one. Nothing makes problems more apparent than concrete, running code.

In other words, I think that rather than just thinking, you need to put your ideas to the test by actually materializing them into code. And only then you can truly appreciate all consequences your ideas have on the final code.

This is not an original idea, of course, I think it’s just another way of describing the idea of software prototyping, or the idea that you should “throw away” your first iteration.

In yet different words: writing code should be actually seen as part of the “thinking process”.

--

--