A “typical” programmer who is “not that typical”
When we first met, Zhu Gang gave the impression that he was very much in line with the public perception of the image of the programmer. Compared with communicating with machines, he would be more nervous with people; He is a bit of reserved, easy-going, always smiling, but will keep talking under the familiar. According to his own account, he is usually nerdy, "just stay at home with the hobby after work".
With a very "typical" programmer look, Zhu has a “not that typical” education and career path in his life.
Zhu's first eighteen years of life can be described as "step-by-step". From primary school to university, he spent all his years in Anyang. But as he started his college life, fate has pushed him to a new track.
"I was major in the Chinese language first, and then coincidentally transferred to the study of computer information management." Zhu confessed, "For an art student, learning computer is really some pain." Fortunately, Zhu quickly adapted to the change.
From art to science, from the Chinese language to computer, from the literary universe to the digital world, Zhu finally completed this "leap" that seemed quite unimaginable to outsiders. This "change of track" in his life had a profound impact on Zhu's mindsets and career choices.
Near the time of graduation, considering that the development space of computer-related jobs in Anyang is very limited, Zhu resolutely chose to not back to his hometown and became a "Beijing drifter". He said that he wanted to see the outside world and make a breakthrough.
Workplace "training": only the ability to develop is not enough
Zhu's first job was in a state-owned enterprise. Here, he completed a smooth "transformation" from a student to a professional. In the various "trials", he is still impressed with the one of "participating in the development of the national civilized city creation system, and making the system into a national promotion pilot". This is also one of the most fulfilling projects to date for him.
Zhu participated in the whole process of project creation and execution, from the demand research in the preparation stage to the operation upgrade after the project was launched. Despite the tight staffing and heavy workload, when the project was officially delivered, he made great progress in development skills, documentation and customer relationship maintenance, and his self-confidence and awareness as a technical person sprouted and grew rapidly afterwards.
In terms of codes, because this project almost covers all typical features of the codes of government and enterprise projects, it has a strong reference in the follow-up work. When it comes to documentation, it is like an efficient practical enlightenment for Zhu who has already known how to write documents that meet the requirements of government and enterprise projects, and what contents need to be described in a focused manner. He also learned something aboutcustomer relationship maintenance as he used to bury in programming work now began to step out of his comfort zone and gradually exercise the ability to communicate with customers.
In Zhu Gang's view, to become an excellent development engineer, it takes more than just excellent development ability. To him, the following three abilities are indispensable in the workplace on the way to "train and upgrade".
The first is the ability to learn. The career of a programmer requires continuous learning, only with the ability to learn in order to cope with the continuous development of technology.
The second is the ability to communicate. Many programmers are weak in communication which will inevitably become limitations if you head down to do technology and research only. Instead, if you are able to communicate with people to discuss, it will not only improves the efficiency of learning and mastering technology, but also make it easier to find your own technical deficiencies and errors.
Finally, the ability to resist stress. In recent years, the news of programmers who suffer depression, suicide, sudden death from overwork has been common. Learning to resist stress and find effective ways to release pressure will be an efficient way to work and live better.
The pain of transition: communication is the eternal proposition
Zhu did very well in his first career, but life itself is an adventure and the challenges never stop.
After entering his second company, Zhu's role changed a bit as he was not a pure technician but a team manager. The primary challenge he faced was shifts and changes in work focus.
"I spent most of my time on project management and customer contact, with little time for writing code. In the past, I only needed to do a good job on the codes I was responsible for, but after I engaged in team management, the proportion of code management has been very small. Mostly I was tasked with team personnel management, project progress control, maintenance of customer relations, as well as the preparation of project documentation."
This direct change makes Zhu face the transformation of the workplace role. When in the position of a manager and decision maker, there are more sectors to consider, and the importance and complexity of communication become more and more prominent.
What do you do as a team leader when the newcomers are more individualistic and sometimes not very obedient to project management?
Your leader does not understand the technology, but always pushes the progress, what to do as a subordinate?
Product managers put forward technically unachievable, or some too costly requirements, what to do as a programmer?
In this regard, Zhu elaborated his experience respectively.
"Newcomers are individualistic, and it is good to communicate more privately. And the problem of facing the leader to rush the progress is relatively tricky. As a subordinate, it is not appropriate to reflect the situation beyond the job grade, and can only use the actual development data and problems encountered to convince the leader. This situation especially needs to adjust the mentality, and my method is to leave the complaints on the way back to my own desk, not left to the team and work."
In the face of the game between product managers and programmers, Zhu believes that, "the relationship between developers and product managers is like tires and a steering wheel, with the product manager controlling the business direction of the project and the developer being responsible for how to move in this right direction”.
“In my experience, to solve this problem, firstly, both sides need to use the same terms and expression; secondly, the product manager must know whether the current technology stack used by the team or the company can accomplish all the business goals, and if not, how to solve it; finally, the developer must know the whole business and analyze the business and requirements with their own skills."
Industry Vision: Is .NET about to take off?
The battle between .NET and Java has a long history. As a .NET programmer with ten years of frontline development experience, how does Zhu Gang see it? If the hyping of .NET Core is a sign that .NET is about to take off?
For the current situation that many companies do not favor .NET, Zhu Gang believes that it can be attributed to three points: First, the cost, .NET IDE costs money, and before .NET Core appeared, .NET couldn't run on non-Windows systems without third-party tools, and Windows systems also required payment, which is a huge cost for small and medium-sized enterprises. The second is the ecosystem, before the emergence of .NET Core, the .NET ecosystem was almost all developed and maintained by Microsoft, and there was almost no growth within. The third is to follow the trend, at present, many giant companies on the market are developing in Java, and some people's view is still in the early stage of .NET.
“.NET and the community were not well built in the early days. Microsoft's implementation of the new .NET framework under this circumstance had brought a lot of refreshing things to developers, but there was still a big gap." says Zhu Gang. “If you look at the early versions of .NET, you'll see that some of the contents are actually imitating Java, but since version 4.5, .NET was almost on par with Java, and subsequent versions have introduced some even better features."
.NET Core has shown a "comeback" in recent years, and in Zhu Gang's opinion, this is inevitable. "First, it's the first cross-platform framework from Microsoft in the real sense. In addition, it incorporates many of the current popular technologies, and is lighter than most language development platforms."
He also noted, "It's important to note that Microsoft announced that it is open-sourcing .NET Core but not .NET. .NET Core and .NET used to be two parallel technology stacks, but both have been converging since .NET5 came out, and the community is growing. More and more enterprises, teams and individuals are launching components under the .NET Core platform. At the same time, because .NET Core has much smaller packaged applications than Java, and added more and more features for new technologies recent years, which makes .NET Core's audience gradually become wider."
For 2022, Zhu Gang predicts that it will be "the year when the .NET technology stack explodes".
Because of the launch of .NET6 and VS2022 64-bit IDE, there will be more and more companies using related technologies and more jobs. "For .NET programmers, 2022 will bring a market where supply is less than demand, and it feels like it will be much easier for .NET programmers to find jobs than other languages in 2022." In addition, with the normalization of epidemic prevention and control, more and more governments and enterprises will invest a lot of money in IT construction for telecommuting, citizen-friendly services and epidemic management. This will objectively lay the foundation for the explosion of the .NET technology stack.
5 self-improvement methods for new IT workers from 'Uncle Meow'
Finally, for technicians who just start out in the workplace, Zhu has shared several self-improvement experiences.
1. Keep the habit of learning, because only learning can guide us to grow the depth and breadth of knowledge. The so-called depth refers to the technology exploration cannot be shallow, but deeper internal understanding; the so-called breadth, meaning not only focus on the technology we use, but also pay more attention to other prospective technologies. In particular, do not blindly follow the trend, only carefully analyze whether they really are needed, in order to pass the career crisis safely and easily.
2. Build on your strengths and avoid your weaknesses, which means fully understanding yourself. Amplify and play your strengths, while analyzing and improving your weaknesses. No leaving alone shortcomings, but to be targeted and designed to make up.
3. See the wise and learn from them, and more contact with the excellent people. Those who are excellent tend to influence you and guide you in the right direction.
4. Summarize more and review more. Record the problems you encounter and the knowledge you learn on a daily basis, both as your own private notes and to share for everyone to learn together and gain new inspirations in the process.
5. Keep your body and mind healthy. This is also the most important point. One's spirit is often the key to determining the quality of life and work, and programmers, in particular, should know how to relieve stress and find suitable ways to maintain your health, such as fitness, developing a non-technical hobby, etc.
Journalist's Notes
"I can work as a technician until I'm 70!"
This is a statement that Zhu Gang mentioned very confidently in the interview. He is a very rare technical person who switched from art to science and becomes quite successful in the transition. Although not that typical, he has also experienced the difficulties faced by many programmers. On the way of being a "Beijing drifter", he was also troubled with the transition of his career, and is close to his ideal life in the process of figuring out.
Under the chilly winter of the Internet industry and continuous layoffs, many programmers are faced with a choice, to stop or change the track to start again. In this era full of variables, Zhu Gang seems extraordinarily optimistic and determined. He loves writing and sharing and he has published nearly 450 original articles since he started writing on the 51CTO blog while running his own public account on Wechat. He is not anxious about the future, because every word in his pen is a proof of his way forward: growth, record, output, feedback, word by word, step by step, solid and sure.