Why are programmers a little weird?

Why are programmers a little weird?

[[163850]]

I have been a programmer for n years and have worked with all kinds of programmers for n years. Looking back, I found that no matter whether the programmer is extroverted or introverted, talkative or taciturn, they all have the following quirks to a greater or lesser extent. The only difference is the severity of the quirks.

1. The code written by others is always worse than mine. I would rather rewrite it than use someone else’s code.

This phenomenon does not need to be elaborated. If you are a programmer, you should be able to understand it. If you still don't understand it deeply, you can check whether there are multiple versions of thread pool and object pool in your company's code.

[Summary]: If there is a ready-made, tested code or program library that is allowed to be used, and there is someone to maintain it or the maintenance cost is acceptable, programmers should try to use existing code and libraries to save time and development and testing costs.

2. I like to write code as short as possible, with more obscure syntax and as difficult for others to understand as possible.

The highest level is: one line of code, n functions, no one else understands, only the author himself understands. Then, this becomes a capital for showing off, saying everywhere: "Come, come and see, do you know what this line of code does? Well, I know you don't know, haha." I always curse these programmers like this: "Next time I hope you will maintain this kind of code written by others."

[Summary]: Obscure code will have a very high maintenance cost. Sometimes, I would rather sacrifice some performance to write easy-to-understand code. Therefore, good code should not only achieve functions, but also be easy to maintain. My definition of good maintainability is: the code written by A allows B to understand and modify it easily.

3. Thinking that the closer a language is to machine code, the more advanced and technical it is

In their eyes, writing 01010110 directly is the highest level of technology. If they really can't remember it, they use assembly. If they still can't remember assembly, they use c/cpp. Java/C# has no technical content at all.

I want to say, your idea makes me, who writes HTML+javascript, feel embarrassed. I want to ask, why don't you use a knife to burn the hard disk? That's the most direct way. If it doesn't work, you can write a web page in assembly and let me see it. Then I will admire you.

[Summary] Languages ​​themselves are neither good nor bad, they are just tools. A good programmer needs to be able to choose the right language in different situations.

4. Program structure is everything, customer needs can be put aside

I have met some programmers who really pay attention to the structural design of the program. Of course, this is not wrong, and I agree with it. But you know, the customer's requirements are always changed, and some of them are beyond our expectations at the beginning, but the customer doesn't care, anyway, it is completed on time and as required. However, I have met some programmers who refuse to change no matter how much you persuade them, saying that the change will affect the program structure and the design will be ugly. To be honest, I also agree that it does have an impact on the structure, but we have to figure out who is the breadwinner, it is the customer, not the structure! So, I really want to say to this kind of programmers: If you are full just by looking at the program structure, don't eat.

[Summary]: As I said in my last blog, IT is just a tool. If you create a tool, no matter how beautiful and perfect it is, if it cannot meet the requirements of use, it is nothing.

5. Sometimes I am very nervous about program performance

I remember one time, we needed to write a desktop application. A programmer and I discussed for a long time whether we should use the system lock or write a counter-based lock ourselves (I have to say that those programmers are very good programmers with rich and profound theoretical knowledge, most of whom are from a certain university in southwest Shanghai). I admit that the counter-based lock is indeed more efficient because it does not require the program to fall into kernel state. However, for a user desktop application that is inherently slow, is it necessary to implement an efficient lock yourself? Implementing it yourself increases the development and testing costs, and also increases the probability of many bugs. If this time is spent on improving the user UI, wouldn’t it be far more valuable than just a few dozen milliseconds faster?

[Summary]: Our time and energy are limited, so we don't do some things, even if they are right. Because if we put our limited time and energy into other aspects, we can gain more. This is the so-called cost-effectiveness.

Programmers have always given people the impression that they have strange personalities, high IQs, stick to chairs, and tap on computers. What I want to say is that this is all a misunderstanding. In fact, most programmers in reality are very cheerful, just like other people. But programmers sometimes work very hard, and they can stay up all night to fix a bug, which has a great impact on their lives and health. So, I wish every programmer happiness and health...

Finally, let me end with a picture. I think this picture vividly expresses the life of a programmer from a certain aspect:

[[163851]]

<<:  Many apps ignore Apple's Human Interface Guidelines details

>>:  AlphaGo's first bug: What's the Achilles' heel of the Go algorithm?

Recommend

iOS Symbol Table Recovery & Reverse Alipay

Recommendation This article introduces the techni...

Windows 10: A return to tradition

Windows 10 Technical Preview has been released fo...

Can 5G messaging impact WeChat and Alipay?

On April 8, China Mobile, China Unicom and China ...

18 most classic user growth operation cases on the Internet

Part 1: Growth Hacking and Related Concepts 1. Gr...

Learn 4 topics about content marketing from Apple’s short video marketing

After having a WeChat official account , we all n...

Living alone for 16 years, without mating, it gave birth to a child

After living alone for many years and never seein...

Why are the old domestic appliances from 20 years ago so durable?

After a full twenty years of service, a domestic ...