Hah, this is SO going to sound like a pat on my own back, but bear with me for a second.
I teach kids through Code Club (which, if you're a developer, you should totally check out!), I'm helping my sister's fianceé with his coursework. We have an apprentice at the office. I get to see people who are new to the world of programming. I see their frustrations, and their outcries of "ARRGH, I SUCK AT THIS!".
I have been there, people. I am still there. Every day.
Recently though I realised I don't suck as much as I had thought. That discovery was liberating for me, at least. I'm going to share a few pointers, just because I can, and this is my blog. :P
How do you know you're getting there?
You don't necessarily need to be an amazing rockstar at something to be sorta good at it. Short list incoming:
- When you can solve a problem just by listening to the description of it. You know exactly what they've done, why they've done it, why it doesn't work, and what the solution is. You know, because you've done this a number of times yourself.
- When you run into a problem, and you trace it back to some non-trivial reason. For example the fact that in Firefox,
position: relativeis not honoured on table elements, but in Chrome, Opera, Safari, hell, even in IE, they are. Why? Because Firefox decided not to implement it. According to the official w3c specs, that bit is undefined, so it really is up to software engineers to do whatever.
- When you've started learning new things outside of your core competency because there is only so much material available about your work / studies, and chances are you've already seen them.
- When you are comfortable enough to go against the latest craze, because it simply is uninformed or idiotic, and you can hold your ground in pretty much any argument.
- When looking at other people's work you can immediately identify the flaws in a few seconds. Not only that, you know in advance what the problems are going to be.
- When you've put in a ton of hours.