When deciding how to learn Python (or programming in general)—whether through an instructor-led course or through self-study using books or videos—there are several factors to consider. The best choice depends on your personality, abilities, and budget.
Let’s start with the most obvious factor: cost. Courses are always more expensive than books or videos. This is mainly because you’re paying for the instructor’s time and, in the case of in-person classes, also for venue rental and other associated costs. If the training is organized by a company, part of their operational overhead is also factored into the price. Moreover, a course can only accommodate a limited number of students at a given time, so the total cost must be divided among fewer people, driving up the per-person fee. In contrast, a book or video can reach a much wider audience at the same time, allowing production and distribution costs to be spread out over many more buyers. As a result, the price per book or video tends to be significantly lower than that of a course.
However, price shouldn’t be the only consideration. This is where personality and individual capabilities come into play.
Self-studying with a book or video requires time, diligence, perseverance, and self-motivation. To put it simply: you need to push yourself and find the mental strength to regularly sit down and learn during the time you’ve set aside and to write and experiment with code on your own. Not everyone possesses these personality traits. This isn’t a flaw but simply a personal trait that should be acknowledged and taken into account. For people with this kind of personality, a course—where motivation, structure, and perseverance are supported by an external instructor—may be a better fit. And the positive power of a learning group should not be overlooked either.
The third important factor is how quickly you absorb information and how well you can concentrate. In a course, the pace is set by the instructor, not you. A good instructor will try to adjust to the group’s attention span and learning speed, but this can only be done to a limited extent. So if you need more time to fully process and understand what’s being taught, you may find yourself struggling to keep up, and you might end up feeling that the course fee was money well wasted. For such learners, a book or video that allows learning at their own pace would be more suitable. But what if they do not have the necessary self-discipline or motivation for self-studying?
In this situation, the ideal approach may be a combination of a course and a well-chosen textbook. If something isn’t clear during the class, the learner can refer to a relevant book at home and go over the material at their own pace. In this case, the book doesn’t replace the course but complements it. And because books often use different didactic approaches compared to instructors, the learning process can be deepened by encountering the same content in a new context, with different explanations and examples. In fact, reading ahead a little can be very helpful—it makes it easier to keep up with what’s being covered in class.
Another aspect worth considering is how good your memory is. What you hear during a course tends to fade over time. Course handouts are typically presentation slides, which by their nature don’t capture deeper details. This makes it harder to recall specifics months down the line. In such cases, a textbook can be invaluable—it’s always there on your physical or virtual shelf, ready to be consulted whenever needed.

Regardless of the form (course or book), the knowledge acquired during the learning process only becomes real understanding if you’re able to apply it. A highly recommended and effective approach is to come up with your own tasks or small mini-projects and make your own attempts to solve them. If you get stuck, you can turn to your course notes and/or the textbook you’ve been reading for ideas. At this stage, targeted internet searches—including AI-based tools—can also be helpful.
It’s important to always start with a task that’s simple—but not trivial—and matches your current level of knowledge. Solving such a task provides a sense of accomplishment and helps build motivation for tackling the next, slightly more complex challenge. By progressing step by step, you’re less likely to lose interest—and after a few weeks or months, you may be surprised at how far you’ve come from where you started.
An ideal resource for both self-study and as a supplement to a course is the e-book Python Knowledge Building Step by Step – From the Basics to the First Desktop Application. With this book, you’ll reach the point where you can independently develop a fully functional desktop application—complete with a graphical user interface.