There was a tweet that entered my timeline yesterday that really caught my attention:
It seems one of the most basic concepts. Yet it gets completely hidden by the developer community. It doesn't matter how many years of experience you have in a particular language. There are still things you will have to look up EVERY SINGLE DAY. I really started to think about it. Why are we ashamed to admit that publicly? A couple of reasons came to me pretty quickly: Ego and envy.
Many of us in development grew up as the outsiders. We weren't in any of the popular groups. We didn't play sports. The popular people never called us up or asked to hang out. We weren't invited to the big parties. We weren't fashionable.
No, we were the nerds, the band geeks, the science club goofballs, the chess club weirdos and so on. When other kids were playing football or basketball at recess, we were crowded on the steps playing Dungeons & Dragons. When the cool kids gathered in the lunch room to gossip and look down on everyone else, we hung out in the band room and... well, we played more Dungeons & Dragons. Whatever.
When we got to adult life and got a few years of development under our belt, we became the "rock stars". People looked to us in amazement as we carefully crafted wonderous applications that solved their business problems. New developers would come to us asking the most basic questions and walk away astounded that we gave them an answer without a moment's hesitation. You know, the same questions we forget that we asked a few years previously.
We work hard to achieve the grizzled old veteran status, the coding god who knows everything about everything. And we develop the ego to go with it. It's my turn! I'm the all-star now, Jeff! Bite me!
Note: I was thought about inserting a Dilbert cartoon here, but they tend to sue people who do that.
As amazing and adored as we are, we know that there are those even better than us. Each community has its rock stars, the top of the top, the best of the best. In the C# world, it's Jon Skeet.
He's the man with the answer to everything. He has over a 1,000,000 reputation on the StackExchange Q&A networks. He's the only one to solve, mostly, the pain that is time zones in coding. Jon Skeet can walk on water. He healed a three-legged calf with a single touch of his finger. Jon Skeet is love....
Wait, what was I talking about?
Anyway, in every dev community there are those we aspire to emulate. We know full well in our hearts that we are nowhere near as smart as those people. Our minds don't let us hear that. We build up these people. We want to be like them. Certainly they, in their infinite knowledge, have never needed to GoogleBing something. They have never asked questions on StackOverflow. (Shh, yes, I know Skeet has asked questions on SO. Go away. Shoo!)
With all that adoration heaped upon us, it's no wonder our fragile egos and superstar envy don't allow us to admit that we forget the most basic things every single day. But we do. Even the best of us (except maybe those rare few with an eidetic memory or something) have to look up stuff that we've "known" how to do for years. If it wasn't something we've done recently, it tends to slip from our minds.
Here's a great example from a few days ago. I needed to create a schema in a MS SQL database. I absolutely could not remember how to do it. Never mind the fact that I have worked with MS SQL databases at work and at home for years and years. I even spent three whole years at Citibank doing almost nothing but MS SQL database coding. I hadn't done it in a year or two and now I couldn't remember this single, basic command to create a schema.
And this week I had to look up how to add a data set to my Kendo UI grid. It doesn't matter that the application I'm working on already has more than 20 of these grids throughout it. I hadn't added one in a few months and I couldn't remember how.
And all this entirely leaves out things we've never learned at all. A ForEach loop is a basic function of the C# language, but it's not required. It's really just a different way of do a standard For loop in a little simpler format. A developer could potentially go years without ever writing one or needing to know how it works. One day they inherit some code and now they need to learn something new. Even though it's a basic function, they never bothered to learn it.
GoogleBing to the rescue!!!!!!
Yes, we all have to look stuff up, even those who are as amazing as I am. You can't know everything, and we shouldn't expect anyone else to either. Now get out there and GoogleBing something!