What I mean by "a paradox about the pain of programmers" is described below:
"Good programmers spend most of their time doing things they hate and use techniques and tools they hate." ”
This is counter-intuitive, and it seems like a paradox; you think bad programmers spend their time on bad technology, and good programmers spend their time on cutting-edge technology. Isn't it?
I found this paradox in my own experience, until later I understood why it was so.
What kind of work will make programmers loathe?
This is not news to some experienced programmers, but I'm going to explain this to those who are not programmers:
A good programmer hates doing things that could have been done automatically. If a programmer is instructed to do something that a machine (usually a computer) can do automatically, he will be very annoyed. The programmer's ambition is to get the machines to do as many tasks as possible for them, and only the rest of the machines will not be able to do the work themselves.
This is a very useful instinct that a programmer should have.
An example of a simple job that needs to be done automatically: Imagine a programmer browsing a file with 1000 lines of code. He wanted to find the No. 791 line because the line was considered problematic and needed to be modified. But the editor now displays to line 30th. Most people simply drag the scroll bar to the line they want. But a good programmer is not going to do such a thing. They use an editor that enables them to jump directly to a specific line. For example, in the editor I use, "Ctrl-l-> 791-> Enter" can do such a thing.
The example is simple; there are many more complex examples.
The reason that good programmers hate doing repetitive work is that these little things interrupt the programmer's mind. Thought is a fragile thing; it takes a long time to pick it up once the thoughts are interrupted. If you are disturbed by this physical work every 5 minutes, your thoughts will vanish.
In daily work, programmers need to deal with a variety of technical work, using a variety of tools. Programmers prefer a job with a relatively small amount of "manual labor". Programmers like technology and tools that require little manual labor (python,django,git, etc.), and dislike techniques and tools that require a lot of manual labor. (This I do not give an example:)
But programmers have to deal with interesting, automated technologies, as well as those pesky, manual jobs. Good programmers try to keep their lives as far away from bad technology as possible, but there are some bad techniques that he can't simply abandon. Sometimes it is because the products they develop need this technology; For example, all Web development programmers have to deal with HTML, but there are many annoying attributes in HTML. Sometimes bad techniques can't be discarded just because there are a lot of people using them, and programmers have to use them.
Most of the time is spent on bad technology.
From this point of view, you can clearly understand why this paradox arises. Bad technology can use a lot of time and energy. Good technology only needs a little time and energy. Programmers have a limited amount of time and effort each day. A lot of this limited resource is being put into bad technology, just because bad technology requires you to pay more. In other words, their main daily work is to deal with the technology and tools they hate. So, good programmers are miserable.
I hope my article will eventually bring some inspiration to solve this problem, but it is not expected to be a lot. The only thing we can do is to throw away the bad technology and keep them out of our lives, and we can only endure them for the time being.
English Address: Http://blog.garlicsim.org/post/2840398276/the-miserable-programmer-paradox
This column more highlights: http://www.bianceng.cnhttp://www.bianceng.cn/PC/it/