The other day, I got to talking with an old colleague. We worked together in the IT department of a bank about eight years ago.
Since then, we’ve both stayed in IT, and our conversation eventually turned to what we knew back then, compared to what we know now. The result prompted me to come up with the graphic above.
Early in a career in IT, you think you know everything. Each day, you get better and better, and you become supremely convinced of your own awesomeness. Sadly, your actual knowledge isn’t increasing at the same pace, and it becomes a classic case of “you don’t even know what you don’t know.”
You start to live in a fantastic little bubble of how kick-ass you are. Everything is so new, that solving problems is crazy fun and makes you almost euphoric. You get so addicted to solving challenges that it doesn’t matter if they’ve been solved before — you’re developing not to solve an actual problem, but to make yourself feel good.
It’s times like these when you start to think you can do anything, and anything you write is, by definition, the most awesome stuff ever. This is the stage where you look down on people who use things like Drupal and WordPress because — damn it — real men write their own CMS.
I still remember sitting in a proposal meeting about ClearCase (ClearQuest? I forget…) which was a source-code and change management tool. At the ripe old age of 27, I proclaimed that we didn’t need to buy this thing, we could write our own! I mean, it was simple, right? A veteran named Jim, who was proposing the system, turned to me and said, “But…we’re a bank. Why would we write a change management system?” That didn’t phase me.
Just the other day, I had a young kid come in to show me some of the stuff he had done. It looked nice, but I tuned out a bit when he told me that he wrote it from scratch because “systems that are out there just didn’t do what we needed.” I looked at what he had, and noted privately that the functionality he had written probably already existed in about a dozen different systems.
At a certain point, your folly crests. You start getting in over your head more and more, and, frankly, you start maturing as a person, and you realize that there’s more to this discipline that you thought. At this point, what you think you know starts spiraling downward. You start to become aware of the depth of knowledge you haven’t yet tapped.
If you’re smart, you keep learning, every day. You like to feel stupid, and that pushes you into researching your craft more and more. So, at the same time that your perspective on your skill level gets more and more realistic, you’re actually getting better and better.
At a certain point, the two paths cross, and this is where humility kicks in. You go through your day thinking you have so much more to learn, but the fact is, you know more than you think you do. At this point, you start making much better development decisions because you’re slightly underestimating yourself.
This is where I suspect I am now. In particular, I’ve spent the last six months really trying to uncover every nook and cranny of the .Net framework, and every time I learn something, I find I have 10 more things to learn. I’ve started to truly understand the scope of what I don’t understand. While I’m sure my skill level is scaling up every day, I find myself more and more humble about what I can actually do.
Now, I don’t know if what I’ve described in this post applies to everyone. There are exceptions, but they’re rare.
I think a lot of it comes down to the mentors and guidance you have early in your career. When I worked at the aforementioned bank, I was kind of off on my own under a weird set-up, so I didn’t have many veterans giving me feedback I probably needed at the time. I was master of my universe, and acted like it. It’s easy to feel amazing when you have little oversight or feedback.
I think the lack of real mentoring early in my career (and some immaturity that probably would have made mentoring difficult) really contributed to the graph above. Left unrestrained, I soared awfully high in my own mind, just to come crashing back down at some point.
Today, I’m a lot…less dangerous, than I was. My first instinct now is that every problem has already been solved, and I’ll do better using someone else’s solution, or at least learning from it.