How to become a developer (for free!)
A how-to guide to becoming a developer from an agency head dev who did it all online for free.
Light Creative’s head developer, Amos, has a very interesting origin story. He’s only young, but a baby face belies his technical precision and broad know-how.
We started to wonder how he got to where he is and, turns out, his road map to success is incredible. Check out his guide to becoming a developer, using only free, publicly available online resources/courses (and a little initiative).
How I went from uni dropout to head dev at a design agency.
I was studying philosophy and I was sick of uni. So I dropped out during the break between semester one and two.
I chose not to go through an official uni course because I'd heard it was a redundant way to learn to code. The industry develops so quickly that by the time you graduate, everything you know is already outdated.
I emailed this guy I knew from school, who had started a tech company, and I said wanted to intern and learn to code. He took me under his wing, not really as an intern (the arrangement was unofficial) and pointed me towards free online courses. He said even though it was online, don't expect that it was going to be easy. Learning to code from their office became my life for three months - I was averaging 60-80 hours of work per week.
I tore through the online courseware. I started with a two-week course on Udacity. It was a free intro to computer science course and we used Python. It was great, a great introduction to programming fundamentals. They taught you how you’re supposed to think as a programmer. I’ve been told that’s one of the hardest things to learn online and they put a lot of time and effort into that facet when teaching at uni. There wasn’t any content specific to web development but a good, basic starting point. I’d really recommend it.
Then I did an an edx course, which was written by Massachusetts Institute of Technology. It’s a more advanced course, called ‘Introduction to Computer Science and Programming Using Python’ and it’s completely free. It’s an awesome course, with great teachers. There’s no face-to-face but after every lesson, you consolidate everything with quizzes.
The next thing was learning HTML and CSS on Treehouse for two long weeks.
It was the driest course I’ve ever done in my life. There was no flair and it was far too long. But, to be fair, when you’re dealing with CSS and HTML there’s no solving anything.
There’s a right answer and a wrong answer. It’s a book of rules to learn. I would recommend the course as a good base. It’s a great resource after you finish the course too. It’s good for all front-end design and basic web front-end stuff. It gives the basics. There’s no fun way to learn CSS and HTML, you just have to get through it. A big problem in this course is that you’re smashed with so much knowledge and you remember, maybe, 15% of it. Then you have another 40% of it that you vaguely know and you know where to find the solution even if you have to chase it on W3.
After that, I did another Udacity course, run by the guy who built Reddit. He was pro-hacking. We used Google App engine, using Python. The course lasted for a week.
Then I moved onto Code School.
Then I built an in-house Meteor application (for the tech company I was interning at) to track time, make sure people were on task, storing documents, etc. I started to build few websites and a few web apps for them. I stayed there for a bit but then the company dissolved thanks to poor management (hey, it happens). So I jumped in the deep end and took on some of their (now unattached) clients and started to apply everything I learned very quickly.
The thing about learning programming is... because of the nature of programming, there’s more than one right answer. Online courses can imply that right outcome is the right answer and how you get there doesn’t matter. The problem is there are often better, more efficient, and more legible answers that are “more” correct. I came out of online courses with the skills to make things work but often would overcomplicate things or not know certain fundamental web development skills and best practices, like working with a schema. I had all these skills but not the fundamental grasp on how everything should fit together. Why things should fit together like they do was even further out of my grasp.
To get to an advanced level with this stuff, you need personalised feedback from someone who is more skilled than you.
They can teach you the plethora of things that can’t be compacted into a quick course. Writing semantic code, for example, making things easy for other developers to pick up and continue to build upon. It was lucky that after I completed the courseware, I had a teacher I really liked. He introduced me to the saying:
by John F. Woods and remembering that has made me particular about my code and driven me to always want to be better.
So, this all took me three months to learn. Followed by six months of work at the startup that had taught me to code. I did 12 months at another startup called Gleamers (which was like uber for cleaners). And then I got a job as a junior developer at Light Creative and I'm still here. Now I’m training a team under me using the same free courses as I used.
Every now and then I did a few short courses online through places like Lynda.
Getting in and doing the work gives you time to process the information that you’ve learned. You leave yourself room to process other information and learn more.
Understanding and building your knowledge is something that can’t be rushed. Your subconscious is always trying to work it out. Then one day you could be playing table tennis, mid-smash, and the whole internet makes sense.
I wouldn't recommend rookie devs jump into a project that’s completely out of their skill level unless they are honest about their skill level to their employer and have other devs to help them learn. You can aim for the outer reaches of your skill level. But if you don’t even know the language, the jargon, it’s very difficult to find the solution even when you Google it because you don’t even know the jargon to Google.
I’d recommend newbies go straight into website building and front-end work but don’t dive into backend straight away. Side projects are also really good. You get time to spend on the things you want to learn or what interests you. You can work on areas you feel you need help with and you don’t have to show constant progress or stick to deadlines.