Hacker News new | ask | show | jobs
by vaidhy 1198 days ago
>I learned that compile/run/fix loop is a crutch

Why is this a crutch and not an optimal way to do things? At a higher level, this is TDD (maybe with test cases in your mind). Why is that a wrong thing?

You are ascribing knowledge to a particular process and that does not sound right.

1 comments

It is a crutch because people rely on it to tell them what is wrong with their code instead of trying on their own. They can't tell until they run the code because they don't exert themselves normally, when programming. Just like driving exclusively with Google Maps atrophies the part of brain responsible for navigation. Why, if you have a compiler or your app to tell you in a moment?

Unfortunately, ability to predict what a piece of code will do, exactly, is pretty important for a programmer. Training this part of brain will make you a better programmer, overall.

Anyway, I do pair programming and people are amazed you can work for a whole day and run large new module at the end of it and everything works fine, as predicted. It is a good feeling.

It does not exactly save time, usually. But sometimes when I know what I want exactly I can do feats of producing larger pieces of code in extremely short time.

Once my manager asked me if it would be possible to implement a substantial, complex feature. He had a meeting in half an hour and he would like to know. I somehow immediately figured out everything I need and have implemented it in half an hour and did a short demo literally 2 minutes before his meeting. I have not ran the code before.

I am also the guy to go at my company when stuff fails and a piece code needs to be implemented on an extremely short notice. Like when a team broke a bunch of data and somebody needs to quickly develop a tool to undo the damage but without risking further complications.

It probably has something to do with ability to understand what you are doing and all consequences of the code. Also structuring the code and solution to the problem in a way that limits possibility for unexpected behaviour.