What I Wish I Knew

On my journey to learn to code one of the most frustrating problems I had was never knowing how much I needed to know in order to land my first job and how far along that path I had already come. When you pick up a book or play with online tutorials and work through them you get a sense of achievement, “I’m learning something new!” and that feels great. You’ll encounter tough problems and work on them for hours perusing Stack Overflow for the answer that you just can’t seem to work out, often staying up well into the night (why go out with friends when you can code until 3 am…). As enjoyable as this can be, how do you know how far you’ve come? If I finish this whole book am I good enough to be hired? Is knowing just one language like Ruby sufficient?

When I first started coding these were questions I asked myself all the time and for quite a while I knew no one who could answer them for me. I used to search for “entry level developer” or “graduate developer” and look over the requirements for those jobs. Seeing the list of languages they expected me to know was intimidating. There were all sorts of acronyms and names that didn’t make much sense to me like TDD (Test Driven Development), Agile, BDD (Behaviour Driven Development), or Heroku, and Postgres SQL. Seeing such a long list of requirements can be disheartening. I started thinking about how long it’s taken me to get where I am with learning to code, and how little I knew. I imagined having to repeat that process for every language and thought about how long that would take.

So how did I end up allaying my fears and concerns? I stumbled across a website called Treehouse. Treehouse is an e-learning site that offers courses in web, mobile, and even business development. What pulled me in was how the courses allowed you to gauge how much you’d learned by following a track, it had a community of like-minded people who I could bounce questions off of or even help, it also paired multiple languages together in a course which helped me get a deeper understanding of how they worked together. By completing one of these courses you would have enough knowledge to start working towards your first job. It was exactly the kind of guidance I’d been looking for.
 I was able to learn HTML, CSS, Javascript, Ruby, Rails, MySQL, Git, and how to operate the command line all in one course. The course also touched on Agile and TDD, making me familiar with modern practices. It was on Treehouse where I was given the idea to join a local meet-up, which I did. Combining my experience of Treehouse with professional developers allowed me to start accurately judging what else I needed to learn to add to my resume. I now felt as though I was on the right track. 
 In my opinion, finding an online course which provides you with a track to follow is essential when you’re learning on your own. Ideally the track combines multiple languages and processes to help you learn what is called the “stack”. Learning this way gave me a better understanding of how web-development works and how the front-end and back-end link together. If you’re looking for some options to consider you may want to look at some of these:

Having these options is something I wish I knew about right when I started to learn to code. It would have given me a more concrete foundation from the beginning and ensured that I wasn’t wasting my time learning individual aspects of a language with no guide as to what the next step is. Also having multiple languages explained and presented allowed me to choose one I thought I would enjoy instead of randomly picking a language that I’d heard of without knowing what it could be used to do or what a career in the language would entail. 
 The above options are by no means the only ones available. I’m sure there are quite a few that I don’t know of which might be just as suitable for learning to code. Have a look and see which one works for you!