There are two types of people: those who like learning everything on their own and those who prefer to acquire new knowledge and skills with the help of special institutions — schools, colleges, universities.
Also, there are two types of knowledge and skills: those that can be acquired on your own and those that cannot. For example, you can learn literature at home by yourself, but you have no other options than going to university if you want to be a surgeon.
Programming is definitely one of those things that can be learned on your own. Maybe, it’s even the best thing of such a kind nowadays. And the great news is that today programming can be pretty easily learned on their own even by the people who usually prefer to study with a teacher.
What you need to learn programming on your own
In order to learn programming on your own, you need the following:
1. The desire to learn.
2. The time for learning. This is the most important prerequisite, since learning programming and programming itself require a lot of time. It’s not something that can be done in a few hours or days.
3. A computer to write your code on. If you’re reading this article, chances are you already have one, and it’s likely to be completely sufficient for programming. See also the article What Computer You Need for Learning Programming.
4. Access to the Internet to get all the information you need for your learning process (video tutorials, books, manuals, and useful advice from online communities of programmers). Since this article was published online, if you read it right now, then you likely have access to the World Wide Web too.
That’s pretty much it. As you can see, the list is quite short, and, aside from rather personal conditions like the desire to learn and time for it, it consists of regular things that almost everyone has or can afford to have. You don’t need big and expensive laboratories with special equipment or the fastest computers. You already have everything to start learning programming right now.
Five-minute travel back to ancient times
There were times when it was pretty difficult to learn programming on your own.
There was no abundance of popular video tutorials on the Internet, and access to the Internet itself back then was too slow and expensive. Computers also were slow and high-priced, and the majority of people didn’t have them at home.
Programming was very difficult both in learning and in practice. Everybody used paper books as the main source of knowledge, and the rare good ones were kept like a treasure.
It might sound like a story from a book about Ancient Rome history, but all of this was a normal state of things just some twenty or even fifteen years ago. The technical progress driven by computer technologies changed drastically not only everything outside of the computer world, but also the computer world itself. Actually, it’s been changed much more than anything around it.
A desktop computer or a laptop at home now is as common a thing as a TV. And everyone carries in their pockets smartphones — small computers that are many times faster than the best and the most expensive computers programmers dreamed of two decades ago. The Internet is everywhere, and it’s full of the best possible programming learning materials for every taste.
The programming process finally became “human-friendly” and doesn’t require hours of complex explanations before you can actually start writing your own code. It still requires some explanations, though, and they will take hours, but they are much easier to understand since lots of difficult programming concepts that used to be the key things in the past now are just “hidden under the hood”. You needn’t understand every single thing about how your computer works to be able to create even the big enterprise level applications (but it’s still useful to know it anyway).
There was definitely no better time to learn programming than right now.
Why to learn programming on your own
Whether you learn programming with a teacher or on your own, this process is always about 10% of reading or listening to some theory, and 90% of your sitting at a computer writing code.
The second part is much more important not only according to its size, but also by its contribution to your advance in terms of both pace of the learning process and the level of your skills and understanding of what programming really is and how things are done.
During those ninety percent of practice you’ll pretty often get stuck on something unknown. It will be something that wasn’t covered during the lecture or in the book, when you have no idea how to write the code you need at the moment. In such situations you must be able to fill those gaps in your knowledge by yourself, finding the documentation, tutorials, books, articles, or forum posts that will help you move forward.
So, learning on your own is an essential component of programming learning process. Nobody can just expect to go to even the best school or university, get there a comprehensive set of knowledge and skills with the help of the best teachers, and then completely forget about learning and only practicing. This is not how programming works.
Programming is just too immense and constantly evolving to be learned once and for all. You must be prepared to learn something new almost every single day even after your initial education is completed. So, the earlier you acquire the skill of learning programming on your own, the better.
After all, learning programming has always been about doing your homework: reading books and manuals, and writing code. Even if you take some traditional programming classes, classroom time cannot give more than just a relatively small amount of theory and practice. The rest must be done on your own anyway.
All you need to start learning programming is a screen, a voice, and books
The great thing about learning programming is that it’s all about you and your computer. It’s not chemistry or biology lessons where you need to use some special tools and samples.
Also, it’s not a carpentry training where you’ve got to see everything from different angles, feel the physical aspects of the process (how heavy instruments are and so on), and also practice with special tools and materials.
All you need to start learn programming is watching somebody writing code and explaining what and why she or he does, and then repeat it by yourself on your own regular desktop PC or laptop (or even on your smartphone). That’s how all programming lessons look like.
So, basically, you need to look at the screen where the code is being written and hear the voice of the person explaining what’s going on there. Sounds pretty much like a video tutorial in a form of screencast, right? That’s why in programming there’s no big difference between being taught in a classroom or learning on your own with a video course.
Also, neither the time spent in a classroom nor video tutorials can possibly cover all the aspects of programming, so either way you’ll spend some time reading books and documentation, which will additionally significantly deepen and extend your knowledge and skills.
How to learn programming on your own with all benefits of learning with a teacher, and even more
Let’s suppose you’re in the classroom listening to the teacher explaining something about programming. When the explanation is over, you do something on your computer. But you can do the same thing sitting at your computer at home.
Even more: you don’t need to be in the classroom to listen to the teacher in the first place. You can do this over the Internet, sitting in your room, in café, or wherever you want.
Actually, your teacher also doesn’t need to wait for you to start the lesson, whether it’s in the classroom or online, or to repeat the same things over and over again to every new student. They can just record all lectures as a video tutorial and distribute them via the Internet. You as a student can open any lecture you want at any time that suits you best. It’s very convenient both for your and your teacher.
So, simply having replaced the live lectures with the recorded ones, we still have pretty much all the benefits that a live teaching session might possibly give you, but it’s already learning on your own.
The only thing that is obviously lacking is the direct contact between a teacher and a student. It might seem like a dealbreaker at first, but actually it’s not.
Good video tutorials are comprehensive
The main reason why you’d want to have a possibility to communicate with your teacher is to ask some questions, since the lecture might be not comprehensive enough. But when the experienced teacher prepares a video tutorial, they already know how to put everything the best way possible to cover all the important issues that might pop up during the lecture.
The second reason to ask questions is to clarify some statements you might haven’t understood properly when the teacher said them. In this case video tutorials are even probably better than the live education session. As I wrote above, preparing video tutorials, a good teacher tries to do their best and explains everything as clear as possible. So, the initial incomprehension can be fixed by simply repeating the difficult part of the video tutorial until it gets clear.
Video tutorials give you, so to speak, an “undivided attention” of your teacher. You can pause the video, repeat it, stop it and resume it whenever you want, which is impossible during the lecture in a classroom.
What if you still have some questions
Of course, it’s still possible that the video tutorial really doesn’t have the answers to your questions. But that’s not a problem at all, since you have Google.
Open your web browser and type in exactly the same question as you’d ask your teacher. It’s about 100% chance that you’ll find the answer right away.
You’re just learning programming, so your question will be very typical. Therefore there will likely be plenty of highly detailed answers to it all over the Internet. And since programming is arguably the most well-covered topic on the Web, with the highly active and helpful worldwide community, you’ll likely find all the answers even if your questions are pretty specific and infrequent.
Also, check out the article How to Learn Programming with Stack Overflow if you want to learn more about using Internet to get answers to your questions during your programming learning process.
Who will check your exercises
Everything written above, hopefully, is pretty convincing that learning programming on your own is not harder than learning with a teacher, and it might be even more convenient even for those who usually don’t like to learn on their own.
But it was all about theory. What about practice? Who will check your exercises, all the code that you write during your learning process?
The answer is “your computer”. Your computer is the one that will check your code. It’s programming! If you make some mistake, your program will simply not work as expected. If it works well, it means you did everything right.
In many cases coding mistakes will be either obvious by their nature or self-explanatory. They will be obvious if you see that a computer does weird things. For example, if you’re creating a web page, and the main menu appears on the bottom of the page instead of its header where it’s supposed to be, then it’s clear that your code has some errors that must be fixed.
Often coding mistakes will be literally self-explanatory. When something goes wrong, a computer will tell it to you in plain English using a message like “you missed a semicolon in line 46”.
If none of this is the case but your code still fails to run, which occurs in programming once in a while, you have to inspect your program line by line and figure out by yourself where the problem lurks. This is a routine procedure in programming, so it should be considered important and inseparable part of the programming learning process, not some “emergency situation” that cannot be resolved without help from a teacher.
Nevertheless, as a last resort, you always have Google and numerous forums and special websites where programmers can ask their questions and get the best possible answers from other developers.
As for more general aspects, like a coding style or a structure of your application, just follow the examples and templates you see in video tutorials and books. Also, see the articles Your Code Must Look Tidy from Day One and Logic and Structure of Your Code Will Get Better with Time.
What’s missing?
So, if you decided to learn programming on your own, you need video tutorials instead of lectures in a classroom, books, a computer, the Internet, and the time and the desire to study.
But there’s still something missing. This “something” is your specific learning plan.
There are plenty of programming languages and tools, and even more tutorials and books. What language should you learn? What additional tools should you use? What video tutorials should you watch? What books should you read? Until now we talked about all of those “how’s”, but nothing has been said about “what’s”.
If you learn programming at school or university, you simply follow the learning plan this institution provides you with. When you learn programming on your own, you’ve got to compose such a plan by yourself.
And this is a really difficult task, since in order to be able to understand what exactly suits your needs best you already have to be an experience programmer.
That’s why many beginners studying on their own do this pretty much haphazardly and quite chaotically. Often this is the reason why they abandon the whole idea of learning programming after only a few days or weeks.
Thankfully, today creating your programming learning plan is not a very big problem. Many people are working as programmers around us, so it’s possible that at least one of your friends or acquaintances is one of them. Various communities on Reddit are also a good option to meet such people. Just ask such a person “what should I learn?”, and they will be glad to help you pick the right language, tools, video tutorials, and books.
Learning programming on your own is cheaper
Today programming industry is booming, so there are plenty of ways to learn what you need. If you want, you can learn programming completely for free.
You can learn programming on your own with free lectures on YouTube and free articles scattered all over the Internet. Or you can even take free basic programming classes offline, which are also sometimes available nowadays.
But the best education usually costs money, and programming is not an exception. If we’re talking about excellent video tutorials and books compared to great traditional programming classes, learning on your own is much cheaper.
In the first case in total you’ll spend several dozen to several hundred dollars on tutorials and books, while programming classes at some academy, school, or college will probably cost you several hundred to several thousand dollars, so the price gap can be huge. And it’s natural, since a school has to pay teachers and other employees for their time, pay rent and bills, buy computers, etc. Eventually it’s you who pays for all of these things.
I’m not trying to say that learning programming “the old way” is a bad choice — not at all. My point is that learning programming on your own today is definitely not a worse option. If you take into account all of its major advantages, like unlimited flexibility in terms of your schedule and high quality education for relatively low price, then it’s obvious that learning programming on your own it’s something you should at least give a try.