So, you’ve decided to become a developer. Congratulations! You’re about to start a journey that will last the rest of your life.
About a year ago, I began the same journey despite a complete lack of computer science and development experience. I didn’t know where to begin, and it seemed like there were a million things to learn.
There are, of course, developers whose wealth of knowledge is so frighteningly vast that you begin to suspect they might be robots sent back from the future with the sole purpose of demolishing your self-esteem, but they all started in exactly the same place as you and I: square one.
So, for this blog post I thought it might be helpful to recount my experience of spending a year learning web development, and share some things I wish I had known from the beginning.
Before you can start learning the cool stuff, you have to figure out exactly what you don’t know, which at this point is everything. Thankfully, the internet makes this fairly straightforward. You need only type “How to become a developer” into your search engine of choice and you’re off to the races.
The good news about becoming a developer is there are a wealth of resources available to you, many of which are free. CodeCademy, Codeschool, Egghead, and Khan Academy are all websites with tutorials covering everything from language syntax to using the command line interface and Git, and are a great place to start. They’re not very intimidating and will guide you through the process of writing basic scripts and applications in a beginner-friendly manner.
So you’ve familiarized yourself with the syntax of the language you’re using, made some simple projects, and are starting to feel like maybe this whole learning to code thing won’t be so bad after all. Now it’s time to drop the tutorials and make your first project from scratch.
I clearly remember the time I tried building my first project without using any tutorials or resources. I fired up my laptop, poured myself a cup of coffee, sat down… and promptly forgot everything I knew. My early endeavors into development mostly involved constant debugging, referencing W3S, and staring at my code with my head in my hands trying to figure out how exactly my life had led up to that moment.
Viking Code School blogger Erik Trautman refers to this period in a developer’s career as the “desert of despair”. The time when it seems like you couldn’t write functional code if your life depended on it, and you’re swimming in a bowl of alphabet soup with endless acronyms and vocabulary terms to memorize. Every trip to Stack Overflow or Wikipedia leaves you with more questions than answers, and you have trouble understanding the esoteric jargon that seems to surround every aspect of learning to code.
I wish I could tell you that you get over this, that there comes a day where the pin drops and the sun comes out from behind the clouds of ignorance. It would be convenient if one could achieve some sort of coding nirvana, with mastery of a framework or language springing fully formed into their brain, but it doesn’t work like this.
The truth is, this phase never really goes away, especially in an industry where shiny new tools are being created every day. What happens instead is, over time, you gain expertise and your confidence increases as the things that tripped you up in the beginning start becoming second nature. The secret of really great developers is they don’t get discouraged by this, and it becomes easier and easier for them to pick up new skills. Just keep plugging away at it, and keep your eyes on the prize.
After over 10 months of learning to code, you’d think I’d have finally escaped the Desert of Despair, but to be honest I don’t think I have. I received some good advice around this point in my journey that I’ll share with you now: get involved in your local coding community. Find like-minded individuals with whom you can commiserate and share tips, people who can talk you down when you’re about to do a hard reset on your computer using a baseball bat. There are still days when I can feel my brains oozing out of my ears as I work on a problem that seems stupidly simple, but there are good days too. When you reach this point, what’s really going to keep you going is a love of the work; you become hooked on the rush of seeing your code in action, doing what it’s supposed to, even though it’s held together by duct tape and prayers. Once you’ve made it to this point, learning becomes a self-reinforcing habit, and while the going doesn’t get any easier, it does get more fun.
So here we are after 12 long months of hard work, joy, misery, failure, and success. I’ve been very fortunate to have spent the last few months growing at We Write Code, where I’ve been able to learn at a much more rapid pace.