I’m not a “good” programmer but I am “good at” programming.
What’s the difference? Let me explain.
Good programmers write beautiful, optimized code. They write good tests and enjoy doing it. They know Javascript and Ruby and can quickly pick up other languages too. They don’t need to spend time Googling error messages because their code doesn’t produce errors.
But I’m good at programming because I’m confident. I’ll plow into a problem, break it into a bunch of smaller pieces, and solve them. That what it means to be “good at” programming. It’s being a good problem solver by being good at seeing the smaller, easier problems inside the larger, scarier one.
My code reflects this approach. My methods are the small problems and my classes are the big ones. It’s how I built Toofr and Inlistio. Usually when there are bugs, it’s a problem in a method, not in a whole class. My classes are good because they inherently make sense in the context of the really big picture, the app itself, and the large problems within the app.
I’m good at programming now because I’m not afraid of it. Nothing is too complicated. There’s only learning curves and time and the cost of that time. At this point I feel like I could program anything if I had the time to do it.
It’s all very logical, and when I sit down for a couple of hours to program, my left brain continues to buzz for an hour after I stop. It’s like heavy breathing after a good long exercise. It takes a while to catch your breath. This is why I have to stop programming at least an hour before I want to fall asleep.
It’s actually why I’m writing this post right now at 10pm in the evening. Left brain, you had a good night tonight. Now it’s time to rest.