A year ago I didn't know how to code. I had a journalism degree and had made some graphics, but I would have been hard-pressed to explain the difference between Ruby and JavaScript, and I was pretty happy when I got the YouTube video to embed correctly. I considered myself pretty technical but generally avoided the command line.
When I did start learning, I was amazed by how much was out there: introductory videos, explanatory blog posts, tips and tricks and step-by-step guides. If you're a journalist who wants to make a news app or a student interested in learning to code, you have plenty of paths to choose from.
To get coding quickly, nothing beats having a project – and a deadline. For some of my early projects (with the help of a few developers willing to answer my questions), I learned just enough to make it work: how to show/hide a div or generate a bar chart from a CSV file. Repeating those same steps for later projects helped me actually understand what I was doing (and how the code worked).
As the year went on I came across a number of resources that were also very helpful in digging deeper: tutorial videos that finally cleared up some long-standing befuddlement, random snippets of code that made the damn thing work after three hours of head-banging, some really good explanations I wish I had read weeks earlier, etc. I hope these links will be helpful to you as you get started coding. Most are Ruby and Rails related -- Ruby is a programming language and Rails is a "framework" that makes coding quicker and easier – with some JavaScript, Git, and other stuff that came in handy over the past year.
Ruby and Rails
Peepcode: Meet Rails 3 Part 1 and Part 2 Great introductory videos that are also very convenient – you can download them right onto your phone and watch them on the subway (if that’s your thing). Super comprehensive, might wanna watch them a couple times to get everything.
Rails Course from the University of Texas
A complete set of videos from a Rails online class from a professor at the University of Texas, a bit slower-paced and more detailed than the Peepcode lectures.
Rails Guides
This is one of the best resources for both getting an introduction to different components (like routes or active record, etc) and also something to look back on every time you forget the correct syntax.
Bastards Book of Ruby
For a detailed introduction to how Ruby works, from erstwhile ProPubNerd Dan Nguyen.
Ruby on Rails Tutorial
Super detailed, super comprehensive online book that walks you through the entire process of building an app from install to deploy.
RailsCasts
Screencasts for learning Rails. Tips and tricks, how-to’s for solving specific problems, and introductory “tours” of Rails techniques.
Rails for Zombies
A pretty entertaining way to get the basics of Rails down in a real “lesson” format (complete with quizzes and exercises and many zombie references).
More Ruby and Rails Resources
- Ruby Programming Language official page
- Screencasts from the Rails official page
- Programming Ruby: The Pragmatic Programmer’s Guide
- Learn Ruby with the Neo Ruby Koans
- Learn to Program (ruby)
- Rails API
- Ruby Tutorial
- Rake
- Loops
- Helpers
- Link_to and css classes
- Case Statements in Ruby
- Strftime
- Indexes in Rails
Javascript
- Eloquent JavaScript: A Modern Introduction to Programming
- Peepcode: Meet jQuery
- Codecademy: JavaScript
- JavaScript: The Good Parts
Command Line
Sinatra: a lighter framework than Rails
Git: a source code management system that keeps track of versions and aids collaboration.
CSS
- Shapes of CSS
- The 30 CSS Selectors you Must Memorize
- CSS Curly Quotes
- Pure CSS GUI Icons
- CSS Nth Child Tester
- CSS Specificity, Star Wars edition
- Pseudo Class Selectors
Colors
Regular Expressions: used to match patterns of text for powerful find-and-replace, data cleaning, formatting, etc.
Sublime Text: a graphical text editor
Vim: a text editor for the command line
Markdown: a tool for writing plain text that's easily converted to HTML