Learning Resources

Girl looks over top of book

No matter what language you’re looking to learn, there are a number of resources available for you to choose from. Here are some to get you started, and feel free to suggest any others you find helpful in the comments. We prefer free resources when possible. Non-free books are welcome and are good to look for at local libraries.

General Coding

Which Programming Language Should I Learn First?: An infographic that helps choose a first programming language based on what will be done with it as well as personal traits. It leans heavily toward Python
CS50: Harvard’s famous Introduction to Computer Science course, offered for free on edX. It teaches how to think algorithmically and solve problems efficiently, using a variety of languages and tools. No prior knowledge is required.
DZone: Blogs, articles, and discussion on virtually anything important to developers. Wide range of topics including languages (C# / .NET, and Java) to topical areas like Mobile, IoT, Cloud, Agile, Database and Big Data.
{DevFreeBooks}: A collection of free ebooks for developers from a wide variety of languages.
Groundera: A curation of indie ebooks, many free, focusing on entrepreneurship and often intersecting with design, user experience, app creation, creativity, and productivity.

Algorithms/Computational Thinking

Codewars: Challenge yourself with algorithm kata, earn martial arts-style ranks and compare your solutions with others to improve your approaches.
CodeFights: Competitive coding challenges that allow you to compete against friends, coworkers, and more in a wide variety of languages.
Hackerrank: Practice algorithms and compete in timed contests in a highly competitive environment, founded by Vivek Ravisankar and Hari Karunanidhi.
CodeinGame: Solve fun challenges in 25 languages. Each challenge has been “gamified”.
MIT Open Courseware: Hard to go wrong with any of MIT’s free courses, these go into more of the theory behind your code.

Regular Expressions (Regex)

Regex Crossword: A series of crossword puzzle challenges, from beginner to advanced, that builds familiarity with regex patterns.

Git

Learn Git Branching: A web app by Peter Cottle that gamifies learning git, making it a fair bit of fun.
git-it-electron: A desktop app by Jessica Lord that makes learning basic git commands easy.
git – the simple guide: A guide by Roger Dudler that goes over all you need to get started with git. It takes less than a minute to read and will get you using git in minutes, but you may need to review its recommended links and resources to understand the whys behind what you’re doing.
Git and GitHub in Plain English: A blog post by Nico Castro going over the theory behind version control in plain English.
Git Tips and Tricks: Getting more comfortable with Git? Here are some ways to get more out of it.
A Successful Git Branching Model: A great guide by Vincent Driessen with plenty of visuals about structuring branches for production, development, features, releases, and hotfixes. Includes a fantastic PDF visual reference.
gitmoji: Seeing emoji on GitHub? Here’s what they mean.
Writing Readmes: A free Udacity course for learning to write documentation for your fellow humans.

Linux

Introduction to Linux: A free edX course by The Linux Foundation that gives an in depth look at Linux’s foundations, architecture and use, from beginning to advanced.

CyberSecurity

Crypto101: A free introductory course on cryptography.
Cybrary: Free and open source cyber security education featuring free training, certification, and community resources.

Design

Smashing Magazine: Web Design, HTML, CSS and Javascript resource.
Hack Design: A series of 50 free lessons in web design from beginner to advanced, plus a toolkit of recommended tools and software for designers.
A List Apart: From their tagline: “For People Who Make Websites”.
Introduction to UX: A free edX course by the University of Michigan that provides an introduction to UX (user experience) research and design.
Resilient Web Design: A great free web book (available free in ebook and audio formats) on web design and its philosophy by Jeremy Keith.

Accessibility

The A11y Project: A community-built resource for making accessibility easier.
WebAIM: A resource for accessibility topics.
aXe: an Accessibility Extension for Chrome: Deque’s aXe extension makes it very easy to test you debug your site’s accessibility problems. After trying several this appears to be the most comprehensive and works well.
Accessibility Developer Tools: Created by the Google Accessibility team, this adds a panel to your Dev Tools that will run audits on your page for accessibility, performance and network utilization.
Accessibility Inspector: Also by Google, there is in-depth accessibility information available in existing Dev Tools, though a bit hidden.
ChromeVox: An easy to use screen reader available as a Chrome extension with which devs can test website functionality.
High Contrast: A Chrome extension that allows you to change website color schemes to high contrast ones. Since many users need high contrast to read on the web, this can help you make accessible color choices.
M*th*rf*cking Website: A satirical webpage by Barry T. Smith that has an excellent message about making websites lightweight, functional, and accessible. As should be clear, this page uses profanities to make its point.

HTML

Intro to HTML and CSS: A free Udacity course for learning to convert design mockups into static web pages implemented in HTML and CSS with a focus on responsive design.

CSS

CSSReference.io: A phenomenal visual guide to the most popular CSS properties.
Can I use…: Browser support tables for HTML and CSS features.
CSS Tricks: A resource with creative CSS solutions to design problems.
CSS Zen Garden: This is website challenges you to take their basic HTML, and create whole new layouts and designs using CSS. You can browse literally thousands of “redesigns” of the website that just apply different CSS.
CSS Diner Share: A game that makes learning about CSS selectors visual and fun.
Flexbox Froggy: A game by Thomas Park that teaches CSS flexbox by helping to guide Froggy to a lilypad.
Flexbox Defense: A tower defense game that uses flexbox to position the towers to reinforce flexbox properties.
Dead Tired of Looking up Flexbox?: Email course by Dave Geddski for learning flexbox properties with zombies.
The 100% Correct Way to Do CSS Breakpoints: Confused by breakpoints? Here’s a better way to understand them and set them up.
How CSS Pseudo-Classes Work: A great explanation of pseudo-classes and their usefulness with code examples and plenty of diagrams.
Which Colors to Avoid in Web Design: An overview of what not to do with color, with suggestions for how to improve.

JavaScript

MDN Documentation: The official documentation for the JavaScript language.
Free Code Camp: A free curriculum for learning full-stack JavaScript founded by Quincy Larson.
JSbooks: A resource with links to over 60 free JavaScript ebooks, like You Don’t Know JS and Eloquent JavaScript.
JavaScript Basics: A free Udacity course for those with no prior JavaScript programming experience, leading to building a dynamic personal resume.
Object-Oriented JavaScript: A free Udacity course that provides tools to make code more modular and gradually undo the “spaghetti code.”
You Might Not Need jQuery: A tool that allows you to search for jQuery syntax and see what the equivalent would be in vanilla JavaScript, with the options of supporting Internet Explorer versions 8-10.
Ecmascript 6 – New Features: Overview and Comparison: A guide to differences between concepts in ES5 and ES6 with code samples.

Ruby

The Odin Project: A free learning path for learning full-stack Ruby founded by Erik Trautman, the founder of The Viking Code School.
Try Ruby: A free Code School tutorial course for beginners that allows you to learn Ruby syntax in quick bites.
Rails for Zombies: A free Code School course to follow Try Ruby that teaches the Ruby on Rails framework.

Python

PythonBooks: A resource with links to at least 60 free Python ebooks, like Think Python.
Google’s Python Class: A free class for people with a little bit of programming experience who want to learn Python.

Java

Java Programming Basics: A free Udacity course for learning Java fundamentals.

Swift

Intro to iOS App Development with Swift: A free Udacity course that teaches iOS app development by having you build a voice transforming app, for those with some prior programming knowledge.

PHP

C

Objective-C for Swift Developers: A free Udacity course that teaches Objective-C syntax for those with prior Swift programming knowledge. After completing this course, you should be able to translate an app written in Objective-C into Swift.

C#

C++

Google’s C++ Class: A free class that includes written materials, lecture videos, examples, and exercises to practice C++ coding.

Objective-C

.NET

SQL

MongoDB

MongoDB for Node.js Developers: A free course through MongoDB University that teaches what you need to know to build an app based on MongoDB. The next session runs Jan 10, 2017 – Feb 28, 2017.

CMS

General CMS

Best of Themes: A resource with thousands of well-curated free and premium themes for HTML5 and CMS like WordPress.

WordPress

WordPress Codex: The comprehensive documentation for self-hosted WordPress.
Theme Check: Check WordPress themes for a number of security and code quality concerns.

Drupal

Joomla

Browser-Irregularities

Can I use…: Browser support tables for HTML and CSS features.
Should I Prefix?: What prefixes are needed for newer CSS properties.
Opera Mini Tips: A list of features not supported in Opera Mini and workarounds for them, made by Ire Aderinokun.


Contributors:

Chazona Baum
Macon Pegram
Tim Dietrich
Michael Sparks

Leave a Reply