How can a programmer transition into a management role?

This article was transcribed by SimpRead. Original URL: www.bilibili.com

I officially submitted my resignation in February 2025, at which point I had around 780k followers.

Some people might compare me to the legendary sci-fi writer Liu Cixin, since we both started creating while working full-time at a state-owned enterprise (SOE). However, working at an SOE doesn’t necessarily mean having nothing to do or enjoying an easy life. In fact, especially within our telecom operator SOEs, many employees are extremely busy—overtime has even become the norm. So why is it that some people, like myself, can manage a relatively light workload with almost no overtime, while others have to work late every day? Honestly speaking, my technical abilities may not even be stronger than those who work overtime constantly. So what exactly is the difference?

An employee still working overtime at midnight in a state-owned enterprise

In this video—wait, this article—I’ll give you the answer!

First, let’s talk about why some people are constantly busy with work, while others appear to be “doing nothing.”

Let me first define what “doing work” actually means. To many employees, only frontline hands-on tasks count as real work—for example, a programmer writing code. Meanwhile, a project manager seems to write no code at all, yet sometimes gives orders to programmers, and in some cases, doesn’t even understand technology and makes seemingly unprofessional (from a technical standpoint) demands.

But in any moderately large company, management roles are essential. Who is best suited for such positions?

In my opinion, two key qualities define a good manager: resource coordination ability and emotional intelligence (EQ).

Resource coordination determines your ability to deliver results the boss wants. Bosses only care about outcomes and the cost required to achieve them—they don’t care how you get your employees to “work their hearts out” to make it happen. Completing a specific task assigned by your boss is rarely done alone; instead, it’s like building with LEGO blocks—you need to integrate various resources. Hardworking employees are naturally one of these crucial components. Does a company need diligent workers? Of course. But they aren’t irreplaceable core assets. When companies need to downsize or cut costs, the first to go are often high-salary senior employees who only “do work” but don’t manage people—regardless of how hardworking they are. They’re then replaced by lower-cost new hires. And this entire transition must be orchestrated by managers with strong resource integration skills.

So how do you develop resource coordination ability? Through networking.

How do you build a network? Some might think: flattery? Bootlicking? Sycophancy? Brown-nosing? Actually, none of that.

The essence of networking is resource exchange. In the adult world, mutual benefit is everything.

And how do you gain leverage in resource exchange? Through having capable, hardworking subordinates.

Why do most companies prohibit side hustles? Because they fear employees gaining bargaining power through external resource exchanges.

The most cost-effective employee, from a company’s perspective, is someone who diligently works and believes their value comes solely from effort. Giving them an “Outstanding Employee” award is one of the cheapest ways to motivate them.

The second essential skill for managers is emotional intelligence (EQ).

Managing a team is incredibly difficult. Some employees may experience emotional issues and need reassurance. Providing that support always comes at a cost. How can you calm employees down at the lowest possible cost? That requires great balance. Managing people efficiently and cheaply demands high EQ. Of course, some low-EQ managers resort to PUA tactics or deliberately create information asymmetry to control employees—but such approaches are clearly unsustainable.

Therefore, the so-called “non-working” managers actually face much greater job complexity than frontline workers doing specialized tasks. In return, they receive higher salaries and more stable positions.

After all that, how did I personally do it?

Step 1: Build a Strong Foundation

When I first joined, there was no way I’d be given a management role. I had to start from the bottom, doing hands-on work. But I quickly realized I needed to stand out. My way? Leveraging information asymmetry.

Ten years ago, a project had a special requirement that nobody else could solve. Thanks to my prior experience working at a game company, I managed to resolve it. I made sure to emphasize that I implemented it using C++, with highly complex functionality. Most of my colleagues only knew Java or Python—they couldn’t even read my code.

Later, I used this advantage to implement an algorithm for a major project—one that’s still in use today. Because C++ developers are now so rare, no one else can understand or modify it.

Using C++ brings three main benefits:

  1. Colleagues can’t read my code, allowing me to report one week of work as one month (not exaggerating).
  2. Once I claim ownership of a project component in C++, I become indispensable for its future maintenance (maybe a form of defensive programming?).
  3. Higher runtime efficiency—especially for complex algorithms, C++ still holds an edge over Java, although this advantage has largely been offset by improvements in server hardware performance.

However, C++’s development speed is orders of magnitude slower than Java. So naturally, I could justify extending my working hours.

Step 2: Promotion

After successfully delivering critical project features, I was promoted to project manager. At this point, I technically didn’t need to write code anymore. But I did something unusual: I continued managing people and writing code.

Why? Because people management wasn’t my strength yet—I still relied on coding to compensate.

As a project manager, I had to write proposals and secure projects. Around that time, blockchain was booming, so I forced blockchain integration into a project (even though it wasn’t strictly necessary), which doubled the project’s quoted price and helped it get approved. I took full responsibility for the blockchain module—allowing me to bill even more hours.

My dual strengths in management and niche C++ expertise gave me ample work flexibility—and thus, my side hustle began to take off!

In closing, unless you master cutting-edge, irreplaceable technical skills, frontline technical work alone won’t guarantee long-term security. It’s usually better to move toward management. Management roles provide access to client relationships—the true lifeline of any company—and represent the most irreplaceable positions. Sometimes, clients don’t just trust the company brand; they place more faith in a reliable contact person.

In my view, an employee’s importance isn’t measured by how hard they work, but by whether they possess irreplaceable elements—such as client resources or unique technical capabilities. However, pursuing the latter (technical excellence) is far harder, especially with AI and open-source tools advancing rapidly. For most logic-based programming tasks, it’s increasingly difficult to maintain irreplaceable technical skills. Often, outsourcing is simply much cheaper than in-house development.