I don’t know how often I’ve come across this comic. But, stumbling about the internet teaching myself to code in what is probably the worst was possible (figuring out how to fix one problem at a time) I’ve come across it several times. I believe it’s from here.
Not long ago, I was writing to my nephew about how I wrote a text-based game for him. In it, I was honest about the fact that I did things the ‘wrong’ way, and that I was certain the ‘right’ way was easier.
Now I know: it’s certainly different, but it might not be easier. At least, not at first.
Recently, I’ve been inspired to re-visit a project to automate a part of my work (whenever I find myself thinking “this is monkey-work!” I begin developing an algorithm by which it could be done — I’ve never successfully done it) I thought that, since I was starting over from scratch, this would be the right time to do start learning to do it right.
You know from the title where this is heading: it’s not easy.
I’ve generated so many pages of text, describing how I want using the program to be, how the XML it uses should be structured. I’ve followed the advice of a programmer I know and, where possible, did the GUI first and the ‘guts’ second.
And it’s exhausted me. So far, I’m not super far into the project, and I have a much better idea of what I’m doing and where it’s going… But it’s not easy.
I made myself hold off on any coding until I had a pretty solid skeleton sketched out in prose. Then, once I started coding, what I think I should have done is only coded as much as felt needed to keep fleshing the skeleton in, not the other way around. It’s pretty typical for me to — as I work on code to add tags to XML elements — realize that I’ll need to organize things in a different way but not to update the planning documents.
It’s reached the point now where, instead of having all the planning done and being able to ‘mindlessly’ code as another friend described his approach to coding, I’ll need to find the energy and concetration necessary to get the planning documents back in harmony with what’s actually happening in the code.
Of course, this is my first rodeo, so to speak, and I wanted to begin trying this in oder to get the learning curve behind me. Nonetheless, the learning curve does not feel good.