Becoming a self-taught programmer in six months
I have shipped many apps, as an entrepreneur or as a freelancer. I have also contributed to open source projects and advised other projects. Yet I’m educated as an electrical engineer, not as a software engineer and consider myself largely self-taught in the area of programming.
Just in Québec, there are about 7000 programmer or developer positions that are not filled every month. As a result, small and big companies are fighting to get the attention of programmers.
And it’s not just in Québec. Go in Toronto, New York city or in California. It seems you can find a highly rewarding job as long as you know how to code.
The trend has not gotten unnoticed. Smart people from all horizons are now learning and looking to land a job in the field.
This guide is for those people in arts, marketing and many other fields who are now looking for the best way to learn how to code in six months. Since time is limited, it is focused on producing practical code instead of abstract topics such as data structures or compiling. I assume however that it is just the beginning of a journey and you will have time later on to pick on formal learning.
Building a learning environment
Any laptop or desktop is good to learn. However, it cannot be a phone or a tablet (no programming on iPhones folks!). It doesn’t matter if it’s Mac, PC or Linux as long as you have admin access and you are able to install anything you need.
Interruptions kill productivity
Learning programming is in a quiet environment, with little to no interruptions. Set aside at the very minimum two hours per day, ideally a good five hours.
Self-taught programming in 2015 is done with a relatively decent Internet connection. It means you can download a 50MB package without interruptions.
Learn from the best
Contrary to perceptions, programming is best with social feedback, so make sure that you have a mentor who can give input and review your code. The stronger the feedback, the better!
You can also follow programmer’s blogs and read as part of your daily routine. Most don’t showcase code and instead explain how they design software or solve critical bugs, which is essential for your culture. I read Coding Horror, Daily WTF, the Netflix blog, igvita, Facebook Engineering, the Twitter engineering blog and a few others.
Online resources
Currently, the best resources are not books but online resources.
Without any background in programming, you can start with the free resource Code Academy. It’s important to follow each lesson and take your time.
Your goal should be on building a simple static site (such as this) in 2 or 3 weeks after your codeacademy course. I recommend you put your own online resume, with a few pictures, and links to your work. Pick a code editor (take a look at Atom), a graphic program, and you have the tools to ship your first site.
Up next are either CodeSchool, TeamTreeHouse or CodeAvengers. I especially like the guys at CodeSchool with their awesome service and amazing teachers, but others are also worth a look. At the end of the day, it’s important to choose one and stick to it. I would recommend at this point to pick one that has the best javascript course. Look at meteor or node-based frameworks.
An additional course to look at is Google’s python course for beginners. Schedule a week to learn about a SQL database, such as PostgreSQL.
Three months later, your goal should be on building a simple to-do list site after the first javascript course, and be able to deploy it on the Internet.