Before I learned how to code, I used to ask developers how much time it took them to learn their craft — and how they managed to do it.
They would answer stuff like 1.5 years, a bachelor's degree or I just started playing around with it - none of which really satisfied my curiosity. I wanted to know specifically how much work they had put in, as I was wondering if I could ever possibly do it myself (which I doubted, as it seemed close to impossible).
Fast forward a few years, and I had done the transition from a hobby coder to a professional React developer myself. Now, I think I’m able to give the answer I was looking for.
However, I'm not claiming that my path is the most efficient one. It took me a long time to realize I wanted to work with React, and I wasn't determined to reach a hirable level until I started one a coding bootcamp.
Now, let's have a look at all the courses and projects I’ve done since I got started, along with some advice I picked up on the way.
I’ve divided my learning path into three phases; introduction, hobby and bootcamp.
My introductory phase started in 2012 and lasted for about two years. The progress was slow and it all happened quite sporadically, without proper structure or goals. In hindsight, I wish I had started off more seriously, I wish I had committed to code for e.g. 30 minutes a day. This brings me to my first advice for aspiring developers:
Remember that it’s never too early to start being serious about your learning. Your future self will thank you for this.
After Codecademy, I knew just enough to do simple interactivity for a few kids book apps my startup created. It consisted of simple web animations: tap atag and an image fades in and out while triggering a sound.
Apart from the TutsPlus course, I did very little coding in 2013, as I spent all my time on my startup. Also, I didn’t really believe I could ever become a professional developer.
However, I got started again upon discovering Udacity at the beginning of 2014. This time, I was more serious and sat the goal of educating myself at least one hour per day.
I find process-based goals to be much more effective than outcome-based goals. It feels less overwhelming, and the results always come automatically.
The CS101 course on Udacity is a great intro to both computer science and Python, made by Dave Evans. This is where I properly learned about data types, functions, conditionals and other stuff, though I only finished 80%. To be honest, I’ve never finished a single MOOC, as I quit as soon as I get bored.
Don’t feel bad for dropping out of a course — you’re not in school anymore. Be aware of boredom, as it’s poisonous to your motivation.
I followed up with CS253, created by Reddit co-founder Steve Huffman. It takes you through building a blog and is a natural next step after CS101.
I followed up with the classic Mine Sweeper game, as explained in this tutorial. This was tough, and I remember feeling a bit overwhelmed by the logic. Though I like to follow through regardless of not always understand what's going on (which I write more about here).
At some point, I also created a snake game. I can’t remember exactly which tutorial I followed, but it could have been the one below.
During the eastern of 2014, I built a demo for an educational app for kids, as our startup had gotten a request from a company that was going to turn their Flash games into HTML5. Though we didn’t take the job, I wanted to know if I had enough coding skills to do a job that I theoretically could get paid for.
It’s surprising how little knowledge you need to start generating a little bit of money on your coding skills. Try and get to this point as soon as possible.
In the early summer, I did the awesome Coding For Entrepreneurs tutorial by Justin Mitchel. It’s a completely project-based course and follows a learning by doing methodology. It’s a great intro to the Django Python framework.
While the Udacity courses will give you a foundation of CS concepts, this one will enable you to use your skills practically. Combining these types of courses is critical.
My first paid job as a developer was to code a simple website (which my co-founder designed) for a Norwegian fashion designer. It’s a great feeling to finally get paid for doing your hobby, as you realize you can finance growing your skills further. Even though we made peanuts compared to the hours we put into it.
Don’t worry about the hourly rate being below the minimum wage for your first job. It’s still infinitely more than you got paid for your last project.
After launching Disco Fingers I wrote a Python script that crawled our internal list of Disco Fingers beats and tweeted a link to the most popular beat every day. This taught me a lot about APIs, cron jobs and scraping.
Creating a script that saves you time feels empowering. I’d recommend you to try this out.
At the end of 2014, I started getting fascinated by machine learning, so I took a few lessons from this course. I‘d recommend it if you’re interested in getting a mental model of what machine learning is. But it doesn’t involve any coding, which was kind of disappointing.
I also built a Tic Tac Toe game as a part of my applications to various coding bootcamps.
At this point in time, I was good enough to create simple scripts and knew how to deploy a Django website if I followed the Coding For Entrepreneurs formula. But I was still was far from able to take on a job as a developer. This became my goal after our startup failed, so I applied for a bunch of coding bootcamps and finally chose Founders and Coders (FAC) in London.
FAC is built around weekly projects. Building these projects involved reading a lot of tutorials and taking small online courses — not all of which I remember. So I’m linking to the Github repo’s instead, in addition to the assignments. I’ve also noted which skills we gained from each task.
In the ninth week, we got to build whatever we wanted. Our team built a site that analyzes your App Store keywords and tells you which ones are worthless. Repo is here. Skills: jQuery, Heroku, APIs.
In week ten we started doing projects for clients, making a little bit of money. Our first one was a prototype for a Tinder’ish news predictions app. Repo.
A kids puzzle based upon a Norwegian kids book series named Troll-Olav. Repo
A social network based around image rating. (I, unfortunately, don’t have an image of this one.) Repo
A tool for students to help them repeat and remember what they have learned. Repo
At some point during FAC I got started with this course. As usual, I did not finish it but still learned a lot.
I also did a one-week machine learning stunt, where I tried to learn as much ML as possible. This involved a range of tutorials and trial and error, which you can read more about in this article.
After FAC finished I moved back home, and after about a month I got a job as a React developer at Xeneta. I hope this article has helped you get an impression of the amount of work it takes to become a developer.
If you'd like to become a React developer yourself, I'd strongly consider the courses we have one Scrimba. Start with the Learn React For Free course, and then sign up for the waitlist for our upcoming advanced React course as well.
Good luck :)