Have you experienced, or are you facing, any of the following awkward situations during your introduction to Python programming:

  • There are a lot of Python learning materials online, but still don’t know where to start
  • I bought a book and didn’t finish the first chapter for a long time
  • At first I could write a few lines of code, then suddenly I couldn’t read them
  • I’ve watched some Python tutorials and videos, and I seem to understand, but I still can’t write my own code
  • I learned Python many times and returned it within two months


For those who are new to Python programming, especially those who are self-taught, too many problems can become obstacles on your way to Python programming. If you are not careful, you may go from getting started to giving up.

You need a clear study goal

A lot of people say, WELL, I have a goal, which is to learn Python and get a high-paying programmer job. This is a goal, but not a specific, concrete, actionable learning goal. This is like saying “I want to be happy” or “I want to do what I want to do” without any specific criteria. It gives no guidance to your actions.

Do you want to learn how to program so you can write an automatic script to grab tickets and coupons, or do you want to automate a lot of paperwork? Is it to verify that your trading strategy on your stock is sound, or to create a website to promote your brand? If your goal is to get a job, do you want to develop games or desktop software, data processing or websites, front-end or back-end? Programming is a very broad concept, and knowing your purpose will give you direction and consistency in your learning.

Maybe a lot of people think, I don’t know, just want to learn more skills, it will be good after all. And I haven’t even learned yet. How do I know what to do next? This is an understandable starting point, but I still recommend that you set a small goal for yourself. Even if you use your imagination to think of a need, that’s good. Otherwise, it’s hard to stay in a state of learning first and then again.

You don’t have to worry about setting the wrong goal and getting sidetracked. It’s better than having no goal at all. It’s just a milestone in the beginning of your learning process, and once you’re done with it, there’s more to choose from.

First, establish a general perception

There is a saying in programming development:

Premature optimization is the root of all evil.


It also works in programming. A lot of people will pursue some sort of one-step ultimate path, which manifests itself as:

  • Hope others recommend a set of best tutorial
  • Theory before practice
  • Drill into the details


It seems that there is nothing wrong with it. It is consistent with the educational philosophy to set a clear course, lay a good foundation and follow the steps. It’s almost as if you’re determined to optimize your code, and if I say you’re doing it wrong, it looks like I have a problem.

But things are timed, the right thing to do at the wrong time, will lead to the wrong results. Too early into local details, the pursuit of theoretical basis, it is easy to make beginners confused, so that at a certain point, stuck, unable to continue learning. Easy to understand and professional can be difficult to reconcile. Many tutorials are good because they are well-structured, but is that right for you?

For early learners, especially self-learners who are not professional enough to start Python programming, it is more reasonable to start without understanding.


To borrow this picture from the web, programming is very similar. If the points on the graph are concepts and techniques related to programming, the process of learning is like drawing this graph: you learn about these skill points and connect them.

One way to draw is to draw the details of one point, and then draw a precise line from that point to the next, one by one. It’s a seemingly safe approach, but it’s inefficient and error-prone. It makes more sense to first determine the general distribution of points on the paper, draw their Outlines, then draw the points at key locations, connect the key points, and then gradually refine the branches and details.

Learning to program Python is a circuitous, iterative process, not a one-way street to the end.

When you first get into programming, you don’t need to care about the details at all. You should have an intuitive impression of what technology can do and feel the joy of programming. This goes hand in hand with the previous point: Once you have a goal, you can determine what knowledge and learning path you need to achieve it. And when you have a general understanding of programming, you will know more about what you can do after learning programming, and make your goals clearer.

Choose the right starting point and route

With a clear goal in mind and an overall perception established, the next thing is natural: choose a starting point that works for you, start your learning in the direction that leads to your goal, and light up and connect the dots on the skill map. Otherwise, blindly starting from the wrong place, such as choosing a high starting point of the book, or starting to fiddle with a framework, will be less effective, inefficient, and even lead to giving up. That is why haste makes waste.

If you do the above, and have some basic holistic understanding, you’ll see how ridiculous the “21 days to master XX” and “2 months to be a data analyst” hype is.

The above three points, in layman’s terms, you need to know:

  1. Learn why
  2. What to learn
  3. From which to learn


If you look at any of the most popular mobile games out there right now, you’ll find a similar tutorial:

  1. Explain the winning conditions of the game to you and guide you to a victory (clear goals)
  2. Let you experience a set of high level high configuration lineup (overall cognition)
  3. Guide you through the basics of the game and the initial upgrades (starting points and routes)


These games are carefully designed to be addictive. The same is true for learning, let yourself “addicted” as soon as possible, in order to go further.

The above is just the beginning of learning Python programming. We will continue to share our experience of learning Python programming in the future, and welcome to leave comments.