1. Self Introduction
Born in 1982. I'm an old hand, part of what might be considered the second generation of programmers. Started with C++Builder and Delphi (which many might not have even heard of). Spent over a year playing with DOS, UCDOS, and Pctools. I think I qualify as an old-timer.
My personal mottos:
If someone teaches you a technology, or there is already a book on it, then that technology is already outdated.
If one day you encounter a problem and can't find an answer anywhere, you should be happy, because you're on the cutting edge.
These two insights come from nearly 20 years of programming experience (I started writing code at 16). This is what I've witnessed in the IT industry.
2. Current State of the IT Industry
Below are some very superficial thoughts on the IT industry today. My education is not high — I have an associate degree (self-study). Feel free to throw bricks if you disagree.
From the IT boom in the 1990s to now, I feel the industry has become increasingly mature. The IT world, or society as a whole, is like a sponge. When you compress it from 100% to 70%, there are many gaps and opportunities. But when you squeeze it from 30% down to 10%, the gaps shrink. This is like entrepreneurial opportunities — fewer and fewer.
Today, the rules of the game in our society are more detailed. You just need to follow the rules, and society will take care of everything. But making a breakthrough is extremely difficult.
Junior colleagues at school seem very confused. There are all kinds of ways to make money: live streaming, delivery services... all completely unrelated to what they studied. They feel that what they learned in college is totally disconnected from society, and they don't know how to face the real world.
3. Personal Reflections
Let's talk about my own insights:
3.1. What Are Role Models For?
As children, our strong fathers are role models. As we grow up, we have various role models — maybe a teacher, maybe an elder.
Are role models there to be admired? I think a role model is like a benchmark, meant to be surpassed (at least in IT, because IT develops so fast).
In school, surpassing your teacher is, in my opinion, a basic graduation requirement for IT students. If you can't even surpass your teacher by graduation, you're starting off a bit slow.
3.2. The First Job Is Very Important.
Stick to your specialty. Don't abandon your professional knowledge because of difficulties. Your later jobs will inevitably bear the imprint of your first one. Even if the first job is very tough, persevere.
3.3. Accumulating Technical Experience
This is a longer topic. IT, in essence, serves various industries. At the end of the day, it's a service industry — using IT to accelerate other fields. Therefore, pure IT doesn't exist. Fields like mechanical design, architectural design... almost every industry needs IT. For those who study pure IT, it's a bit tragic because besides learning IT knowledge, you also need to learn other professional domains — since the software you write serves those fields. Essentially, you need to learn at least two majors.
However, except for industries with special IT requirements, over 90% of applications fall under management — various management processes and business workflows. In such domains, understanding business processes is much more important than technical skill. (For example, building a management system: as long as you have someone familiar with the business flow, you can train a newcomer in a few months and they can start coding.) This is where the so-called "35-year-old crisis" emerges — because by 35, you can't work overtime as much as the young, and your salary is higher.
Computers were not invented in our country; you could say our software industry started from the middle of the mountain. Many business-level programmers today don't understand the underlying technology. Because we never grasped the low-level foundations of computers, when we try to push forward, it's like stepping on cotton — no leverage.
4. Entrepreneurship Sharing
The following is for those who want to start a business as an individual in the IT world (only my opinion): Focus on underlying technology. Only by understanding the low level can you achieve real breakthroughs.
Starting a business in IT is really hard these days. If you go into business, you only have experience in business processes, but no connections or personal network. Plus, after years of technical work, you're not good at interpersonal communication.
Energy and family constraints. They say women hold up half the sky. But for a man on the entrepreneurial path, without a solid rear base, failure can come in an instant.
Entrepreneurship is betting 3 years of your life against 30 years. If you succeed, you gain 30 years of freedom. If you fail, you're still you.
Before age 35 (and not yet married), I believe you have 2-3 opportunities to start a business. If you miss them, it's very hard to try again after marriage.
When you feel confused about programming, remember to step away from fixed programming concepts and look for answers in real life. This sentence might be hard to understand, but the explanation below might clarify things for many beginners.
No matter the language, its essence is a description of our real life (books call it "abstraction," but I think "description" is more accurate). When you think from the perspective of the person who invented a programming language — "I want to invent something that can describe the world" — many languages have a base class called OBJECT, which translates to "object." All objects have properties (names). Take our world: you can think of the world as a computer, memory as air. Humans (the definition of human) can walk, use fire, have gender — this is the basic definition, but it's just a definition, virtual, occupying no "air." It takes instantiation (inheritance) to actually occupy air. Then it becomes a specific person. People have methods (walk, run, jump) and events (feel pain, laugh). Skills can be translated as interfaces — e.g., if a person implements the "driving" interface, that person can drive. Some things are private and can only be used by you (your hands, your feet). Some are protected (like your money, hehe). In fact, every concept in programming has a counterpart in the real world, because the people who invented these things were describing our real world. So when your mind gets confused, go find the answer in real life.
- In the age of information overload, I didn't quite understand that phrase before. Later I realized: there is so much knowledge now. Any major or subject can take a lifetime to learn. We used to say opportunity favors the prepared mind, and the human brain is limitless. But now, preparation comes at a cost (time and energy). Is the brain truly limitless? Do you remember who you celebrated your last birthday with and what you ate? For us born in the 80s, basically everyone spent about 10 years learning English, but how many actually use it in real life? They say it's better to have learned than not, but there's a cost: if you spend 10 years learning something that yields only very little value, you could have learned much more in those 10 years. There's a famous story online: an old woman goes to the US for a few months and comes back speaking much better oral English than us. If you learn a skill and never use it, and say you're just preparing for the future, then in this age you'll never have enough lifetimes to prepare. Perhaps I'm a pragmatist. I advocate that when learning programming, first have a solid foundation in theory, then learn the parts you actually need. There's no need to learn everything — you can't finish it. Or the cost of learning is too high — learn with problems in mind.
5. A Final Word
Many people today start programming directly with object-oriented concepts. My recommendation: QBasic. From its name, it's not hard to understand — it's the basis.