Wang Yin: "Mental illness of programmers"

Source: Internet
Author: User

To be honest, although it seems to have been struggling for more than 10 years, after a few short years of actually entering the software industry, I have been quite bored with it. This is not to say that the industry has no prospects, but to work in this industry, in fact, it is difficult to get psychological happiness.

People say that women are afraid of marrying the wrong Lang, men afraid into the wrong line. I don't think I'm in the wrong line, I still love designing programs and languages, and I'm obviously one of the trump cards in the field. But I saw the infinite chaos in this industry, which made me feel breathless. Decades of garbage design piled up there, but no one tried to clean it up and the authoritarianism prevailed. No matter what company you're in, where you talk to programmers, you'll never talk. Very disappointing not to say, even feel very hurt self-esteem.

Over time I found that, due to the nature of the programmer's work, they were "nurtured", forming an industrial psychological disease. Here I simply summarize some of the symptoms I have observed.

No self-knowledge

Because the programmer's work in recent years easier to find, the salary is good, so many programmers often only see their own navel, not see their position in the whole society is not so critical and important. Many programmers, in addition to their own, are almost completely uninterested in other areas and things, and despise others. That's why my former colleague, TJ, is so humble as a veteran astrophysicist in a software company. People who seem to be able to write some Node.js,ios software can look at his toes, but the value of these things may be comparable to the physical knowledge that TJ knows. The feeling was that the boat was turned over in the gutter and bullied by the rats.

If the mechanics engineer makes a mistake, the plane crashes; if the structural engineer makes a mistake, the bridge collapses; but if the software engineer makes a mistake, the website hangs out for an hour, and the restart looks good again. So the so-called "software Engineer", because the threshold is too low, their work rigor, in fact, it is impossible and mechanical engineering, structural engineering and other real engineers in the same way. In fact, the term "software engineering" is simply a nonsense, software engineers can not be called "engineers." Unlike other projects, software engineering is not based on science, and computer science is not science at all. According to Dijkstra, "software Engineering" is the end of the field, because its goal is: If I do not write programs, how to write a program?

To achieve this foolish goal, many people began to sell all kinds of things like diet pills. Object-oriented approach, software "reuse", design patterns, relational databases, NoSQL, Big data ... Endless. As long as the rich people publish things, God horse garbage can be touted in the sky. Facebook has a compiler for PHP that compiles to C + + and makes a VM, how amazing!

In fact, there are a few eternal treasures in the software, but few people understand and respect their value. This seems inconceivable in other engineering fields, but it is true.

Garbage when Baby

Because there is no science as the basis for the theory, there is no experiment as the standard to test them, many things in the software industry like modern art, ugly rubbish can also be placed in the appearance of the Grand "Museum of Modern Art" inside, by people as a masterpiece worship.

In order to highlight their non-existent value, and put forward some new "ideas", like some modern artists, said that "the purpose of art is not for beauty, but for freedom." "Oh, that's why you're free to put those disgusting things in the museum and buy tickets to visit?" he asked.

Religious struggles

Of course, because there is no real technology, in order to compete for the market and interests, the concept of various software began to fight each other. A moment to say software crisis, object-oriented approach to save you! In a moment, design patterns were proposed. After a while it was said that some of these patterns are "anti-patterns", and then some people put the functional programming, said to be the bane of object-oriented programming, a moment is a relational database, a moment is a NoSQL, a moment is the web, a moment is the cloud, a moment is mobile ... Every thing likes to say that it is the hope of the future.

That's why some people say they need to "learn" constantly in the software industry, because people are constantly creating new ideas to create new ideas. In an industry like this, it's hard to find a person who only treats programming language or technology as a tool. If someone asks you about a language or technology that is very embarrassing or even dangerous, the surest way is not to comment and say nothing.

I'm so proud.

In the IT industry to criticize a technology is difficult to use, is a very easy to hurt self-esteem, because immediately someone will crackling out a large code, said: It is so simple! And then you find out that these people don't understand what design is, they are proud to be able to bypass a variety of previous design mistakes as quickly as possible, and many programmers are even proud of their typing.

When encountering such a person, my experience is, never compliment them. You must laugh loudly that they are code monkey, or you will not only contribute to their arrogance, but also their own self-esteem in the future.

Go read the documentation!

When it started, people began quoting Eric Raymond, an article called "The Art of Questioning," which later became an excuse for being rude to the questioner. Because of the misleading of this article, when you want a colleague to give you a hands-on presentation, they tend to throw you a document that you don't know when to write, so that you can read it yourself, as if the document could be a substitute for direct interaction between people. In addition to saying that the document may be outdated, there are many places that are out of date with the latest design, which means that subconsciously, they feel that you are high. They'll even say to you, if every newcomer comes and we spend so much time directing them to get started, where's the time to do it? Then you realize that your position in their hearts is actually so humble and low.

Some people are a little bit tactful, when you ask questions, they will apart open a browser window, in the inside with Google search, and then point to you: Look, that's it. Seemingly more polite, but that actually means that they are teaching you: Google a bit to find, and do not have the brains! Who is not going to use Google? The person who asked the question was afraid that Google could not give him an answer. A really polite person who doesn't know the answer is not going to help you search for you, he will say to you: "This I do not know ... Why don't you search? ”

In the IRC chat room, because of the network barrier, this kind of rude to the questioner is more arrogant. I used to go to the Java chat room to ask some seemingly basic, but actually very deep language design problems, the results did not once received like "to read api! "This answer ends. API who can't read, but what I need is a person of flesh and blood to understand this. So I don't go to IRC at all, because it's basically not human to face your typing. They think you're wasting their time asking questions, but they're doing it all day long on IRC as if they're doing something. Later, you find that the only fun is to scold the novice in IRC.

Chat rooms like Haskell seem a little bit friendlier, but then you find that they seem friendly. Because Haskell was not used by many people at the time, they needed to attract novices and do their best to induce them. And once you become an expert, you will find how unfriendly the "id" is when it comes to making objections to its design. Finally you find that the so-called "community" in all languages is a virtue. If Haskell is one day as big as Java (and of course unlikely), the answer to most questions is "read api! ”

I have to point out that "the art of questioning" and other articles about "hacker culture" have great responsibility for the emergence of this phenomenon. This article attempts to erase the culture of human civilization for over thousands of years, and to redefine "politeness". As a result, human civilization has regressed for dozens of or hundreds of years in the programmer's world because of these articles. Many laymen don't like to talk to programmers, call them nerd, that's why.

Don't ask questions, don't be humble, don't flatter

Similar to the symptoms above, an important unspoken rule in the programmer's world is that only novices ask questions. So if you have any chance to get your own answers, don't try to "ask" people, especially if you're not curious, or you'll be considered a rookie. I have a few fools experience, finally led me to be regarded as a rookie. I just think that the problem is interesting, may be able to inspire me to design their own things, so eat feel is a topic can say, the result is someone busy despise you, so small problems are not clear. The right attitude should be honest, direct, see not surprised, what a big deal, I have not seen, I am very skeptical.

The following introduction is: Do not be humble! Articles like "Working experience" tell you to get into a new company, be humble and ask, and it's not going to work for IT companies that don't speak the virtues. Some big IT companies have so-called "culture", such as calling you to "Googley", to "humble", in fact, is only used to belittle your value of excuses. They want you to "learn" from them, but in fact they have nothing to learn. They just want you to be content with your duties and do something that is trivial and does not work for you. Look at the people who call you humble, do they humble? So the same as the lake, in the IT company is a very important thing is that the light of their own sword and trick, give people scare. Introduce your own things must be proud, this is the world's best, invincible, no one else can do! There can be no reservations. Don't introduce yourself to the limitations of your technology like a scientist, or you'll come up with some doubts about your value and a blow to your confidence.

In addition to pay attention to other people introduce things, do not easily praise or nod, otherwise someone will be more imposing. You have to ask the question: Is there anything new in this? This thing, another technology has been able to do, ah, did not feel anything great.

Alas, this is still very tired, so it is best not to talk to programmers do not speak.

To take people by language

Your software is written in what language, tell others when it is to be careful, it is best not to say the last resort. Because of all likelihood, the other person will immediately in the heart of the value of your software to make judgments, the light of what language you use.

Many programmers take pride in the new languages they use recently, thinking they are better programmers with their own. They cannot see that the new language does not make them a better programmer. In fact, the most powerful programmers can write very good code in whatever language. In their minds there is actually only one language, they first use this language to model the problem, and then according to the actual need to "translate" into the final code. The value of this modeling process in the mind is hard to measure with the last words. Sometimes a programmer uses a language not because he only uses that language, but for other reasons. But many people mistakenly think that they do not want to learn "new" things, thus despise them from the heart.

This kind of language-based phenomenon even appears in some companies. The funny thing is that all of the companies that I interviewed in the previous period used Python and finally decided that I was a rookie of Python. However my level is obviously higher than the Python creator Guido van Rossum a lot. After making the Pysonar, he understood the language of the program, and every one of his ridiculous mistakes was clearly seen by me. Ruby, of course, is even more rotten.

Tag along

Some programmers are so unfriendly to novices and co-workers, but the kung fu of Daniel's flattery is a real standout. I had just been in San Francisco for a few months and I often took part in the "meetup" of some programming languages, and later I found that this meetup was a very religious atmosphere, similar to the MLM Conference. Almost all of Scala's meetup are worshipped by Scala and Martin Odersky. Clojure, of course, basically treats Rich Hickey as God. All kinds of talk always preach, wow, we use scala/clojure to make what great thing and so on ...

Many people like to do these new language and technology "evangelist", all kinds of horse fart, and then began to write books, write blog, ... The goal is to become the first group of experts in this "field". It is no wonder that there is a large number of people in the language of rubbish to preach. Because these people do not have the real ability, casually put a thing in heaven have their own advantages.

Influenced by these "prophets", some people began to "preach" in their own company. For example, someone told me at a Python meetup rally that he tried to push Python in his own group, but some old stubbornness must use Java and think Java is the king. I despise the way I am unhappy.

Seeing these I finally understood how some regions were split from one country to another, and eventually to a colony of a different country. At the earliest, it was generally a missionary's past "staring at", and then incited a small number of people to revolt. To the later can be justified to "protect missionaries", "protection of religious freedom", "maintenance of peace" and other reasons to open the warship to someone else's door ...

From: http://www.yinwang.org/

Wang Yin: "Mental illness of programmers"

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.