School is artificial

Saturday 25 April 2026

The real world is not like school.

One of the hard parts of moving from school to “the real world” is adjusting to all the ways that school is artificial. It’s different from the real world.

I’ve been thinking about this because of questions I see young learners commonly asking. Too often the questions are meaningless in the real world, and even if you could get answers, the answers would use useless.

How long does it take to learn Python? In school, learning is divided into discrete labelled chunks. A class called “Beginning Python” might last four months. Everyone in the class will be taught the same things at the same pace. The objectives are laid out by the teacher, and at the end you will get a grade.

Outside of school, learning happens as needed, at your own pace, guided by your own goals. Only you will know if you have learned enough, deeply enough, for what you want to do.

An answer will be useless to you anyway: will you feel bad if it’s taking you longer than them? Maybe they started from a different point than you did. Maybe they are learning different material, or to a finer degree of detail. Comparison is the thief of joy: learn what you need, the way you need to.

What does “learn Python” even mean? There’s no end to what might be included in a broad term like “Python”: there’s the language itself, the standard library, and the enormous ecosystem of third-party packages. Add to that the culture and conventions, and maybe even the community. Nobody knows all of it. It doesn’t stay still, Python keeps changing, growing, and expanding. You have to decide for yourself what’s important for you to learn. The point isn’t to finish it. Classes in school can be finished; topics in the real world cannot.

School gives you neatly labelled units with clear-cut criteria at the end. The real world doesn’t work that way.

No, but how long did it take you? It doesn’t matter. Everyone’s situation is different. In school, your classmates are very similar to you: you’ve been taking roughly the same classes with the same material all your life. Outside of school, everyone is much more different. My pace, my learning style, my needs are all different than yours. Comparing won’t help you learn.

How will I know when I am not a beginner? In school, classes have labels like beginner and advanced, or remedial and gifted. Outside of school, these labels are meaningless. Knowledge isn’t laid out conveniently in a straight line. For example: I’ve been using Python for 25 years, and know more about one particular dark corner of Python (sys.settrace) than almost anyone. At the same time, I know literally nothing about tkinter. Am I an expert or a beginner?

If someone could tell you whether you were a beginner or not, what would you do with the answer? In school, it tells you that you are ready to take the next course. But in the real world, no one needs the answer. What’s important is whether you understand the next concept, tool, or technique to make progress in whatever you’re building. Focus on your own goals and path, and keep moving forward. Labels are fake.

Why do I need to learn topic XYZ? School curricula don’t always match what you need to know. Your software engineering course may include theoretical math that computer scientists want to teach you, but that math may be very hard to use directly in the real world. Some of those concepts are good to know, some might be artifacts of mismatched goals.

Schools need to deliver their packaged pathways to many students. You only need to learn the things you need for your path. You won’t always know ahead of time what you’ll need. School can be a good way to learn things that many people like you learn. Once you are on your own, you get to (and have to) choose the topics yourself.

Is it still worthwhile to learn programming? Technology is moving very fast these days, especially because of the rise of AI in programming. Schools are much slower to adjust. A school’s course now may not match what employers want to see in four years. At today’s pace of change, it’s impossible to guess what employers will want to see in four years.

Learn how to learn, and stay flexible. Communication will always be key, so keep talking to people.

Choose a goal. Move toward it. Do what you need to do.

BTW, I see now that this post is very similar to a post from six years ago: How long did it take you to learn Python? I guess people are still asking, and I feel strongly about it!

Comments

Add a comment:

Ignore this:
Leave this empty:
Name is required. Either email or web are required. Email won't be displayed and I won't spam you. Your web site won't be indexed by search engines.
Don't put anything here:
Leave this empty:
Comment text is Markdown.