There’s a gap on the journey to being an expert developer that they don’t tell you about. It’s like a canyon you come across on your trip from beginner to expert. Imagine that learning to program is like walking from one town to another across a field and halfway there you come across a deep canyon. How many people get to this canyon, see how much work it will be to get across and turn back or just stay where they are? Think of when you first start to program, you do all the beginner tutorials and you look at all the amazing stuff being create by the best. And you see no reason why you can’t being creating things just as amazing soon. It’s just like walking across that field and seeing the great things in the distance but you can’t see the canyon yet.
For me, this felt like I was at the cliff face of that canyon and I knew if I was going to be as good as I wanted to be, I was going to have to climb down that wall, down into that deep canyon. Gone were the days of doing fun tutorials where I build a Twitter search app using jQuery, now I realized I had to learn why the code did what it did. I had to read the thousand page book and learn the proper syntax, learn the built in methods, learn the right way to write code. I’d entered that period where I knew enough to know how much I didn’t know. When you’re down on that canyon floor and you look up at where you want to be, it seems farther away then ever. This, to me at least, was the hardest point. This is when things can stop being fun, when it becomes a grind. This is when you look at what the experts are doing and think to yourself, “I’m never going to be able to do that”.
You’ll also discover something else at this point, remember all those beginner tutorials? There’s a ton of them out there so there should be a bunch of intermediate ones to help you get to the next level. But there’s not really. For the most part, you’ll find that besides those beginner tutorials, the rest are articles written by really smart people about complex things you kind of understand but not really. In fact, some of the stuff you’ll read will make you think that the side of the canyon you have to climb up is twice as high as the one you climbed down. I wonder how many people get to this point and give up. Perhaps you know enough to do some of the stuff you want to, and maybe you don’t plan on doing anything really complex.
Maybe you don’t get out of that canyon, maybe most of us don’t. Most of us don’t work for Google or Mozilla, where our job is figuring out how to use the latest browser features. Instead, we are building things for clients and we get to figure out something new because a client wants a feature we’ve haven’t built before. Maybe it takes a while to get out because you’re like me and 95% of the experimental stuff you do is at home while you’re watching Fringe. You’re doing this because you love it. Maybe it doesn’t matter that you never get out of that canyon, just trying is enough.
You’re going to frustrated. You’re going to get depressed. You’re going to look at other people’s work and wonder if you’re ever going to be able to do that. Just remember, everyone was a beginner once. No one starts out as an expert. Keep hacking away, something will click and you’ll understand and then something else will click and you’ll understand even more. Don’t compare yourself to anyone else, just compare yourself to you yesterday or last week or a month ago. If you’re better now then you were then that’s all that matters.