Hello world! 🙂 first blog post after a long hiatus!
I wanted to share a curated list of free & budget-friendly resources for learning to code.
The focus of this link collection thus far is on web development and python, but you’ll find plenty of opportunities to branch off to other languages too. I’ve also included a number of resources related to data science as well as data structures & algorithms. Whether you’re new to the world of coding or simply looking for more resources for practicing, I hope you find what you’re looking for!
If you would like to contribute to this resource list or have any recommendations, let me know in the comments below.
Table of Contents
For Adult Learners:
These websites & tools should work for most learners.
Description: Created originally in 1998 by a Norwegian company Refsnes Data, W3Schools is a collection of free resources & tutorials for web development.
My note: It’s a great tool for looking up various code snippets.
Mozilla Developer Network (MDN)
Description: A collection of resource & reference guides for developers run by the Mozilla Foundation, a nonprofit organization.
My note: This is run by the same folks that develop the Firefox browser!
Description: Founded by Quincy Larson, freeCodeCamp is a nonprofit learning hub & community that teaches people how to code.
My note: Great series of exercises for getting started with web development. I regularly send my students here if they express an interest in web development.
My note: Many of the courses require a paid subscription, but it could be worth it depending on what you’re looking for.
Description: Scrimba is an interactive screen cast tool created by Scrimba AS in Oslo, Norway. Follow along with tutorials in the browser with this interactive tool / development environment.
My note: What makes this one noteworthy is that it allows you to stop the video at any time & edit the code via the editor.
For Younger Learners:
These are some helpful interactive tools & sites directed at getting younger students interested in coding. They might also be useful even if you’re an adult learner as they typically assume no prior knowledge or experience.
Description: Code.org is a nonprofit that provides K-12 computer science education for schools.
My note: Most of the kids that I work with have used this site at some point or another. My favorite tool is the App Lab, which is a sandbox tool for developing mobile applications. Many of the students also enjoy it!
Description: Scratch is a block based coding tool that is aimed at teaching children to create interactive media, stories, and games. Scratch was created by the Lifelong Kindergarten group at the MIT Media Lab.
My note: Scratch is what we introduce the younger kids to when they first start learning to code. Some features that I particularly like about Scratch is that you can remix and see inside all of the projects. They’re all “open source”.
Description: Trinket is a coding & learning environment designed for kids, with a focus on Python.
My note: We use this one often in the classroom. The Hour of Code is a great way to introduce kids to programming using typed languages (as opposed to block languages). I also like that you can create games with Pygame (https://www.pygame.org/) in the browser!
Description: Khan Academy is a nonprofit organization founded by Sal Khan in 2005. It’s dedicated to providing learning resources in a variety of different topics.
My note: KhanAcademy is primarily known for its extensive math curriculum, but they also have a section for Computer Science & Algorithms. Worth looking at!
My note: CodeCombat is a great option for students who need a little more excitement / interactivity while they learn.
My note: It’s a fun tool to use and allows some of the features of Scratch (drag and drop) but also stepping things up a bit in terms of difficulty. Great site for making simple games.
My note: This is a great tool for younger coders who want to get started making sketches and digital art.
Description: Kaggle is a data science community with a number of open source public datasets. They also have tutorials & guides for learning python, machine learning, and pandas.
My note: I’ve used this site briefly, but not extensively. They regularly host a number of competitions. While I haven’t participated personally, I’m sure trying it out would be a great learning experience.
R for Data Science
Description: This is a free to use online textbook developed by two authors Garrett Grolemund and Hadley Wickham that will introduce you to R and other related data science packages.
My note: Recommended by Brian (@ThatPhageGuy) on Twitter as a great resource for learning about R and Data Science. Looks good to me!
Algorithms & Data Structures:
These sites are largely geared towards candidates looking for interview preparation materials. However, they also double as good resources for learning about algorithms & data structures.
Description: A free two-part course series for learning about data structures & algorithms taught by two Princeton University professors Robert Sedgewick and Kevin Wayne. The language of choice for the course is Java, though the concepts can be applied across languages.
My note: I haven’t taken this course, but I’ve heard it recommended from several sources.
Description: A visualization tool for learning about various algorithms created by Dr. Steven Halim for his students.
My note: Very helpful site if you’re new to algorithms. It also features a few training tools & quizzes!
Description: HackerRank is a well-known site that has learning tools for practice coding & interview skills.
My note: I’ve been recommended this resource a few times, and it seems to be a favorite for helping students practice for interviews. Like the Coursera course, the language of focus is Java. They have support for other languages too, though.
Description: Another site dedicated to improving your coding & interview skills. It features challenges & courses.
My note: I haven’t used this one specifically, but I’ve heard it recommended a few times. I may give it a go eventually and update this listing.
Description: Designed to mimic a dojo, with Codewars you participate in a series of online coding exercises at various skill levels / kyu.
My note: I’ve personally used this one as my go-to for programming-related exercises. If I had a complaint, it would simply be that some of the challenges aren’t terribly moderated. So, the questions may be poorly worded or confusing. The upside is that they offer the challenges in multiple different languages.
Description: This is a popular subscription site directed at helping engineers get better at technical interview questions.
My Note: To get access to all of the content requires a yearly subscription. It might be worth it if you’ve got an upcoming interview or exam.
Communities & Support:
There are lots of developer communities out there, some of which are more supportive of beginners & newbies than others. I’m listing the ones I’ve had personal experience with or others have vouched for.
My note: DEV has an amazing community and countless development-related articles that are published around the clock. Be sure to check out the “Top 7 Most Popular DEV posts” listings for some great starting points.
Description: CodeNewbie is a community of programmers & other people learning how to code. It started as a biweekly TwitterChat by developer Saron.
My note: Very supportive community. They also have a podcast!
Description: An indie hacker community run by Courtland Allen. It has a full collection of resources & articles directed at helping others build online businesses & side projects.
My note: I don’t have any personal experience with this one yet, but it seems to be a great resource & community. Recommended by Fiona.
Description: A community created for women entrepreneurs. Created and moderated by Marie DM.
My note: I can personally vouch for this community as well! It’s not specifically directed at programmers, but you’ll find plenty of resources here. Marie is very welcoming.
Description: This is a free tool that matches self-taught learners together to complete online courses.
My note: I haven’t tried out this service personally, but it looks like it could be useful!