Five months after quitting my old job to become a self-employed programmer I find myself wondering if I made a mistake. I have not seen a real paycheck in five months. Instead I've been developing the product I'm intending to sell. I'll be the first to admit that when I quit I was not ready for the overwhelming amount of work involved in design, implementation, debugging, and documentation of a commercial or enterprise level application.
The experience has been worth it overall. Over the past five months I've learned more than I could have ever learned in college. My teacher? The wealth of programming info on the internet, some books I've bought, and a whole lot of trial and error. I've been able to learn new concepts and test them at my own leisure, without worrying about deadlines or having someone watching over my shoulder.
Unfortunately, one thing has become increasingly more clear to me; I'll never be happy with my work. On the outside, my forms and controls pull and push data faster than any other data-driven programs I've seen to date. However, I just can't get over all the little internal imperfections in my code: the workarounds, the hack jobs, the corners I've cut. I know I can write better code, and this knowledge is hands down my worst enemy. Instead of pushing forward with my project to actually create something marketable, I spend my time making more efficient algorithms and classes. The sky is the limit as far as improving code goes, and as I look at my modest program, a program aimed at small manufacturing companies, I realize the work I've done is equivalent to building a nuclear bomb to kill a spider in the front yard. Rather than concentrating on killing the spider, I'm stuck on the fact that I can build an even bigger bomb.
I've really done a lot of thinking about this, and I haven't decided whether this idea of perfection will help me or hurt me in the long run. Nothing bothers me more than a slow, bloated, and inefficient program with bugs, but at least the makers of these same types of programs are able to pay their bills. Maybe they've been in my shoes before and figured they had to draw the line somewhere? I guess I'm still deciding on where to draw my line. So... where do you draw yours?
The experience has been worth it overall. Over the past five months I've learned more than I could have ever learned in college. My teacher? The wealth of programming info on the internet, some books I've bought, and a whole lot of trial and error. I've been able to learn new concepts and test them at my own leisure, without worrying about deadlines or having someone watching over my shoulder.
Unfortunately, one thing has become increasingly more clear to me; I'll never be happy with my work. On the outside, my forms and controls pull and push data faster than any other data-driven programs I've seen to date. However, I just can't get over all the little internal imperfections in my code: the workarounds, the hack jobs, the corners I've cut. I know I can write better code, and this knowledge is hands down my worst enemy. Instead of pushing forward with my project to actually create something marketable, I spend my time making more efficient algorithms and classes. The sky is the limit as far as improving code goes, and as I look at my modest program, a program aimed at small manufacturing companies, I realize the work I've done is equivalent to building a nuclear bomb to kill a spider in the front yard. Rather than concentrating on killing the spider, I'm stuck on the fact that I can build an even bigger bomb.
I've really done a lot of thinking about this, and I haven't decided whether this idea of perfection will help me or hurt me in the long run. Nothing bothers me more than a slow, bloated, and inefficient program with bugs, but at least the makers of these same types of programs are able to pay their bills. Maybe they've been in my shoes before and figured they had to draw the line somewhere? I guess I'm still deciding on where to draw my line. So... where do you draw yours?