This article will list a bunch of resources one can use to start their journey with programming. There are many such lists already on the Internet, but this one is mine. This list is by no means complete or comprehensive and will probably evolve, but let us start.
First read this brilliant article by Peter Norvig, so you have some idea about what you’re getting yourself into. Go on, I’ll wait.
Done? Great, let’s find some resources you can work with.
- CODE: The Hidden Language of Computer Hardware and Software by Charles Petzold
The book explains how computers work. It seems boring when I put it like that, but the book is really well written and it explains the evolution of information technology, both hardware and software, from ground up… it’s brilliant and you will have a better understanding of the world surrounding you if you read it. - Learn Python The Hard Way by Zed A. Shaw is a book written for people who know nothing about programming. Why “the hard way”? Because there is no easy way to learn programming. Anyway, the book is designed to teach you everything you need to know and assumes you have zero programming background. The book is available online for free, but you can buy it from Zed here, and you will additionally get a lot of video content and more.
- Most programming courses will demand you to install software and setup tools before you can start working. This is perfectly fine, but your first steps in programming will feel very unsteady, so you might not want to deal with failed installations or using unfamiliar tools. Worry not, there is hope. These sites let you experience programming in the web browser, without installing anything:
- Codecademy is one of my long time favorites. It offers many paths to experiment with: Python, Ruby, JavaScript and more
- Code School does have many paid courses, but there are also free ones, so you can experiment with a few languages and tools for free. Rails For Zombies is probably the most popular of the flock.
- Code.org is a great resource for many free educational sources
- Let’s talk about MOOCs, or Massive Open Online Courses. These are mainly provided by universities, so they offer academic-grade education opportunities for free to anyone who wants to participate. Some courses offer a virtual certificate of completion, most are run at particular time-frames and have hard deadlines, which may be a good motivational factor. If the course lasts for 8 weeks, you have to make it in 8 weeks. Period.
Three most popular sources for MOOCs are:- Coursera, which has an amazing choice of courses on extremely different topics, which includes basic programming courses like this one, or this one.
- edX, which has really, really great courses, but very few for people just staring their adventure with programming. Be sure to come back to them once you get a basic understanding of programming.
- Khan Academy is supposedly a good source of knowledge for beginners, although I have never personally used it, so maybe you can try it out and tell me, if it’s any good.
There are lots of other resources out there. Even Microsoft joined the movement with it’s Virtual Academy. So, there you have it – lots and lots of resources you can use. Go. Learn.