[Turn] Seven Sins of the cursed programmer

Source: Internet
Author: User
Seven Deadly Sins (seven deadly sins), father of the 13th century Taoist Society, St. Thomas aquina, lists all kinds of bad deeds. These evil deeds were originally created by the Greek theical monk Pang yavao to damage the spirit of the eight evil deeds, respectively greedy, lust, greedy, furious, lazy, sad, conceited and arrogant.

Programmers are born unequal. Some are great. Some desire greatness. Some are waste.

Below are some of the path programmers often go astray. It sounds terrible, but enjoy it. God is by your side to guard against these dangerous signals and follow the guidance of the lord's salvation.

1. Color lag (lust)

Any lust: smothered in sulfur and Flame

As a programmer, this kind of evil is constantly tempted by beautiful new things. The next generation programming language, the latest framework, and the latest platform.

Our programmers are naturally curious. We are confused about the pursuit of efficiency and firmly believe that everything must be optimized. We can only work in the latest language.

Although the constant pursuit of improvement is very commendable, the adoption of new things also has a price. There are unavoidable learning curves. There are adaptation problems. There is an unknown dependency problem. There are unknown issues.

Clear these distractions. Focus on solving your problems at hand. Make full use of what you know to stop falling in love with those glamorous new things.

2. Gluttony)

Any greedy person: Forced eating of rats, toads, and snakes

This is an excessive sin. Excessive attempts to expand the depth and breadth.

Unnecessary features are moved into the product. A large amount of useless code is produced. Valuable programming time is wasted.

These actions increase unnecessary complexity and lead to high maintenance costs. The result is that it is not expected to be completed. There are endless bugs.

Be alert to functions that are not expected, false defenses against unnecessary complex architectures, and early optimization. Make the product concise.

3. Greed)

Anyone who commits greed: SUFFERING FROM OIL

Over-specialization and function will lead to the formation of personal territory. Fixed-step self-sealing. My code. My modules. My related regions. No share. No cooperation.

An unhealthy dependency on these people will gradually become. The so-called "godfather of programming", "programming Stars" and "programming leaders" represent these trends.

Instead, we should establish a culture that advocates code collective ownership and full cooperation (such as Pair programming or mutual code review.

4. Sloth)

Any lazy: drop into the snake trap

According to Larry Wall, the creator of Perl, laziness is one of the three great virtues of programmers.

But laziness cannot be confused with indifference. Ignore the problem for a long time. Code decay and odor are allowed. Duplicate code copied/pasted without reconstruction.

There is a sense of urgency for these things to be modified in software development. No matter how detailed. This is a necessary attitude to keep the software healthy.

5. furious (wrath)

Any angry person: physically dismember

In some places, some programmers respect each other and everyone is afraid. You may have met such a Mars geek. They did everything they wanted, and others were walking around. Avoid conflict with him.

They are moody, and their anger often gets in the wrong direction. They belittle others and undermine team harmony.

Guard against the growth of this unrestrained confrontation atmosphere. Refuse to accept such a wild. Quit them immediately.

6. Envy (envy)

Anyone jealous: Put in ice water

Not satisfied with existing tools and systems, some programmers always stare at others.

I have encountered this experience. One wiki system is in use, and the other is introduced at the same time, because its tag syntax is better. Two problem tracking systems, multiple chat systems, and incompatible blog platforms.

If you don't like a tool, I believe it is better than it. Well, find it and use it. However, please give up your existing one. Eat a bowl and want to occupy this pot, only will not be worth the candle, create trouble for yourself.

7. Pride)

Arrogant: Split

Some programmers like it. Over-confidence in your abilities. Never seek help.

Worse, he thinks everything should be done by himself. Although he has the ability to complete any task, he has not been able to complete it because he has undertaken too much and cannot concentrate. He cannot tell what is core and what is secondary. He can build his own server when using cloud services, and re-invent his own server when he can use a mature deployment system. He develops a framework with the same functions as the existing framework, and so on.

Indeed, it is interesting to do research. These studies are often referred to as "Foundations" or "innovations", but the loss of market opportunities due to the lack of faster business value creation.

Be careful with "not invented Ted here" syndrome. Accurately defines your core goals and your first priority. Others are secondary and can be borrowed from others. There is nothing to be ashamed.

Original article translated from: Open Source Chinese community

Lionden October 8, 2014

E-mail: [email protected]

Reprinted please indicate the original address and blog Park lionden: http://www.cnblogs.com/lionden/

Attachment: Original ENGLISH

7 sins of doomed teamsby Georges auberger 04 Nov 2013 people team, performance, favorites 3 min read software development teams are not created equal. some are great. some aspire to be great. some are very dysfunctional. here's a run down of ways engineers can err. as dreadful as it sounds, rejoice. salvation is right around the corner. watch for those signs of trouble and lead the way to redemption.1. lust

With development teams, this takes the form of constantly being attracted to shiny new things. The next programming language, the latest framework, the newest platform.

As engineers we are curious by nature. We are also obsessed with efficiency and hold the belief that everything shoshould be optimized. If only we used that newest language, we 'd be set.

While continuous loss is a very laudable loss, adopting something new has a cost too. There is always a learning curve. There are teething problems. There are independent dependencies. There are unknown.

Eliminate those distractions. Focus on solving your problem at hand. Stick with what you know and stop lusting after shiny new things.

2. glutony

This is the sin of excess. trying to do too much, being too broad and far reaching.

Unnecessary features creep into the product. Too much code is needlessly created. valuable programming hours are consumed and waste is generated.

This behavior perpetuates unneeded complexity and yields high maintenance cost. Often as a result, deadlines are missed and bugs pile up.

Watch for unwanted features sneaking in, bogus justifications for unnecessarily complex ubuntures and signs of premature optimizations. Keep the product lean.

3. Greed

Excessive specialization and compartmentalization creates fiefdoms. Hoarding mentality settles in. My code. My module. My area of concern. There is no sharing. No collaboration.

An unhealthy co-dependent relationship with those individuals develops. So-called "ninjas", "Rock Stars" and "high priests" can exhibit those tendencies.

Establish a culture that values collective code ownership and focus on collaboration-such as Pair programming or peer review-instead.

4. Sloth

According to Larry Wall, the author of Perl, laziness is one of the three great es of a programmer.

But laziness shocould not be confused with apathy. Leaving a build broken for too long. Allowing bad code smell to fester. Not refactoring cut-and-paste code duplications.

There shoshould be a sense of urgency towards fixing those aspects of software development. These are not details. They are part of maintaining good engineering hygiene.

5. Wrath

In some places, there are engineers that everyone respect and fear equally. you 've probably encountered those alpha geeks. they throw their weight around to get what they want, while others tip-toe around them, avoiding controversial topics.

They can be volatile and their anger is often misguided. They are demeaning to others and poison the environment.

Watch for those thriving on unwarranted confrontation. Refuse to be subjected to their wrath and replace them promptly.

6. Envy

Instead of being content with the tools and systems they have, some teams keep looking at what others have.

I 've experienced situations where one wiki was in use but another one was introduced because the marking syntax was perceived to be superior. there were two issue tracking systems, multiple chats systems, disparate blogging platforms, etc.

If you're dissatisfied with a participant tool and believe there is something better out there, great, consider adopting it. however, make sure that you commit fully to deprecate what you have. being stuck in a half way State generates confusion and slows you down.

7. Pride

Some teams can be too smart for their own good. They are overconfident about their abilities. They never ask for help.

Worst, they think that everything shoshould be done by themselves. and while they might be capable to do just about anything, they fail because they take on too much and get distracted. they don't identify what's core and what's not. they build their own servers when they cocould use the cloud, they re-invent deployment systems instead of using proven ones, they create M frameworks that duplicate existing ones, etc.

Sure, some of these pursuits are fun. They are often justified as "essential" and "Innovative" but they take precious cycles away from creating business value in the product in the first place.

Keep an eye for institutesSyndrome. be rigorous about defining what your core mission is, your job #1. Everything else is secondary and can probably be borrowed from others. There is no shame in that.

Lionden October 8, 2014

E-mail: [email protected]

Reprinted please indicate the original address and blog Park lionden: http://www.cnblogs.com/lionden/

[Turn] Seven Sins of the cursed programmer

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.