Learning a bit of programming can be useful if you actually want to do it. Learning a bit of programming can be painful if you feel you ought to do it. What follows is my advice about approaching the learning of programming. This isn’t a programming tutorial.

Learning programming, like playing guitar, is a popular hobby. Popular hobbies have large industries around them, trying to teach how you to do the hobby. This means that tutorials compete for your attention, by making very strong normative claims, like “DONT DO THIS” or “TOP TEN THINGS YOU MUST DO”. This advice is not very helpful, especially for newcomers, because they might actually believe it.

My advice: if it sounds extreme, or sexy, or exciting, don’t listen to it. Programming is really boring and unsexy, and that’s what the tutorials should sound like.

You cannot learn if you feel you “ought” to

You will not learn programming if you feel you “ought” to learn programming. Programming, like other languages, and other hobbies, can be learnt in one of two ways: necessity, or sincere interest. A normative sense that you ought to learn it, will lead to you feeling guilty about not learning it, and you will abandon it. If this is how you feel, you might want to check out something like The Replacing Guilt Series by Nate Soares Otherwise, you might want to consider not learning it at all. It’s okay not to learn programming, you haven’t needed it this far in your life.

My advice: don’t do anything that you feel you ought to do. Either know why you’re doing it, or don’t do it.

Stick with one thing, then move on

You have to stick with one resource. If you switch resources, you’ll lose momentum, or get confused, or get frustrated. Those things will probably happen with one resource too, but you’ll at least know where you finished. Like anything, you have to pace yourself, you cannot do it all in one day, and you shouldn’t rely on inspiration.

My advice: stick with one resource and follow it exactly. Do not skip anything and make a habit of doing a little bit a day. Do not do too much in one day, because you are not aiming to be frenzied, you are aiming to be disciplined.

You need a project

You will not learn a language if you have no reason to use it. Having a project ensures that you have a reason to learn a language. I can’t recommend a project to you, but i’m sure other people will. Rather, I’d encourage you to be more lazy than you are. If you find yourself doing something repetitively, think could I automate this? If you could, then automate it using the programming language.

My advice: find a small project that you want to do, and that you could do, and do it

Resources I think are useful

Automate the boring stuff with Python

Source

I followed this book directly to learn the basics of Python. The online version is free and easy to understand. You don’t need any instruction from me, just read the book and do as they say.

Codewars.com

Source

Once I had the basics down, the important thing was practice, and iteration. I found codewars to be very useful for this. Codewars have small problems for you to solve, and you write the code into their website. Once you’ve submitted it, it validates the code, and you can see how other people solved the problems too. This was great for practice, and great for seeing different approaches to the same problem.

You won’t learn well from YouTube

Youtube is great, but not for learning. Youtube, like most podcasts, are great at giving you the impression that you are learning, when you’re not really, or not efficiently.

My advice: stay off YouTube unless you’re looking for entertainment

It is no one’s responsibility to teach you

If you don’t learn programming, that’s your fault. Take responsibilty if you want to learn it, because there are enough resources out there to learn anything. If you don’t learn it, don’t worry about it, but don’t make excuses.