The jump from intermediate to advanced

October 23rd, 2012

I think it’s commonly accepted that there’s three stages of being a developer: beginner, intermediate and advanced. It’s debatable whether expert is a level because to be an expert means you know everything about that subject and I’ve yet to really see someone that everyone one agrees is an expert, at least in the web development world. So we’ll look at the other three. Every one of us is or has been a beginner. I remember looking at jQuery code and not understanding at all what was going on and why it was doing what it was doing. I can also remember reading articles on JavaScript and finally getting some of the more complicated concepts, like prototypes and the this keyword. The jump from beginner to intermediate isn’t that difficult, I think it mainly just takes putting in the time and coding until you get the main concepts of the language.

About a year ago I found myself taking a look at languages like Python and Ruby, messing around with .Net and even digging a bit deeper into PHP. Then one day I thought to myself, I need to pick one of these and concentrate on it because what good was having a basic knowledge of a bunch of languages. And then I realized something, I’d already done this with another language, JavaScript. Did I want to spend all that time learning a new programming language or did I stick with JavaScript and push past the intermediate level I considered myself to be at. I decided to stick with JavaScript, it was more relevant to my job and I enjoyed writing it. Why would I go back to the beginning with another language?

I think now that this is a fork in the road that nearly every developer reaches and I think most pick the path of learning a new language. Not because they can’t move on the advance stage of a language but because it can get boring at that point and a new language can be new and interesting. Think about JavaScript, really the beginning period of learning the language is the fun part, when you manipulate the DOM with animations and user interactions. How many developers read an article on a complicated JavaScript concept and say “Yeah, that’s not for me. But this Python thing looks cool”? That’s the main reason why I don’t think most developers make the jump from intermediate to advanced.

I think you’ll know when you’ve reached that advanced level. For me, it was when I was able to build things that I wanted without having to go look for examples first. I don’t mean doing the same things on every website but being able to know how you’re going to build something you haven’t tried before. I might not know that exact code I’m going to write and I might have to look some new stuff up but I’m going to know how I’m going to do it, it’s just filling in some of the blanks. Another part of it is being able to explain what you’re doing to others. There’s been a lot of stuff I’ve got to work, using parts from examples that I’d found, but I had no idea how it really worked. Now I know what every line I write does and I can tell you about it.

I understand that not every developer is going to have the time or the drive to push past an intermediate level and nor should they. But I do believe that the reason a lot of developers learn so many languages is because it’s easier to start at the beginning with a new language than it is to keep pushing on with one language. And the jump from intermediate to advanced is more difficult than they initially think and I can why that would stop people from trying to make that leap.

Leave a Reply

Your email address will not be published. Required fields are marked *