Transcription
Very often, in the comments under my videos, people ask questions about what I do to learn programming as quickly and effectively as possible. Many do not understand how one can memorize such a large amount of information, study new technologies, and still find various top-notch tips while reading comments on my videos.
I have noticed that sometimes people use methods of learning programming that are more likely to discourage them than to yield any real results. The issue is not that programming is too difficult or that you need to be a genius with an excellent memory. The key is to use the right learning methods that can genuinely provide good results.
Over the past 4 or 5 years of studying programming, I have discovered effective methods that significantly boost your development process. These strategies allow you to avoid all the pitfalls in learning programming, bypass all the mistakes, and other factors that may slow you down.
The three methods I will discuss will automatically help you avoid errors in your studies and improve your development process in absolutely any field. For example, I actively apply these methods in completely different areas. You can use them for learning English, studying sports topics, understanding online security, various everyday matters, and so on. This is a completely universal approach.
So, what are these methods? Let's start with the basics. On my journey, I encountered many people who studied programming without knowing why they were doing it. When I was in college, about 90% of students had no idea why they were learning programming or how they would apply it.
In various chats, I often met people who learned C++ just for fun. They didn’t know why they needed C++ specifically, rather than C#, Python, JavaScript, and so on. In fact, they were learning this language just to say in chats that they knew C++. But I could just as easily boast that I know a language that someone spoke 2,000 years ago, which has long since died out.
I am not saying that C++ is bad; I am trying to illustrate the futility of learning any skill if you do not plan to apply it. Why should I know a language that someone spoke 2,000 years ago if I am not going to use it? Why should I learn C++ just for fun if I do not plan to monetize it?
So, the first conclusion we draw is that you need to have a complete understanding of why you are learning this and what result you want to achieve. When I started learning programming, I didn’t learn it just for the sake of learning. I had a clear goal: I wanted to create accessible applications. I understood that once I learned to program, I could automate routine tasks, which would significantly increase my income and quality of life.
In the future, I could write programs on demand and earn money from that. I had a clear goal. As I learned each new keyword, I realized that a new skill was opening up before me. If I learned to work with files, I could receive and process files both in my automation software and in the software from clients who would send me specifications.
The problem with people is that they do not know what they want. They do not know if they want to develop mobile applications, desktop applications, or even create websites. Therefore, first and foremost, you need to clearly determine what you want, and then move on to method number two.
The second method is based on my mistake, which I later turned into a great way to learn. The mistake was that I studied everything indiscriminately. Recently, I started reading a book called "Essentialism: The Disciplined Pursuit of Less." If I had known this information earlier, I would have saved a lot of time.
The idea of the method is to eliminate everything unnecessary as much as possible. If you are working with accessible applications, study only the technologies that you need right now or will need very soon. You do not need to learn Jenkins just to know how it works, thinking it might come in handy someday. If you are not sure that you will need it in the next few months, feel free to remove it from your list and better study what you really need right now.
My mistake was that I studied everything indiscriminately. There were times when I didn’t even understand why I needed a particular language or framework, but I studied them anyway. In 70% of cases, I never used them again. However, there is a small exception: I noticed that when we have motivation to learn a particular technology, it is learned much easier and faster.
So now I do this: if, for example, I need to learn Docker soon, but I have a huge motivation to learn Git, I will check whether it is beneficial to learn what I am motivated to learn. If Git is not needed right now, but I understand that it will be needed in a couple of months, I will learn it driven by my motivation.
I might feel lazy about learning Docker, even though it is very important right now, but I have a huge motivation for Git. If that’s the case, I will use my interest to significantly boost my knowledge in the area I am interested in. But at the same time, I will gradually study Docker.
I realized this when I spent a long time reading books on personal development. After a while, I got so tired of it that I decided to switch topics. When I did that, I found that my speed of learning and interest in the material increased dramatically.
If in the field of development that had already bored me, I could read about 10 pages, when I switched topics, I started reading over 100 pages a day. This continued until that topic also bored me. So, use your interest and motivation with the right approach.
Moreover, there are times when you get tired of reading books. In such cases, I switch to courses or YouTube videos. If I get tired of courses, I return to books.
The third method is about your approach to applying the knowledge you have gained. In my case, when I studied the material, I immediately used it to write programs and fulfill orders. There are even scientific studies that show that you can learn a foreign language, like English, or any skill much faster if you start working in that field right away, rather than endlessly discussing theories.
That’s why I don’t like various universities and similar institutions. They provide too much theory and fluff that, in 90% of cases, will never be applied to real tasks. For this method to work, you need to understand why you are studying programming. This is the first point from this video. Only by understanding why you are learning it and how you will apply it can you transition from theory to practice.
For example, I can say from my own experience and from a large number of people that a very effective way to learn programming is to start working on your projects while simultaneously studying the language through books, courses, and so on.
Some people think they just need to read programming books, and one day they will have an epiphany and write their first program from scratch. But that’s not how it works. You need to start working on projects without knowing programming at all and learn the field along the way.
On my channel, there is a video about which books to read for beginners. I will leave those videos in the description; they are a good starting point for your project or language study.
So, study programming actively, not passively. Don’t think that if you play Python lessons in the background while you sleep, you will learn the language. That’s all nonsense because without your active participation, without creating short useful notes, without discussing the material you’ve learned, and without applying your knowledge, you will not be able to progress.
This is a fact. You can endlessly study books on how to walk, learn the theory of how to position your feet correctly, and so on. You can just start trying it out. And this practice should be supplemented with books, courses, and so on, but not the other way around.
The scheme of first learning and then applying does not work well. Either learn and apply immediately, or work on a project and supplement it with new knowledge. But you don’t need to read an entire book and only then do something.
By the way, if you are specifically studying Python, I created my own course on Python that contains complete step-by-step material from beginner to advanced level. We start from scratch and finish with metaclasses, design principles, design patterns, and anti-patterns. Knowing this material, you will be able to create good, maintainable applications.
If I were to choose a course, I would choose this one because I study books on this topic, personal articles, documentation, and other materials, gathering all these tips and curated content into one cohesive course where, in just a few minutes, you cover what would otherwise take a long time to learn.
The course is available forever, and you can take it at any time. Additionally, all future content that I will add to the course will also be provided for free. Along with this, you will receive access to a private channel where I publish other mini-courses, videos for the private channel, developer tools, and other materials that will enhance your skills as a specialist.
There is also a chat where you can communicate and discuss various technologies. The Python course contains short videos for each technology, code examples, and at the end of each chapter, there is a homework assignment that I personally check. If you do not understand the material, I will answer your questions and provide additional examples tailored to your situation.
So, leave a request on the course website while there is a special discount available.
The final bonus scheme, which I specifically did not mention, will only be revealed to those who watch the video until the end.
When I was still in college, I slept about 2 to 4 hours a day. I could go days without sleep, and modern scientific research shows why this is bad. Unfortunately, I didn’t know that back then. I worked and studied a lot of information because I had a goal to become a programmer.
But the thing is, by reducing sleep from 8 hours to 4, you kill about 50% of the information you have learned. Although you have more time, the benefit is minimal.
In a second study, which I will also add to the description, it states that students with poor academic performance often had sleep disturbances. Personally, I have noticed this in myself and in others who also slept poorly. If you have had such experiences or know similar examples where poor sleep affected results, please share them in the comments.
In conclusion, to develop much faster than others, you need to clearly know where you are going and why you are doing it. If you know why you are learning programming, you will never give up. You can only think about quitting if you are studying a skill that is absolutely meaningless to you.
Next, you need to choose your learning goals correctly. While your competitor Vasily, the hacker, is learning libraries just for fun without knowing why, you are studying only those libraries that you need for a job vacancy or for developing your project.
Here, I would recommend watching a few more videos and recordings of this video because they delve deeper into this topic.
And the final point is sleep. Now I sleep 8 hours and develop faster than I did before. In fact, even now, I go to bed at 11 PM, which is also very important.
Ideally, go to bed by 11:00 PM, sleep exactly 8 hours, and always wake up at the same time. If you can do all this, or rather, when you can, the results will be simply outstanding.