Well, this is a timely essay.
Yesterday I saw 51CTO recommend blog, Yaocoder friend wrote “who will reduce the programmer’s” hard “, it is a little feeling, so at that time conveniently left a message, said I also want to write a. Hehe, people in the same way.
Here comes the debt.
I think before we get into this topic, we should first discuss what “programmer’s hard work” means.
Programmer xin is not hard, this topic actually I think for many years, summary oneself this nearly 20 years of professional programmer career, I have to say, hard, also not hard, see how to see.
Say hard, so many years, overwork is to add miserably, be last year, I overwork return close to 1000 hours, hm, calculate calculate, 1000/8=125 days, ha ha, cow? A few weeks ago to xinjiang debugging, the customer’s daughter this year’s college entrance examination, how the result, the customer looked at our work scene, determined not to let his daughter learn computer, said this line is too hard.
The scene of the biggest customer, we only beside ha Ha ha. Ha ha.
In my opinion, many of my friends entered the profession of programmer, but did not do it for a long time, and then changed their profession. Some of them, if they are capable, gradually moved to project manager or manager, and entered the management level of the company. Some of them left the company and the industry to do other things. I also have to admit, so many years, I saw the programmer, walked away indeed many.
Why? I think it’s worth thinking about.
Say it’s not hard.
Think about it, every successful person in the industry, which is not working overtime every day? Who hasn’t had such a rough time in their career?
Who doesn’t?
So, I want to say the first topic, want to work, want to succeed, no matter do any industry, in fact, it is very hard, no hard, which come of return oh? Do you think so?
Of course, including yaocoder friends, I believe that most friends, from the beginning into the workplace, or not afraid of hardship, is ready for the hard thought.
This brings us to the second topic, what kind of hard work is really hard? I think it’s worth discussing.
I first throw a brick to attract jade, I said “no result of the most hard”, we say right?
One thing, we paid a lot of effort, finally done, there is always a return, may be the salary, bonus may be, may be the recognition, and so on, then, we also have a personal accomplishment, home to drink wine, and his wife and children blow, it how do I how great, wife, child, a revered ha ha, very enjoyable, the, It’s all payback.
My first conclusion: “paid, there is a return, in fact, it does not matter hard”, we say is not?
The most afraid is to pay, the last thing also do badly, this is really very depressed.
Are embarrassed to talk with people, there is bitter can only hold in his heart, there is a saying how to say? Men don’t cry, ha ha, my experience, not cry, is not willing to cry in front of people, we are interested in the words, two o ‘clock in the middle of the night up to the street around, those squatting in the street to drink beer, while drinking while crying, have an impression? That is day day too bitter, come out in the evening abreact, everybody understands.
So, my understanding, programmers want to think not hard, must be result-oriented, all in order to solve the problem for the principle, and do not stick to the program design technology, every day thinking about how to write a cool program out for people to see, get some cheap praise.
Solve the customer’s problem, make money back, no matter how hard it is, do not complain, solve for a long time, the problem is still, finally the customer discount, or refuse to pay, the previous hard work will be in vain, this is really bitter.
So my second topic: “Pragmatic programmers don’t work too hard!” Do you think so?
Third, let’s talk about technology. I have been writing programs for a long time, and I have a little experience in the hard work of programmers. In the development work, I think the two hardest points are bug and demand change.
Generally speaking, in most cases, the project manager will have enough time to organize the development effort, and if it goes smoothly as development, there will be almost no overtime. Think about it. Is that right?
The question is, which one is “smooth”? Ha ha.
Endless bugs. And let me just say that almost all overtime is caused by bugs. The problem belongs to the programmer himself.
What is a bug? A program that crashes or hangs is called a bug, a calculation error is called a bug, a UI design that is not beautiful is called a bug, or even a button that visits the wrong place is called a bug. In short, the customer’s demand is not satisfied, it is called a bug.
In many cases, demand change can also be regarded as a bug. There is a deviation between the plan we designed and the real needs of customers, which cannot meet the needs of customers and must be changed. In this sense, I think it is also a bug, a program-level bug.
This part, WHICH I think is the programmer’s own problem, can be changed.
A college student, fresh out of college, had no experience, and indeed, as I said, he was writing programs, and it must have been a mess, because he didn’t know what he was doing, what he was supposed to think, how he was supposed to think.
This is customer service experience, and this can’t, early must learn through wall, coming in for criticism and even scolded, injustice, just know how all the established way, slowly adjust their behavior, and the output, and then slowly, rookie veteran and things at first, the customer is satisfied, also can sit there drink a cup of tea, scold scold just to programmers, by the way, ha ha, Hey, guys, is that how you got here?
Notice oh, this time has begun to divide into two kinds of people, smart, love to learn, good at adjusting themselves, also make mistakes, but the mistake only once, next time remember, will not mess with, this kind of people slowly up, and finally will become old birds.
But there are also a lot of people, not good to say ah, teach the pig, the same mistake again and again, just do not change, said still do not listen to, in fact, most of the last programmers do not go down, are this kind of people.
Have you ever met this kind of person in your life? My question is, can they succeed in other industries other than programmers without changing their habits?
So my third conclusion: “good at learning programmers do not work hard”, do you agree?
In general software development companies, there are programming specifications, which I have written a lot of, I comment a word ah, “programming specifications is to find a way to trouble things!” Do you agree?
Obviously, I named a variable as A, which is quite good, but the project manager refused to change it to nHashTravelCount, which is such a long and smelly name. How many more words should I type? Don’t do it.
Obviously I can solve the problem with one function, but that heartless manager asked me to split it into three functions. It’s not a waste of my labor force. I don’t get paid for working overtime.
. .
Have you seen these ideas before? Have you seen it?
What was the end result?
Gradually, we find that the programmer who works a little harder is always the friendliest in teamwork, the least buggy in modules, and the most smooth in using the functions he provides.
On the contrary, those programmers who complain every day, who cooperate with him are full of anger, want to let him thank a few lines of code, more to provide a convenient interface, than kill him is uncomfortable, it is better to come by themselves.
Then slowly, we found that diligent programmer, work more and more heavy, the company manager also more and more respect him, give him a raise, promotion, finally, he unexpectedly became a project manager.
And the complaining programmer, more and more idle, have nothing to do, also have no friends, slowly marginalized, until one of the end of the year eliminated, he disappeared.
These things, you have encountered no? Ok, here’s my question, which programmer do you think works the hardest?
So, my fourth conclusion, “Hard programmers don’t work hard!” Do you think so?
Because they work hard, programmers can get more done than others, go home from work, stop playing when there is nothing to do, and summarize their work.
Well, I met this requirement somewhere, and I met it again today, so MAYBE I need to think of a formula, or summarize a public function, or even a public class, to be more abstract, and then when I meet this kind of requirement, I don’t need to write it down, just apply it.
Or, I’ll look around and see which open-source libraries have mature code in them, pull it up and evaluate it, and if it works, it counts as my own public module.
Soon, a decent abstract module comes out. Well, where can I put it?
Yaocoder friend already said, prepare a library.
In fact, I also do so, my 0bug project library is so come, but I this person temper strange, what all like to write by myself, so my library all come by myself.
It’s good to have a library, where you go, where you encounter problems, there are solutions.
A programmer, no matter how to go, no matter how to change jobs, basically still in a certain business circle, for example, I do data transmission, how to find development work and TCP ah, UDP ah, data communication ah, so MY library of this part of the code is the most.
The previous project has actually tested the code in the middle of the library and proved that it is correct. There are no bugs, at least when dealing with new application scenarios, there are few bugs.
The library code has been maintained for a long time, so I am familiar with the logic inside. Even if I encounter problems, it is easy to locate and quickly find bugs and solve them.
So there is a huge difference in productivity between programmers who have their own private libraries and those who don’t.
I was just asking a friend yesterday, I asked him to evaluate, last year we two wrote about 200,000 lines of code, made a commercial real-time database, do we have time to debug?
In fact, there is no, our task is too heavy, we do not have too much time to make mistakes, almost all the programs are required to write once, the compiler has passed, basically there is no bug, at most when the joint tuning to solve some mismatch problems, there is some specific scene of high-performance algorithms.
In fact, this is mainly my 0bug library at work.
We think about a large project, has not started to do, we first say, all memory leaks, thread problems, lock problems, 7*24 hours of memory fragmentation, large-scale data organization problems, are not a problem, we can directly develop on this basis, only concerned with business logic and product performance. Do you think it’s good to develop in this way?
A lot of small companies can’t do that.
Our last year’s hard work and the previous bug is really not much to do, mainly due to the lack of staff, heavy task, the development of a database, it has so many things to do, less one can not.
So, my fifth conclusion: “Good summarizers don’t work hard!” Do you agree?
Straggling along all this time, unless you’re close to yaocoder. Well, close up.
I have always had a point of view that the work of a programmer is not hard.
Find a good company, find a good leader, or find a good father, in the father opened the company to do programmers, certainly not hard.
In fact, these may make programmers not hard.
However, these are external causes, accidental, not universal truth.
What I want to say is, as a programmer, or a programmer, to have a sober person, hard is inevitable, do things will be very hard, but to treat it correctly, to constantly learn, summarize, adjust yourself, let yourself gradually become not so hard.
So I have such a topic, “do not rely on no, programmers themselves ease the pain!”
What do you think?
In this paper, from “XiaoGe blog” blog, please be sure to keep this from http://tonyxiaohome.blog.51cto.com/925273/899207