This is the “JUST DO IT” list. I created it because I tried, unsuccessfully, for years to learn to code. I was never sure what to learn or how to learn. Not wanting to commit to specific technology, I ended up googling things that seemed cool and saving links. I’d convinced myself that I’d come back to the links later, actually learn the thing and life would be good.
What actually happened was I ended up signing up for services repeatedly and not taking the time to focus and learn anything. I would only partially complete videos and tutorials. In the process I ended up with a vague familiarity of varied technologies and nothing I could call a skill.
Naturally, my collection of bookmarks kept growing. It grew past the point of usefulness and became a chore to look at. One day I decided to pick a thing and “JUST DO IT”. The thing I picked was taking all of my links and putting them into a website.
It was originally hosted on Github but I think this is a better place for it. I may or may not have watched the famous Shia LaBeouf video around the time the list was originally made. If you’re ever interested in how the original site looked then I took a screenshot of it. You can find it here. It was low-key garbage but, never forget where you started.
Places to learn a new skill
edX is a free online course provider. I checked them out back when I was trying to figure out how to become a programmer. I ended up using their site to watch videos about computer science on my phone. They’ve got courses on all sorts of topics and they’re backed by MIT and Harvard. They provide a sort of structured approach to self-learning. The link below is to their computer science courses.
Imagine if one of the most prestigious colleges in the world decided to put the content of their courses online for free. Well MIT did and it’s called OpenCourseWare. Since you’re not paying for it you only get the learning materials (videos, files, etc…). If you’re wanting a world class education and you’re willing to teach yourself then OpenCourseWare is the place to be. They’ve got courses on all sorts of topics The link below is to their electrical engineering and computer science courses.
Imagine if one of the most prestigious colleges in the world decided NOT to put the content of their courses online for free. Now imagine that one of their Computer Science courses went rogue and did it anyway. That’s Harvard’s CS50. You only get learning materials (videos, files, etc…). This is a self-taught option as well.
Codecademy is probably the most beginner friendly “teach you to code stuff” websites I’ve ever found. Not only does it avoid assuming you already know stuff but it’s also very pretty to look at. I jumped on this bandwagon when it was completely free and did countless exercises. I think I found out about it through a Reddit post. It now has a premium tier but all the stuff I did is still free.
Coursera is very similar to edX. It has both free and paid options. You can find a CS course from any number of schools and complete it for free. Some courses are self-directed, requiring you to simply complete the exercises by courses end and other courses (usually paid) require due dates for your assignments and will grade them. I ended up only using the site for their videos every so often but Coursera is a good option if you can direct your own learning.
I’ve heard good things about FreeCodeCamp. I’ve heard of people really getting their coding career started based on what they do in this program. As the name implies, it’s free. I saved the link years ago. I never got into it because their site and setup seemed too basic for me. Now it looks like they’ve completely revamped and generated an entire program around teaching people on the internet to code. If it looked like it does now back when I started, I would have definitely used it. If you don’t want to deal with their program and would like to get at their curriculum then you can find it here.
Udacity is almost identical to Coursera and edX. It has free and paid options. Courses on all sorts of topic and I’m going link you to their Computer Science content. I never got around to actually using Udacity but it’s been around for years. The trick to finding the free stuff is to not select the “Nanodegree” courses. Scroll to the bottom of the page and look at the free courses. There’s enough free courses there for a lifetime.
I’ve used Khan Academy for years. This site is amazing. It started on YouTube as a series of math videos and grew from there. It’s basically a place where you can go to learn anything for free. The videos are well paced and thought out. You can learn anything on the site. I keep the site handy for when I want to learn pretty much any topic. Most recently I logged in and did some basic math. The link below is to their “Computing” content.
Places to practice existing skills
HackerRank is a pretty great website. I’ve only come back to it randomly. In the past I’ve used it for when I felt like it had been a while since I did anything code related and wanted to convince myself that the drive/desire wasn’t gone. Recently I’ve used it for some basic challenges and familiarizing myself with a new language. You could use the site as a complete learning suite but I tend to stick to the practice areas. Some times you just want to see if you can still code, ya know?
Codewars is my current go-to practice site. All the challenges are created and vetted by the community. You can find all kinds of challenges here that break the mold of traditional programming challenges. I can’t recommend it enough. Since the community has to solve a challenge before seeing other people’s solutions, you can get really good feedback or praise on the way you solved a problem. I solved a binary conversion challenge in C# a long time ago and still get comments on it from time to time.
Coderbyte is one of the links that got added to my massive list and never actually got used. It seems legit though. It has regular challenges and algorithmic challenges. It seems like as good a place as any to practice and seems to be constructed similarly to Codewars.
Rosetta Code is a self-directed sort of practice. Which can be more relaxing than the other options. Basically the site is a series of hundreds of prompts for programming challenges. The prompts can be solved in any language and submitted to the site. However, you don’t have to (and most likely won’t want to) submit yours. It’s a site for self-gratification. You solve the problem for yourself (unless you see that the challenge hasn’t already been solved in your language of choice). I actually plan to tackle some of their challenges in my free time moving forward. It looks a lot like Wikipedia. Check it out.
CodingBat is a no non-sense website for throwing yourself at various programming challenges. The challenges go from beginner to - how did you figure that out???. The more complex challenges require you to know your language well and to understand at least early Computer Science concepts like recursion. From what I can tell the site only has exercises in Python and Java. You can test your solutions directly on the site. I’ve never used it but I had a friend who used it a bit and like it. It’s been on my list of things to try for a while now.
Git is a version control system. Which is a fancy way of saying that Git is a thing that helps your keep track of changes in your code. Git is a lot more powerful than that but if you already knew that then you already know what Github is anyway. Github is a website based around Git. It is the place to go for hosting open source code. I’m not sure what the original ethos was behind Github but it has become a place to go to find out about projects, packages and code from all over the world. It’s has also become a pseudo-social networking site.
Learning how popular algorithms work can be difficult. To grasp the concept or behavior of an algorithm you have to picture how it works. With sorting algorithms you have to visualize how it works to get to a place where you can implement it. If you have trouble with seeing it in your head, then that’s where VisuAlgo comes in. The website provides visual representations of common algorithms like bubble sort, merge sort, etc… It’s got visual representations of the behavior of common data structures like Hash Tables, LinkedLists and Trees too. Check it out.
Have you ever tried to do anything with code that in some way could be related to the web or the technologies involved in it? If you’ve ever gotten stuck while doing that thing and googled it then you’ve almost certainly seen W3 School’s site. They are almost always one of the first links to show up when doing anything in the beginning stages of becoming a programmer. You’ve seen them before and will see them again.
The list to end all lists
Read the section on Github and then come back here. Did you read it? Great. Now that you understand what Github is. I was sort of cruising through Github looking for learning resources and interesting repos. Eventually I found a list of resources to get started as a web dev. That list linked to an even bigger list. I went about 3 lists deep before I found this absolutely massive list of links to resources for all sorts of things related to code and programming. The list is in a repo by the EbookFoundation. The repo is called “free-programming-books”. I have only ever looked at a few things in it but if my list is too narrow then this will almost certainly have something to get you where you need to be.