Steve Yegge's last post couldn't have come at a better time for me; I've been having a lingering feeling that I'm stuck in the mud, working too hard and having bad ideas.
So how do you make yourself a superstar? Never stop learning. I've heard
people say they think this position is a crock, that it's ludicrous, that you
couldn't possibly spend your whole career learning new things.
But I think differently. I think every program you write should be the
hardest you've ever written. And that's what I blog about, mostly. Improving
yourself. Because most employers, the ones who matter in the long run, they'll
be able to see how great you've become, and they'll alter the very course of
their business plan, if necessary, to make the best use of you. Does that sound
incredible? Well, I've seen it play out both ways over my modest 20 years in our
industry, and that's how I see it.
I don't think it absolves me from having weak ideas or from lacking the most effecient approach to working outside of the office, but I know my direction is right. I need to work on my mechanics in future and make sure that while I strive to improve as a developer that I get better at picking what matters and solving problems that are this fine balance between learning something new and not being so challenging that they are unpractical.
I've been disheartened as well by the lack of community. People I know about online - my mentor list - make my life that much better but it seems rare that I meet people outside of conferences and the online world who have more desire for themselves other than getting a job done. In those dark moments I ask myself why I try and wonder whether it even will matter in the end.
But something in my intuition tells me I can't stop. That outside my "feelings" there are people like Steve who have walked a path I'm on.
This year I did become a better programmer. My skills as a designer improved. I created a bunch of tools that were useful not only to me but to others. My vindication came perhaps a month ago when I looked at a screenshot of a code repository program I'd written and forgotten about two years ago. I had rewritten a code repository program this year with tag support and as I compared the functionality and design I realized that I'd grown like a tree; the effect was visible over the long term but not on a daily basis.