Here are my favorite programming resources and activities that are available for free online. While not an exhaustive list of all the resources out there, these are the ones that I’ve personally enjoyed and would recommend to those interested in learning to program. Please share your favorite *free* tutorials, exercises, project ideas, or books!
Prerequisite: know how to recognize a computer that is turned on.
This is for total beginners who are intrigued by the idea of programming. Brought to you buy Stanford’s Center for Professional Development and Professor Mehran Sahami, CS106A teaches programming fundamentals through the Java programming language in an easily accessible and thoroughly enjoyable way.
You’ll need the short course reader, Eric Roberts’ abridged The Art and Science of Java, and the course curriculum, all of which are only a Google search away.
Projects: You’ll build games and programs such as Brickbreaker, Hangman, Yahtzee, and FacePamphlet.
Commitment: ~2-3 months
Dash | Browser based HTML, CSS, and jQuery tutorial
Projects: A Personal Cover Page, Blog Page, Responsive Restaurant Page, Dancing Robot, and Mad Libs Game
Commitment: < 1 week
Udacity! | Browse through an extensive catalog of courses to experience the free-ness, or follow a specific Nanodegree curriculum. Udacity regularly updates their website with new courses, so you’ll never get bored. My favorites so far:
How to Use Git and GitHub
Start here! Learning to use Git and GitHub opens up a plethora of opportunities for those just embarking on their coding journey. If you’re new to the command line, this is a great opportunity to get comfortable in your Terminal, while also learning version control. Just some of the benefits: track your project’s progress, share your code with the world, build up your portfolio, discover others’ code, contribute to open source projects, easily switch between the different stages (called branches) of a single project rather than downloading multiple starting points, freely host one static personal page and multiple project pages!
Intro to HTML and CSS
Good starting point for understanding the DOM and interacting with Chrome’s built in Dev Tools
Create an interactive resumé
Responsive Web Design Fundamentals
Design sites that scale across screen sizes
Co-founder and CEO of Reddit, Steve Huffman, guides you through the process of building a blog while introducing you to HTML forms, HTTP, Python, SQL, Google App Engine, and more
Intro to AJAX
Integrate APIs such as Google Street View, NY Times and Wikipedia to display data from anywhere
Organize spaghetti code using the M-V-* pattern and Knockout.js
…and the rest of the Front-End Nanodegree!
Codecademy | Your Virtual Code Tutor with discussion forums
Free Code Camp | A Roadmap to Learning Web Development
Free Code Camp boasts 800 hours of challenges that range from basic to advanced, and offers opportunities to pair program and code for non-profits. Well worth checking out!
Type commands into your shell prompt and ask questions later! Codecademy and Udacity also have brief tutorials on the command line that complement Zed’s nicely, but you should really start here!
Commitment: 1 week
Chris Pine’s Learn To Program | Awesome, Fast Ruby Guide
Commitment: 1-2 weeks
RubyMonk | Interactive (and addictive!) Ruby Exercises: Beginner, Intermediate, and Advanced
Commitment: 1-2 weeks per course
JumpstartLab | Gentle First Rails Project: Blogger
Commitment: 1-2 weeks
Not finding what you’re looking for? Google it harder: Why googling is the most important skill a developer must have
That’s all for now. Please share your favorites below!