Resources for New Coders

I have been overwhelmed by the number of resources out there to teach yourself to code. Things have changed so much since the days of “rtfm”, and there are so many options for people who need more than a dry users’ manual to learn a new skill. Here is a list of resources I’ve found particularly useful or awesome:

If you don’t know where to begin, start at the top and work your way down.

Python For Everybody (Py4E) is where I got serious about coding. I discovered Py4E through Coursera but discovered through the course itself that all the materials are available online for free, including the textbook, and are all released under a free and open source license. Dr. Charles Severance is incredibly serious about making coding accessible to everyone.

Web Applications for Everybody (WA4E) was my next step after Py4E, and another of Dr. Chuck’s courses. It touched base on so many helpful skills for back end coding: PHP, SQL, JavaScript, JSON, jQuery, APIs, and just enough HTML and CSS3 to give you the confidence to check out front end work. WA4E is also available through Coursera.

Web Design for Everybody (WD4E) is also available on Coursera, and is taught by Dr. Colleen van Lent, who is extremely dedicated to teaching beginners. This course covered HTML, CSS, JavaScript, jQuery, and tons of tools to help you keep learning once the class was over, such as how to use frameworks and templates.

Coursera has been a great fit for me because I always liked formal classes, with organized structure and the use of audio, visual, and interactive teaching methods. Most of the classes are free, but you can pay for certificates and access to graded quizzes. I don’t like that you have to pay to have your assignments graded, but given the cost of coding bootcamps, this is a real bargain. Buyer beware though: some classes are real duds. Take advantage of the free trial and don’t be afraid to dump a class it’s not working out. I recommend the three specializations based on the three courses listed above (Py4E, WA4E, WD4E).

Free Code Camp is just that: a free, fun way to learn to code, mostly focused on web development and design.

Invent with Python is a series of books designed to teach beginners and make life easier for experienced users. I especially loved Invent Your Own Computer Games with Python for making fun little games by working through the book’s examples, and Automate the Boring Stuff with Python as a handy reference guide for all those little tasks that are, well, a little dull.

Codewars turns coding into a game. You do progressively harder challenges (kata) and earn points to level up. I think it’s really helpful to work through an exercise and then see how others solved the same problem.

Codecademy was something I’d tinkered around with before I ever got serious about coding. Codecademy gives fairly straightforward lessons that are easy to solve (and therefore can be hard to retain) and are occasionally buggy, but it gave me a lot of confidence to start pursuing this more seriously.

CodePen is awesome for creating with HTML, CSS, and JavaScript, and viewing your changes on the fly. But it’s also an outstanding source of incredibly talented coders and designers, and I’ve learned so much by exploring other people’s code. is a repository of self-care resources for tech folks and others who spend a lot of time on their computers. It’s also crowdsourced, so you can contribute tools to help others.

CSS Zen Garden is a beautiful illustration of how powerful CSS is.

Regex quick guide this came from Py4E, and it covers the basics, so I tape copies in new notebooks as I start them.

Try Dat, an online learning tool for Dat project.

Optimizilla, a free online image compression tool, useful for images up to 20 MB.

Website Planet’s Image Compressor, a free online image compression too, useful for images up to 50 MB. (Thanks for the tip, Anna!)

MAMP, an easy and mostly painless way to run a webserver locally.

Python Anywhere, a free full Python desktop environment and hosting service in the cloud., a way to learn a whole bunch of languages and practice using the command line.