“Best of” Online Learning Resources for Coding

I’ve spent a lot of time learning to code online. There are lots of (free) resources out there, and there’s also a great variety in quality. Here are my “best of” in a bunch of categories, with explanations as to the relevance of each.

HTML/CSS

#1 Dash/General Assembly — The best for learning HTML/CSS, hands down. Dash is the free website of the General Assembly bootcamp. First, they provide a real-time interactive environment (similar to Codecademy or Kahn Academy) but they bring it up a level by having “real life scenarios” with amusing clients for each of their tutorials. They also provide context for the things you’re learning so that in my case their either stuck in my mind or were easy to access later because the examples were so memorable. My 10-year old son loved this and so did I!

#2 Codecademy — Solid intro. Codecademy has adopted a Dash-like approach (above) with courses/projects that use the HTML/CSS skills such as Make a Website, which is a good follow-on to the intro.

Javascript

#1 — Kahn Academy’s Intro to JS: Drawing and Animation — Provides the context and not just the code. My 10-year old son sailed through the first 4-5 sections of this, then got stuck when things started to get more abstract.

#2 — Codeacademy Javascript — Good from practice once you’ve got the context. Don’t be dismayed by the Codeacademy suggested times (multiply by 3!).

Unix/the Command Line

#1 — There are many Command Line Tutorials (Command Line Crash Course is a popular one). Software Carpentry, a non-profit training organization, has by far the best introduction to Unix Shell of any I have found. Who knew the command line could do so much! They provide easy to follow examples, loads of context, and cover a lot of ground. Topics include: 1) Introducing the Shell; 2) Files and Directories; 3) Creating Things; 4) Pipes and Filters; 5) Loops; 6) Shell Scripts; 7) Finding Things.

#2 — An awesome tutorial on regular expressions, RegexOne. This is a beginner’s tutorial an I found it really excellent. For those who are more advanced, Software Carpentry (see above) has a more advanced material on regular expressions.

Git (Version Control)

Git Reference

Ruby

#1 — Dan Nguyen is a journalist and data scientist who’s currently teaching computational journalism at Stanford. I am drawn to his work and methods because he makes Ruby relevant by using it for textual analysis, web scraping, and various research and investigative journalism tasks. Dan is great at explaining Ruby to non-programmers while moving quickly and efficaciously through his materials. His Bastards Book of Ruby is a great starting point for Ruby, though the more advanced “projects” are dated now and hard to replicate with current tools. I would still recommend his Fundamentals section as a great introduction to Ruby.

Programming Ruby, by David Thomas — this free, online book provides excellent explanations, context, and exercises that you can run in your text editor and terminal. I’d suggest warming up on Codeacademy (see below) then moving on to this. Excellent.

#2 Other resources, in no particular order:

Learn Ruby the Hard Way — excellent, interactive exercises, particularly on opening and closing files.

Ruby at Codecademy — Codecademy has a decent Ruby track. Because Codecademy can be short on context, I’d recommend doing the exercises alongside their interface using repl.it (or a text editor and terminal, if you’re already comfortable with this) to make each exercise your own so that you really understand what’s happening and aren’t just coding to move ahead. On the same note, I would multiple Codecademy’s estimated course time by 3 (that would make the Ruby track 27 hours). They move quickly and if you’re a newbie and really want to retain the information, you’ll have to repeat and repeat and go slower. At least this is the case for me! More power to you if you are able to move faster and retain all of the new concepts and info.

Rubylearning.com is another good reference.

The Ruby Documentation is of course essential, though occasionally hard to follow for a beginner.

Selected topics in Ruby: Regular Expressions (also on Tutorials Point), extract data from a string using regex (from stackoverflow) Split Method, handling time, and reading and writing to files (a difficult topic, handled best in Dan Nguyen’s Bastard’s Book of Ruby).

Sinatra for Ruby

Sinatra is a light-weight framework for Ruby, excellent for small projects. Here’s an excellent tutorial by Rails Girls. Here are a couple of other tutorial that look promising: ideabox by JumpStart Tutorial, Building a Slackbot with Ruby and Sinatra

Ruby on Rails

To begin with Learn Rails by David Kehoe is a good starting point. Provides good context and an easy to follow tutorial.

Michael Hartl’s Ruby on Rails Tutorial seems to be the most respected Rails guide out there.

Tutorialspoint Ruby on Rails Tutorial — concise step by step for a basic app with database — good for practice. Tell you how to set up MySQL or Postgres database in Rails (sqlite is the default).

Special Ruby Gems

Split gem for A/B Testing

Web Scraping with Python

First Web Scraper — Excellent, up-to-date tutorial using Python along with BeautifulSoup, requests, and cvs libraries.

Meteor
Meteor is a powerful, trendy, all-javascript framework. They have excellent tutorials on their website. David Turbull has done a tutorial that’s geared to beginners that’s truly excellent. Thanks, David!


Leave a Reply

Your email address will not be published. Required fields are marked *