Charlotte’s totally subjective opinion on the best guides for learning programming languages

I’m currently taking part in the edX CS50 Introduction to Computer Science course with Harvard. I’ve seen a lot of questions from fellow students about good resources for a variety of languages so I thought I’d try and help out by listing some good resources I’ve come across over the last couple of years.

HTML & CSS
These things tend to go hand in hand when it comes to web development tutorials so here are some nice resources to get you started in the basics of website development: HTML & CSS.

  • HTML & CSS with Shay Howe. Once you’ve finished with Shay’s beginners HTML/CSS course you can move on to his more advanced course.
  • Codecademy: As an interactive learner, Codecademy is a perfect tool for me to get the initial feel of a language. With step by step instructions and an interactive programming tool, you learn a lot and walk through a lot of basic programming projects.
  • If watching videos are more to your taste, the videos at Treehouse come highly recommended. It is a paid website but you can get a free month which is quite a long time if you schedule your learning time well. It can be a little cheesy at times but they do have a cool frog mascot. HTML at Treehouse, CSS at Treehouse.
  • CSS-Tricks: Not a complete guide to CSS as such but a great website to keep up to date with the goings on with CSS as well as discover some cool tutorials.

JavaScript

  • Eloquent JavaScript: I’m currently working along with this and it’s fantastic, particularly as the new version of this has recently been released. It’s an online book that has great explanations and in-depth exercises alongside an interactive code writer embedded in the text.
  • Learn JavaScript Properly: A complete guide to learning JavaScript that is like a step by step of what resources to use and work from. There are others like this but I chose this one because it has an active reddit community that go through the course together.
  • Mozilla Developer Network (MDN): I cannot speak highly enough of the great stuff you will find on MDN. It has it’s own recommended resources but the best part for me it has clean and demonstrative documentation on the JavaScript language.
  • Codecademy
  • Treehouse

Node.js: 

Node.js is JavaScript but on the backend/server. It’s something I hope to learn soon and it has added bonus points of being written in C. These are a couple of resources I’ve been told are good.

Ruby:

  • Learn Ruby The Hard Way: I love the “Learn Code The Hard Way” books by Zed Shaw. They’re no nonsense, walk you through the language step by step and challenge you along the way.
  • The Ruby path on Codeschool: A website (in my opinion) rather similar to Treehouse in that it’s videos and interactive programming parts. A couple of free lessons but the grittier details are learnt with a subscription, of which you can find free trials on the internet. Bonus points for having zombie themed tutorials.
  • Why’s poignant guide to Ruby: Full disclosure, I personally could not get through this book. I love quirky things, I love illustrations and such but this was just a bit too “bad caffeine trip” for me. But it is an interesting book, even just to look at.
  • Codecademy

Python & Django (A Python Framework):

PHP:

Android Development (by request):

Podcasts:
Here are a couple of podcasts I like at the moment. It’ll introduce to a wide array of things to you and you can hear from a lot of interesting people in the web industry. Like most of the resources here, a lot of it is around front-end development but you will get some back-end, UX and other things thrown in.

Bonus: Spoken Languages
One of you on the CS50 Facebook Group asked about resources for learning Japanese. Sadly I don’t know any Japanese-specific guides. But I am currently learning Danish using Memrise and Duolingo; both of which have great ways of learning a variety of languages such as French, Spanish, English, Irish, Dutch, German and more are being developed.

A tip from me:
Pick one or two good resources that suit your way of learning, you don’t need 18 tutorials to learn your language. If you spend too much time reading a tonne of resources that say the same thing you’ll spend more time learning about the nuances of each tutorial writers way of teaching rather than learning the language itself.

Also if you don’t know the language don’t bother with the frameworks yet, I included Django (by request) and Node.js (my interest) in this list but don’t worry about these until you’ve learn the language the framework is for.

 

I hope this post was of some kind of use. Obviously everyone learns differently so these resources may not be to your taste. If I come across better resources I will update this post.

Good luck!

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s