These are exciting times. The internet connects us in ways we never thought would be possible. The vast amount of videos, text, applications, discussions makes the possibilities of learning endless. In this post, I will give you information about ways to learn programming and what specific resources I recommend.
How it was before
Back in early 2000, when I began to learn programming, there were limited resources. It was almost exclusively books. If I was stuck on a problem I might be out of luck. Sure it was some forums and info online. But not nearly as much as it is today.
So what are those resources which can kickstart your coding career? Let’s dive in.
There are some free resources which can provide excellent information.
I can’t praise this site enough. They are mostly focused on web development. What I like about this site is their tutorials are divided into small bite-sized sections, with easy to understand content. And there are a lot of opportunities to try out the code for yourself.
I bet everybody has heard of this site. Tons of tons of videos scattered around with a lot of excellent content.
Some of my favorite channels are:
There are a lot of video courses on the web today. This is my favorite way to learn because you can see how people code and how the apps progress over time.
There are a ton of video courses out there. I want to mention a few of my favorites:
This site has courses about anything from programming to gardening. As of this moment, there are over 65.000 courses available and a lot of the developments courses are top notch.
Some of the courses here are free, but most cost money. You pay a one time fee for a course, and you will own that course forever. There are no subscription plans here. The pricing for a course ranging from $11 to $200. I think $200 for a course is a bit stiff. But luckily they have great sales very often where all the course will go for between $10 – $15. I recommend to be patient and wait for these offers.
One instructor there I highly recommend is Maximilian Schwarzmüller. He is creating courses which are interesting to me, which is web development both on standard web application and mobile development. He also is very engaging, thorough and is very good at explaining concepts. The content of his courses is also often updated when things change in the technology, which is important in this fast-paced industry.
Here are a few of his courses I personally recommend:
- Angular 6 (formerly Angular 2) – The Complete Guide
- CSS – The Complete Guide (incl. Flexbox, Grid & Sass)
- Ionic 2/ Ionic 3 – Build iOS & Android Apps with Angular
- React Native – The Practical Guide
The thing with Udemy is that it’s an open marketplace. Which means everyone can submit a course there. You should, therefore, think it would be a lot of low-quality courses there. But since there are a ton of courses there, and the rating system is very good, it’s very easy to find the courses with high quality.
This is a monthly subscription site with a 7 days free trial at sign up. The price is currently $25 per month and you have access to a bunch of videos.
Team Treehouse is mostly geared towards web development and mobile development, but there are also some backend and SQL courses there also. They have a nice track system, which means if you want to learn HTML, they have a set of recommended videos you should watch to learn that skill. What I also like is they have exercises and quizzes which help you practice what you learn.
Team Treehouse, unlike Udemy, only have in-house instructors. This means the production quality is more consistent. They don’t have a rating system which means it’s hard to determine the quality of the course. But in my experience, the instructors and content have a very high standard.
Pluralsight is a subscription site like Team Treehouse. This site I feel is more geared towards professionals with intermediate skill level. The instructors there are very professional and the content is high quality. They have a more variety of topics covered with more backend stuff than Team Treehouse.
Their pricing is currently $29 a month and has a 10 days free trial.
To be honest I don’t learn that much development from books anymore. But if books are your cup of tea, here is a couple of nice ones:
Clean Code – by Robert C. Martin
This book is all about writing good, readable code. This is an essential skill if you are working with a team and other people have to read your code. It’s even important when you are the only one developing the code. If you have written something and come back to it a couple of months later, your code will look greek if you have written bad code with bad structure and naming.
Coding challenges sites
This is a great way to learn which I highly recommend. These are sites with problems you need to solve. You have one or more inputs which you usually need to manipulate to get the desired output. The code can be written directly in the browser, and after you have submitted the solution, it will automatically do tests to determine if you have passed the challenge.
You will then often see a recommended solution or see the people in the community with their solution.
I really like to learn this way, because:
- Everytime you solve a challenge you get a sense of mastery, which makes it fun and addictive.
- You get to see other people solutions. Often you have solved the problem your way. But if you compare your solution to others, you will often learn a trick or two which you can use later in your career.
- Learning a programming language is like learning a foreign language. You have to use it (speak it) to be proficient.
There are also a bunch of coding challenges sites. But to name a few:
Most of them have a premium option which cost money, but also have free challenges too. My favorite here is Edabit. I really like the interface and you will probably never run out of free challenges here.
But feel free to try them out and choose your favorite.
You can even learn on the go with mobile apps. I haven’t a ton of experience here, but here is a couple I have tried out:
Where do I start?
I have listed up a lot of resources here. But you might be asking “Where do I start?”
It really depends on your skill level. If you are just started out, I would recommend going over to W3Schools. It is totally free, beginner friends, very little dry info and you can start coding within minutes.
After you have gotten your feet wet you can start watching some video tutorials. You can start by watching some free video tutorials on youtube, but the problem with youtube is that the information is scattered all over the place. I would really recommend investing in a paid course. That way you get full courses in topics you are interested in which usually starts with the basics and builds further from there.
My favorite video course site is Udemy. I like that I can buy one course and have it forever. Which means I always can go back and rewatch certain topics. Subscription sites are awesome too. My favorite is Team Treehouse. But all the subscription sites usually have a free trial. Try a few of them out and see which fits you best.
When you are going through a video course, it is very important that you are coding along with the instructor. Pause the video and try the concepts out. Ideally, try building ideas you have with the concepts you have learned to challenges yourself. In these video courses, it is very easy to sit back with some popcorn and just watch the lectures. Even though you might think you learn a bunch of stuff, most of it will be forgotten if you don’t practice it.
Practice what you’ve learned
Speaking of practice, doing coding challenges on a regular basis is the fastest way to being a good coder. It is like going to the gym. Regular flexes of your coding muscle will do wonders! A nice goal is to do at least one challenge five days a week. I’ve mostly been using Edabit, and there are a lot of very easy challenges there that often takes only five minutes. The cool thing is that when you finish one challenge, you usually get encouraged to try another one.
When creating apps, you will often get stuck. Use google for all it’s worth. Also, ask questions. There is a great community called StackOverflow where you can ask all sorts of developer related question.
You can get bored of just writing the same code as in a tutorial online. A good idea is to have a small project of your own and use the knowledge which you have learned. You will have a lot more motivation when coding and you will be forced to think for yourself which in turn will push you to be a better coder.
Hope you got some good tips from this post. Good luck!