Do you want to switch to software development? Programmer salaries make my mouth water, but good times must come to an end, right? It didn’t peak when I started, did it?

Such questions bore me to death. Elders worried about their children’s future, their friends, and friends on wechat zhihu, like migratory birds, ask questions at two times in a year: during the Spring Festival and before applying for college entrance exams. I answered an elder’s consultation in June. He said, Xiao Chen, what you said seems very reasonable. I should post an article so that I can forward it to my friends. I said hello uncle, just write. Results started, because of lazy reasons (mainly not in place red envelopes), has been put in today. I was looking through a bunch of unfinished articles in git repo recently, and this one popped up, craning its neck at me: Poke me, poke me, and here it is.

This article is a little long, so you can skip to the bottom of the article and read the conclusion — but I know you all have a conclusion that you feel insecure about and need some reassurance — so read on.

Tang Taizong said: take history as a mirror, you can know the prosperity. Let’s take a look back 70 years and see how the community of programmers has grown throughout history.

Social and economic change

Although the mother of the programmer was Ada, the daughter of Lord Byron, the first real programmer was Alan Turing. Not only did Alan Turing come up with the Turing machine, he also wrote code on the earliest computers. If the creation of the ENIAC in 1946 is considered the first year of the general-purpose computer, there were probably no more than 10 programmers.

Programmers were not yet a profession — ENIAC came out of the lab and produced computers that needed people to use, and the first generation of “programmers” were mostly budding mathematicians and scientists.

We’re all familiar with the blow-level programming language:

  • Fortran, the forerunner of scientific computing, was invented by mathematician John Backus in 1957.

  • LISP, the father of functional languages, was invented by John McCathy, a mathematician, in 1958;

  • The father of imperative languages, Algol, was invented by mathematician Friedrich L. Bauer (not your familiar Jack Bauer) in 1958;

So our major is Computer Science. It is not exaggerating at all. We are worthy of the title of Scientist and Engineer.

If you count the professors who studied computers in passing, as well as their students, the first generation of programmers swelled by the hundreds. Unless you went to a top university or worked for IBM, you had never even seen a computer. You had never even seen the Answer sheet for writing programs…

In 1964, IBM introduced the epochal System/360 mainframe with a starting price of USD 130K. Commercial companies bought and leased them because of their relative quality and price, and over the next few years, the S/360 took the United States by storm, selling tens of thousands of units and making it the most successful mainframe in history. The S/360 spawned a large number of second generation programmers. If there were five programmers for one computer, the demand for programmers skyrocketed to 100,000 this year.

Demand is strong, supply side does not give force, how to do? How to fill this unexpectedly large hole?

Ma’s father said that there are only two real reasons for employees leaving: the money is not given properly; The heart is wronged. In turn, if you want to go to the urn, put the money in place.

That’s my salary as an S/360 programmer at Google. You see, back in 1973, the market was offering a programmer with two or three years of experience anywhere from 10K to 18K. You know, the average salary in the United States is 6.5k during the same period. Driven by huge profits, talented people began to transform: first, high-quality mathematical talents, then excellent engineers in other fields, and even accountants, jumped into the vibrant blue sea of software development.

In 1970, Digital released the PDP-11, which cost around $10K, The inexpensive minicomputers quickly found a wider market — DEC sold 170,000 PDP-11s that year — and even elite high schools (such as Lakeside, where Mr Gates studied) began using them for teaching, as computers began to move beyond suits and ties for people in their 30s and 40s.

Then came something epochal:

  • Pascal was invented by Niklaus Wirth in 1970;

  • Unix was released by Ken Thompson and Dennis Ritchie in 1971 (the first version worked on the PDP-11);

  • C was invented by Dennis Richie in 1972 (the hardware design of the PDP-11 also influenced C’s design);

  • Smalltalk, the originator of object-oriented programming languages, was invented by Alan Key et al in 1972;

Unix and C, in particular, affected almost every programmer, and continue to do so today. Wirth, who invented Pascal, is an ivory tower professor, while Ken and Dennis are serious programmers, or software engineers.

Pdp-11 and Unix/C gave birth to a third generation of programmers. Back then, there was no distinction between front and back end programmers, or between system and application programmers, and a programmer could deal with hardware interrupts while still providing a good UI (command line interface). The market demand for programmers continues to expand like crazy.

Within a few years, the PC began to challenge the minicomputer status. When the Apple I was released in ’76 and the IBM PC was released in’ 81, the PC suddenly pushed the price of a computer to more than $1,000, 1/7 to 1/10 of a minicomputer, which was affordable to the middle class — and the development of computers exploded at an unimaginable speed. Our beloved Teacher Guy saw this historic moment, germinated to let every bedroom have a computer in the grand ambition.

Millions of Apple IIS alone were sold in the 1980s, not to mention tens of millions of IBM PCS and their clones.

Such a large incremental market requires a large number of programmers to fill the gaps in software. By 1990, before The release of Windows 95, Microsoft had 5,600 employees (mostly programmers) and $1.1 billion in revenue (see: https://www.thocp.net/companies/microsoft/microsoft_company.htm). The number of fourth-generation programmers in the 1980s is estimated to have ballooned into the millions.

The heavyweight languages of the 1980s were the two heirs to C:

  • Objective-c was invented by Tom Love and Brad Cox in 1984. It was born out of Smalltalk, but it wasn’t widely accepted in the market.

  • C++ was invented by Bjarne Stroustrup in 1983 and quickly accepted by the market.

90’s multimedia computer advent, pentium heart with Win95, personal computer truly into thousands of households. You don’t even have to try, it comes easy for You… “Good times, bad times gimme some of that” is a programmer’s inner monologue.

Win95 sold 40 million copies in its first year. And personal computers, in 1998, crossed the billions of dollars in annual sales.

Between 1999 and the turn of the millennium, Microsoft went from 31K employees to 39K in one year. That compares with 5.6k a decade ago. Guess what the fifth generation of programmers in the 1990s wanted? At least quadruple the level of the 1980s.

I’m not going to go into the details of the history that you’re familiar with. The rise of the Internet, the rise of social networking, the rise of mobile Internet. From 2007 to 2017, mobile Developer (iOS/ Android) alone grew from zero to 12 million (see: http://www.businessofapps.com/12-million-mobile-developers-worldwide-nearly-half-develop-android-first/).

What a terrible number! Programmers who join Mobile early will enjoy unmatched bonuses.

Today, there are tens of millions of programmers worldwide (Github has more than 21 million users). AI, Big Data, Crypto Currency and IoT unsurprisingly will be the new Big demand. Released in 2017, the United States department of labor (https://www.bls.gov/news.release/jolts.t01.htm#jolts_table1.f.3) in the IT industry sector, On average, there are 100K new jobs every month. If half of them are new, we can count them as 600K new jobs every year. If half of them are programmers, the new demand for IT programmers in the US is 300K a year. Considering that other industries do not belong to IT, such as Finance, Education & Health Service, etc., but also have a large number of programmers’ demands, and the total of all industries is calculated as 300K, then 600K of new demands are added in one year. The CS New grad in 2016 was less than 50K. The gap remains huge.

History tells us that the demand for programmers is not just strong overall, but that local variations around hotspots are even more impressive. When PDP-11 was sold, there might be a tenfold gap between the new demand for C/Unix programmers and Fortran; Windows era, Windows platform programmers on the new demand, relative to Unix, may be tens of times or even a hundred times the gap.

Another interesting feature is that due to the imbalance between supply and demand, the programmer profession has created a huge arbitrage space between different regions, such as China and the US. Smart companies will use this space to lower their spending, triggering a programmer premium (catfish effect) in the low-price area, driving up the overall average price of programmers. When I worked at Juniper in 2006, an American programmer made 3-4 times as much as a Chinese programmer. Today, it’s only about twice as much (thanks to the rapid growth of the Internet in China). India’s plethora of software-outsourcing firms, such as InfoSys, have turned programmer arbitrage into a profitable business.

In retrospect, it’s interesting to note that there has always been a strong demand for programmers and a severe shortage of reliable supply. For 70 years, the demand for programmers has doubled almost every five years on average. This means that the market is flooded with new programmers with less than five years of experience. What does that mean? In such a crazy market, the programmer profession itself is already commanding a much higher premium than other professions, and reliable, experienced programmers can easily multiply that premium by a factor of two. No, it’s supply and demand.

The extreme imbalance of supply and demand, the imbalance of local field (region) abnormal level, is the first secret of programmer’s high salary, but also the most important secret.

The second secret, which is often overlooked, is that software companies, especially Internet companies, have unfair Advantage that is beyond their reach: their financing costs are so low that they are so rogue that even the Federal Reserve is ashamed of themselves.

Like beauty in love with heroes, greedy money favours the inherently disruptive software industry. You’re unlikely to get a loan from a bank, let alone a venture capitalist, to open a clothing store. However, you sign up for deeperlearning.ai, put up a nice landing page, and the VC adrenaline starts to surge — if you’re not just lying, you have the ability to do something, and you’re actually doing something, then you have a great chance of landing a lot of money that others would really like to see. This is the state of Startup. What with the money? Of course, investing in Bitcoin is to grab more programmers from the market, then pull in new retention to fuel growth, refinance, hire more programmers, and so on, and then become unicorns, sell themselves, or die.

It’s startup. It’s a public company. Then let’s take a look at amazon, the most bizarre company in the universe. It has been listed for more than ten years without making a profit, but it has been making investors to boost its market dream rate by telling stories and depicting future blueprints for more than ten years. In terms of balance sheets, they’re both retail businesses — but over the past decade, Walmart has increased its revenue by $137 billion and its market value by $36 billion, while Amazon has increased its revenue by $121 billion and its market value by $462 billion, Equivalent to increase the two walmart near (source: https://www.youtube.com/watch?v=GWBjUsmO-Lw, 12 minutes). The so-called male is afraid of the wrong line of women afraid to marry the wrong lang, Walmart such phoenix male use all his skills to earn a penny to please the little sister that called Wall Street, the other people turned around and applied pink, light solution luo Sang on Amazon this playboy by financing borrowed Orchid boat.

Other giants, while not as outrageous as Amazon, are also at startup multiples. Their own high profits, combined with low financing costs, make them almost a downsizing assault on human resources: with sky-high price-to-earnings ratios, wads of cash in their left hands and stocks that are expected to rise in value in their right, they can have whomever they want.

The third secret is that big companies, fearful of the future, engage in an endless strategic scramble for talent to maintain their dominance. Even, sometimes the purpose of recruiting talents is to “go their own way, so that others have no way to go” — who still remember that around 2000 years ago, Huawei chartered almost all CS students in universities? Make ZTE (and others) cry?

As we all know, the high profits (or high expected profits) in the software industry almost always come from monopoly or oligopoly. The superior must keep his position, and the inferior always covets his position. Unlike most industries, peasant uprisings in software are easy to come by (which is why VCS love it) : a few thinking, acting heads can challenge the big guys. This perpetuates the fear that the giant is only 18 months away from bankruptcy.

These apex predators, the new giants, such as Google, were once insurgents. Coming out of a bloody battle with the old behemoth (e.g. Microsoft), the scars on the body are barely scabbed, and soon a new predator (e.g. facebook) is gasping for space. In order to maintain their position, the new giants recruit all the talents in the industry, and give potential chensheng and wu guangs, perhaps as Kings and princes, or tie up good farmland and wine, which can not only capture territory for themselves, but also effectively reduce the opportunities for them to rebel directly or join the new predators (e.g., facebook). And the latter, after a good life in a niche market, will not be willing to stay under people for a long time, with a better lure to the poaching giant. Just like in the Warring States period, raising scholars became popular. If you buy horses with money, I will buy horse bones with money. Those who benefit are naturally us, the “scholars”.

The open secret in Silicon Valley is the counter offer. A programmer who takes an offer from RECRUITER F and submits it to recruiter RECRUITER recruiter 99% of the time before receiving a counter offer, even if the recruiter has no interest in the offer.

Is any programmer really so indispensable? It seems not. For a giant like Google, if each team laid off 1/3 of its programmers, the business would not suffer and might even be boosted. However, who can not say that I abandoned the programmer will be the first domino? What’s more, Lao Tze so ye, Chinese food has been back into the small cut hu, this gas can swallow!

To sum up, three factors — strong demand, low financing costs and fear for the future — have driven up the price of software talent.

As MENTIONED above, we now usher in a new wave, the most eye-catching of which are AI, Big Data, Cryptocurrency, and IoT. It seems that the software industry’s strong demand for programmers continues. When will this wave stop? I don’t know. If I were to make a bold estimate, it would be like the first and second industrial revolutions that swallowed up the agricultural population: when almost all the labor force was working for the information industry (that doesn’t mean they were all programmers), and when almost all industries were redefined by software, the job of programmer became saturated.

While in the current software industry, although the size of programmers is huge enough, the whole is still within the scope of early majority, while locally, or even only in the position of innovators/early adopters:

So the good times for programmers are far from over. Also, if you’re a woman and interested in software development, consider this profession: the percentage of women in this profession is less than 8%, which is highly skewed. Women are more likely to excel in this direction.

How to Leverage one’s own value

All right, there you go. The next question was: What should I do? After all, programmers are very different from programmers individually — I don’t want to start out as part of a huge denominator.

First thing first, we should first have a clear position on ourselves. What do I want to do with my career? Doing this?

I often see programmers refer to themselves as: Java programmer, iOS engineer, Windows programmer, Spark engineer… This positioning is extremely inappropriate, without thinking clearly to go with the flow. Remember: you should never tie your career to one language, one product, one system. Never! Have you ever seen a doctor who calls himself a tetracycline doctor, or a Siemens spiral CT doctor?

A programming language will fade over time, a software product will have an inevitable life cycle, and one day they will end of life — S/360, Solaris, DOS, Fortran, Cobol, Delphi, etc. It’s all gone now — but the underlying ideas, the technology that they’re built on are the same. So we should position our careers around a certain technical direction. If you want security technology, build your core competencies around it. If you’re obsessed with distributed systems, try to work in this area. If you look closely at the job AD from 1973, large scale already appears. If you think about it, what technologies and directions have been evolving over the decades rather than just disappearing?

If you want to know your position, you can stride from one wave to another.

With positioning, the next important thing is to create their own Unfair Advantage.

The word “unfair advantage” is kind of obscene, kind of my happiness depends on your mediocrity. But that’s the nature of business. Google’s powerful earning power is built on its incomparable information processing power of “Organize the world’s information and make it universally accessible and useful” Unfair advantage. Nobody else does it, so he can generate profits from it more efficiently than he can print money.

What should programmers say about Unfair Advantage? I think there are a couple of directions:

  1. I’m a key player in an organization — someone with whom I can elevate a team, product, or service

  2. I can make an average contribution of 10X and only get 2x of the package

  3. I am a rare compound talent: among those who are good at code writing, I have the strongest ability in architecture; I have strong expression ability in people with strong structure ability; I have the best PUBLIC relations among people who are articulate, etc

To be a key player in an organization, you need to become an expert in a niche, for example, breaking through bottlenecks in existing systems to support traffic 10x; Another example is being able to reduce the user’s churn rate by 5%. Note that my descriptions here are scenariogenic, addressing a particular kind of problem, not a particular technology. There are many people who know a technology, but the key factor is to be able to use technology to solve real problems in business.

Programmer group is a creation group, and the creation group is characterized by outstanding individuals whose value is much higher than the average level. The average artist sells a painting for less than $500, but Picasso can fetch tens of millions of dollars. It is not difficult for a good programmer to perform 10 times better than the industry average. Notice the 10x performance here, not that I can write 1,000 lines of code for every 100 lines you write, but the additional value that I bring to the company in the same amount of work time.

How do you add value? The basic requirement is to work with your head and think about how things could be done better. Many programmers live like passive robots, bossy and none of my business. Such people cannot be expected to make additional contributions. On the contrary, in daily life, I should think more about existing problems, find excellent implementation schemes in the market, verify ROI in many ways, sell my ideas to stakeholders to gain recognition, and mobilize my own and surrounding resources to implement them. Such a person can stand out wherever he goes.

There is no more explanation for being a compound talent.

With Unfair Advantage, you’re already in the game. If you want to maximize your value, you need to watch your timing and change tracks. The worst thing programmers can do is to lock themselves into a cubicle and not hear what’s going on. Over the past 70 years, the software industry has come and gone with one wave after another. It takes only twenty years for a wave to start, rise, erupt, and then die out. To this, we should have fresh cognition. Instead of waiting for the track to reach its end, the lane will never be the same, and will have to change lanes at the right time instead of being first. That way, you’re the front-runner on a new track, the one everyone loves when demand explodes.

Note that switching tracks does not mean switching major skill directions. Switching skill directions too often prevents you from settling down and building your own moat. If you position yourself as an expert in security, then in the PC era you might focus on the operating system and application level, and in the Internet era, the network level. Your skills have evolved from memory management, interrupt/exception handling, scheduling, Sandboxing to anti-spoofing, anti-injection, Anomaly Detection and other technologies, but this does not deviate from your positioning, the existing accumulation and new knowledge mutually confirm, your ability layer upon layer, spiral upward.

A risk that cannot be ignored

The number one career risk for programmers is being made obsolete by technology.

In many industries, workers’ careers move from entry to exit, like an automated conveyor belt at an airport. When there are fewer people, you can move forward, or you can wait for a chance to take a quick lane and pass the muddle-headed guys in front of you, but that’s all you can do, not much faster; When there are many people, you can only wait patiently, what age to what position, the person in front of the field, you can not grab his position. It’s a slow, smooth ride, but at least it’s not that hard, and the chances of you getting kicked off the conveyor belt are slim unless something drastic happens.

Programmers are different. From the entrance to the exit, it’s like tomb Run: the monster is chasing you, you just have to keep running. You can harvest a lot of packages along the way, but if you slow down or fail to change lanes in time, you will be forced out or cleared out. It is usually decent to take the initiative to be eliminated — to be a manager, a legal person, to be a VC, to be a sales, to teach, to be a Zhuangdepu, etc., in short, to change the role wave, from now on and forget the previous role in the river’s lake; It is undignified to be liquidated — to be dumped by the employer of many years of service before he has earned enough money. In order to support the family, had to restart, back to the track. But it’s not so easy to get back — a man in his late twenties, slightly balding, with silver or black hair and a belly so thick that his toes can’t be seen from above, being interviewed by a man in his early twenties: Tell me, uncle, what value can you bring to us?

The second major career risk for programmers is that the Matthew effect is too pronounced, and sometimes a lower starting point means years and years of effort.

2017 computer graduates, I heard that the price of cabbage is 250,000. I believe it, but it’s probably the top 10% in Beijing, Shanghai, Guangzhou and Shenzhen. For the rest, the average income is at least around the waist. Five years later, the top 10%, on average, are worth $500,000 or $600,000, plus the stock, it’s gone; The rest, on average, may not reach the so-called “cabbage price” of their peers five years ago.

Here’s how the game works:

  • You study well, their time in the 985’s, and then four to six years at the university of learning and development, earnestly work for you after graduation, took the BAT etc. The offer of a line, work conscientiously, wage hikes, shares doubled, are also good people around, the leisure to read MBA, have to go abroad to accept a greater challenge, There are ctos at startups, and they’re so popular that you’re forced to keep learning to stay on top of things so that you don’t end up at the bottom. The market is full of olive branches thrown to you, easily move a nest or two or three percent, but you do not like;

  • You learn bad, just enough in a book, the university is a little waste, didn’t write a few lines of code, you find a job after graduation, sole wear out, is only a outsourcing companies received, worked day and night, but it is such a level, salary is very difficult to rise, the colleagues around the blur along, you point a little hard, just stand out in a crowd. If you want to jump, your resume will not lead to good results — you have sent your resume to several major companies you want, but it is like water on the lotus leaf, not even a trace.

That’s what this business is about: Start low, and the trajectory of life is much worse. You need to recognize this, and if you are unlucky enough to be the one with the low starting point and the low status quo, then redouble your efforts and find ways to prove that you are as good as everyone else. And consulting in the birth-and-destiny industry, there are plenty of opportunities to prove your credentials — at least, talk is cheap. Show me your code is the consensus.

The third career risk for programmers is that there are too many temptations to ruin their careers.

The lure here is mainly the lure of market opportunity. As I said, there is a huge local imbalance between supply and demand, so there is no shortage of big-dollar jobs. If you don’t have a good career plan and don’t clearly calculate the opportunity cost, it’s easy to be lured by high salary offers of one kind or another, and jump ship at inappropriate times and opportunities. When the new job isn’t as good as you thought it would be, or when the new company tanks, you have to lose more than that. That’s when finding the next job can be tricky. The market doesn’t recognize your value, and you’ve gone from thrift to luxury, and you don’t want to go back, so your next job is still a poorly thought-out choice. After a few bad choices in a row, your career is on the line.

I’ve seen people who’ve had eight jobs in five years. I’ve seen people who have no stable identity and drift back and forth in several directions. I’ve also seen resumes go backwards — I’ve seen fb-Google-MS, not to disparage MS, in silicon Valley, where the google-Fb-Airbnb career switch is more common. This kind of lack of clear thinking and random job-hopping just because of the current high and low package is the “Hurt Zhong Yong” of programmers.

The above. I hope it gets you thinking. Before you get deep in thought: Be generous with your praise.

IOS praise channel: