I’ve been compiling a list of the tools I have been using to learn to program. It was very long. As you saw when I was talking about how my journey could have been more efficient, I was recommending greater focus. In that spirit, this is a greatly paired down list.
I hope this helps anyone reading who wants to focus on a few tools to really get the basics down to dive into an efficient path to becoming a programmer.
Free Code Camp offers good tutorials and exercises that walk you through all of the basics. That’s the first tool I would check out.
- Do their “Basic HTML and HTML5” tutorials in their “Responsive Web Design Certification”.
- Do their “Basic CSS” tutorials in their “Responsive Web Design Certification”.
This will get you into the basics. You also have some tools you need to learn. I have found a bunch of one-off videos, and these come up in tutorials where you are building something all the time, but it seems to me like it would be useful to list some specific tutorials or videos on each:
- You need to learn a code editor. There are a bunch of good ones. I Really like Visual Studio Code (VS Code), but there are a bunch. Atom, Sublime Text, and Brackets to name a few. This one might be worth learning by doing. When you work on a longer project, get out of the browser and see if you can make sense of it. Lots of tutorials will recommend one and show you a bit about it. That’s a good start.
- You need to learn how to use the terminal, and a task runner, or package manager, type thing: I have heard of NPM and Yarn. I recommend NPM, but my recommendation is based off of never having used Yarn. Maybe Chris has more to say here. As for learning it, it comes up in tutprials, and they just usually tell you what to type. There is good documentation too, but I’ll look for a good tutorial.
- Related to that, you will use NPM or whatever you pick in the terminal. the terminal itself if a powerful tool. I’m looking for a good tutorial on this as well.
- You need to learn Git. Git is version control software that allows tons of collaboration and tracks changes you make. That means if you mess something up you can go to an earlier version. We use Github for this blog. We will use BitBucket at my coding bootcamp. Both of those use Git. I know there are some good videos that go over the basics, and I will post some here. Of course the best way to learn the real basics of Git is to read Chris’s posts on the topic here at ThreadHouse.
- You should learn some basic computer science concetps. There’s plenty of videos online for this. I have been watching Crash Course’s series on computer science, and it’s great for scratching the surface. It’s mainly fun watching. No homework.
- Of all the advice I am giving you, this is the biggest potential rabbit hole and the least necessary at the begining. With that said If you are into the idea of learning some math, you should. Discrete Math has tons of applications to big problems in programming. I’m trying to learn some Linear Algebra myself, because I have an instinct it will be useful too. The most useful math you can learn though is Algorithms. Algorithms are step by step instructions to solve a problem, and that is really what programming is about. Having a relatively mathy understanding of that will definately help. Once you basically understand what algorithms are, you can take off and go to websites like Project Euler, Hacker Rank, Code Wars, and all kinds of other places and practice algorithms every day. Not only will it make you a better programmer, technical interviews tend to focus on algorithms and data structures, so that’s a bonus right there.
I hope this list was useful. Over time I plan on coming back and adding more links to tutorials and videos. Remember to stay focused at the begining. There are a million things to learn. The more time you focus on getting as deep into JS as you can the better, at least at first.