Three major dilemmas of a programmer's career: Tiger, Bill, and himself
Source: Skynet
By chance, I saw a story on the Internet: John and Bill went on an adventure in the mountains. Suddenly they found a tiger looking at them affectionately, and John was about to run, bill quickly took out a pair of shoes from his backpack and put them on his feet, john was angry and said to him, "You can't run without a tiger in any shoes." Bill glanced at him with sympathy and replied, "Why should I compare with a tiger, I only need to run you."
When I laugh, I cannot help but remember John's situation. Is it a bit like a Chinese programmer? I personally used to divide software practitioners into four categories: Junior programmers, Senior programmers, system analysts, and project managers. I divided the standards of excellent programmers into professional habits and personal abilities, professional habits include document writing habits, standardized and standardized coding habits, software testing habits, modular development habits, etc. Personal abilities include teamwork ability, requirement understanding ability, learning and innovation ability. The feeling of hundreds of programmers I have come into contact with is that, unless the naturally appropriate talents can become the top experts in the industry, the vast majority of programmers can only be classified as "mediocre" according to the above standards, so our discussion here is mainly based on the majority of "mediocre" programmers.
Whether John can survive in the story is related to three problems: Tiger, Bill, and himself. The dilemma of Chinese programmers also comes from three aspects.
One of the dilemmas: the threat of tigers. There are quite a few tigers for programmers. For example, the boss seems to be the natural enemy of programmers (except for programmers who are bosses themselves ), it seems that programmers complain about what they don't know about the technology, and what they get is not the same as what they pay. This problem cannot be solved. I will not discuss it in detail here.
Dilemma 2: Bill's competition. Generally, programmers in China eat "Youth meals", and the golden age of most programmers is 24 ~ 28 years old. By the age of about 30, a group of young programmers will bring you great competition pressure. First of all, due to the rapid development of the software industry, many of the things I have learned are gradually upgraded. However, due to the long-term work of many programmers, the efficiency of learning new knowledge will inevitably decline. Second, after several years of work, the salary requirement is naturally high, while the salary of young programmers is low and quick to work, of course, it will become the boss's first choice; third, at the age of 30, you have almost no courage to start from scratch to support the family's burden of life. The old saying in China is "the waves of the Yangtze River, the old generation of new people for old people". This historical rule is especially evident and cruel in the software development industry. Many programmers must face the result of salary reduction and unemployment.
Dilemma 3: Self strength. We all know that the most difficult thing to overcome is ourselves, so we are the biggest obstacle that programmers need to surpass ourselves. Most programmers regard system analysts and project managers as their career goals. However, the achievement of these goals requires individual qualities, market opportunities, and other conditions, too many programmers have spent years in the status of fail or fail. System analysts require the following qualities: customer requirement analysis, system architecture and design, module decomposition design, project process control, and project risk assessment, for project managers, they are more focused on project management capabilities, such as team organization, communication and coordination, problem-solving analysis, and good professional ethics, these qualities and abilities often depend on the individual learning and hard work of programmers. Seeing that more and more programmers are learning project management courses, they are a little worried, because the current project management training can only stay at the level of theory and research, and there is no quality training, there is no actual software development project case, and the learning result is far from the expected results.