Free and Awesome Programming Resources

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!

Stanford’s CS106A: Programming Methodology

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

  • JavaScript Basics
    Create an interactive resumé

  • Responsive Web Design Fundamentals
    Design sites that scale across screen sizes

  • Web Development
    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

  • Object-Oriented JavaScript
    Deeper dive into JavaScript: First 4 days of Hack Reactor Curriculum (check out their full curriculum if you dare to DIY!)

  • JavaScript Design Patterns
    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

This site gives you a great intro to just about anything – HTML, CSS, jQuery, JavaScript, AngularJS, Ruby, Rails, command line, and many more. If you get stuck at any point during a tutorial, you’ll likely find the answer to your question in the forums for that lesson. Codecademy also rolls out new courses frequently so be sure to check back.

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!

Zed Shaw’s Learn the Command Line

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

###Ruby Resources:

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

Free books and initiation.

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!

Related Posts

12 Week Progress Update for PGP Clean Room

Default and Custom Key Generation

10 Week Progress Update for PGP Clean Room

Developing Whiptail TUI... GIFs!

8 Week Progress Update for PGP Clean Room

Internationalization and Code Refactoring/Reorganizing

6 Week Progress Update for PGP Clean Room

Implementing smartcard functionality

4 Week Progress Update for PGP Clean Room

Using GPG 2.1.16 on Sid and more feature ideas

2 Week Progress Update for PGP Clean Room

Building a Whiptail TUI and using GPG 2.1.16

Applying to Debian for Outreachy 2016

Applying to the PKI Clean Room Project for Round 13 of Outreachy