It was Aug 2009 when I wrote I've put in my 10,000 hours. Rather than updating that post, I'll save it for history and completely rewrite it.
A long time ago, Malcolm Gladwell was on The Hour, and he talked about his "10,000-Hour Rule" from his book Outliers. When I saw that interview, I realized I've put in my 10,000 hours on a couple of topics now.
However, when I now think back on it, I see a big difference between the "expertise" 10,000 hours of intuitive interest, versus 10,000 hours of practice with a learned skill.
Intuitive expertise ∞
I've always had a sort of intuitive expertise.
It's not a functional competency, like an trade skill that's learned on site, it's more like a guitarist who "just figured it out". That kind of guitarist may be outstanding in many ways, but they often have no working knowledge of the fundamentals, and can't even read sheet music.
With this "10,000 hours" in mind, when I think about wanting something, my perspective completely changes. Instead of "it could have been done better" or "it'll be so hard for me to do that myself", with a kind of distant daydreaming mindset, I find myself thinking more along the lines of "I've put in the hours, I know what I'm doing, I could get this done myself".
But I do know that I'm at best "a natural" and that while I've put in the hours to develop portable "soft skills" and a sort of intuition, I'm lacking those fundamentals.
Software testing ∞
I became obsessed with software testing years ago.
But I ought to say that with different terms.. this version of "testing" is better-called "reviewing".
Throughout the years I've kept progressively clearer and lengthier notes, and I'm still tempted to dive into very in-depth reviews. I've always thought of this problem as "if I got paid for it, I'd do it" but the way the world works is that I've got to do it before getting noticed and being offered to get paid for it.
Even though I only lightly write about software, I've maintained a certain talent for breaking software. Anything and everything, all the time. I've become very good at not just making something break, but knowing how I did it and reproducing it.
This began with taking notes to writing bug tickets and feature requests. It's the feature requests itch that has always made me want to program. I once thought that if only I knew some hardcore skills, I could hack that piece of proprietary software to fix that tiny issue I've always had.
I have talent for usability and documentation, but learning to actually program has been so hard for me that I've given up.
I've had a lot of interest, have approached the problem from different angles and at different times in different moods, but nothing has helped. I've tried different languages, and in entirely different contexts such as Lua for World of Warcraft.
My brain just can't go there. I like to build on intuition, and there's plenty there for the basics, but I can't wrap my head around anything more advanced. Even with a tutorial in front of me, I just don't get it. This has been extremely demoralizing, and so I forever lack the underlying organizational and other true "development" skills: Specs, planning, prioritizing, testing, etc.
I've known how to get those missing fundamentals, and for some time I was researching the necessary core topics. However, I've found it easier to help others than do it myself. This isn't out of some laziness, but because I'm I'm an intuitive teacher even though this topic seems to elude my learning it.
So while I didn't become a programmer, I have enjoyed writing the occasional tutorial or copious amounts of comments in what shell scripts I can still wrap my brain around.
What's next? ∞
At the moment, I have several significant projects all on the go at the same time. However, some other projects have been patiently waiting for me for years now. I really need to get them all done.
Some time ago, I had decided to abandon Programming, but it's still very difficult to let go of a lot of my interests. I've maintained the "projects" and live/zombie/dead concept for some time now. Occasionally I go through those lists to see where I stand with those things.
Now, every time I get interested in something, I'll open up a project for it and put my notes there instead of in text files like I had in the past (pre-blog, pre-internet).
I learn by documenting. I only learn by documenting. This naturally leads to tutorials as I get into anything that interests me. I leave a little trail of notes everywhere I go. More and more, I've been making sure those notes are decent quality and more importantly that those notes are shared.
So while I'm getting better at processing and presenting new projects, I feel forever guilty about abandoning old projects. I have a staggering amount of old notes I have to get into the habit of dusting off and presenting. I think I'm getting good enough at working with my current stuff that I'll actually be able to get into my old stuff. I don't mean resurrecting them, but properly burying them with the honour they deserve. In doing so, I will be able to present those efforts to the world and maybe help the next person with their own project.