Let me tell you a few real stories:
I interviewed a developer last week and answered all the interview questions. We have mastered all the knowledge we need, but in the first test, this person was rejected by three of our interviewers. The reason is very simple. The answer provided by this interviewer is to solve the problem, but almost all of them are the most efficient solutions. In addition, from some interview questions, we can see that this person is often, take development work as a task, rather than as your own interests. Lack of passion, work is only to deal with errands, just because we have a few years of work experience, can answer our interview questions. Do not give up such a person.
In another story, the company has an development team in which there was such a thing: there were several obvious mistakes in an interface layout document. After being submitted to a developer, the developer still uses this error on the Web page without having to communicate with other related personnel.
Another story I heard during the interview: When I asked the interviewer why he left the previous company, an interviewer said that a development team of more than 10 people said this situation, after a year of busy work, the product has not yet been launched. The demand is still inspired by the boss and constantly being modified. Finally, he felt that he had lost passion for this project and the company, for this reason, he decided to look for new job opportunities.
For various reasons, programming is not a pleasure or sense of accomplishment, which is the root of the above three stories. This is my opinion.
Not only programs, programming system products are struggling in tar traps, but programmers are also struggling in tar traps. It is an illustration of the first chapter of the mythical man-month: mural of La Brea Tar Pits ). Every one of us, like an animal, is stuck in a tar pit and struggling.
Say you are trapped in a tar pit. Which one is bothering you. No one is upset. There will be a lot of distress at each stage, and there is still passion in distress. This is important.
Sometimes, I focus on the programmers around me and wonder why they have such behaviors. One of the results of the analysis is that the programmer's level difference is largely determined by whether he has the passion for programming.
For example, I have seen all of my new students, poor students, and good students. The good one is only half a year after graduation, I was pulled to work in the company (this person later resigned because he wanted to start his own business, but I admire the passion of this person ). However, I almost threw out some simple questions during the interview. You know, I have just graduated from an interview. Generally, I did not test the specific application, but focused on the simple knowledge of algorithms and data structures. These knowledge is mandatory in the university.
What may be the reason why programmers are passionate?
In the first chapter of the mythical man-month "Tar pitfall", we mentioned that the programming industry "satisfies our deep-seated creative desires and common feelings of pleasure for all" provides five types of fun:
- Create a happy transaction;
- The pleasure of developing something useful to others;
- Assembling movable and mutually meshing parts into something similar to a maze reflects the fascinating charm;
- The pleasure of continuous learning in the face of non-repetitive tasks;
- The pleasure of working on such an easy-to-control media-pure thinking activities-its existence, movement, and operation methods are totally different from physical objects;
From my perspective, there are two aspects:
- The passion caused by the results of programming, including the creation of transactions, and the creation of transactions are recognized by others.
- In the programming process, a line of code is assembled into a powerful product, and some technologies, algorithms, and models that you are paying attention to are introduced in assembly. This algorithm was designed by me and brought about a series of fun.
The results and processes of programming are often restricted by others. At this time, it will inevitably limit your pleasure in this aspect.
The larger the company, the larger the system, the more restrictions there are. In addition, the strict development specifications of Japanese companies are the best performance of these restrictions. Therefore, I will not go to Japanese companies. It is not recommended to go to Japanese companies. Some technical experts did not go to major enterprises. One possible reason is that he wants to keep his programming pleasure in a larger scope.
In addition, I know more about the Microsoft development process. Let me talk about my views on the fun of Microsoft development. After all, I am not at Microsoft and may not be right.
1. I think that in the Microsoft Development Team, testers have more fun in development than developers.
Developers need to have various documents from the product manager for restrictions. His greatest development pleasure may be the design of a variety of better algorithms to ensure that interface functions are available.
Testers need to use various tools (including self-developed scripts) to test various scenarios. For example, Shi fan, who I admire, has been designing a voice robot to test live meeting for a while to complete the test.
2. The sense of accomplishment of work products used by many people should be clearly understood and not detailed.
The above is a passion for individual programming. In many cases, the habits of people around you will affect your personal experience. This is the habit of the team, and the Environment is imperceptible to you.
How to keep the team passionate?
The following is my personal opinion and is not necessarily used in your environment.
1. Be systematic and set an example.
For example, the product development team of the csdn forum that I lead has a rule that every Thursday, a member of the group will introduce the technologies that I recently followed. I did not promote this system to the entire company because I think it is only one person's turn to promote the system to the entire company and distribute it to everyone on average in 4 or 5 months, I have no effect on personal learning at all.
2. work cannot be rotated at a constant pace.
You need to work overtime to relax. Note that it cannot always be a rhythm. If it is always a rhythm, it is easy for people to be lazy.
Summary:
Recently I have been reading the Mythical man-month. Many of the knowledge points are deeply touched and simple. If you let yourself know it slowly, you will not know when it will come out.
Back to the topic discussed in this article, how can we keep ourselves passionate? How to keep the team passionate? This is what every programmer and every project manager must consider. Only a passionate team can produce great works. To keep up with the times.