21 years of programming career, those pits I have stepped on

"As a middle-aged programmer with a 21-year-old programming age, I can proudly say that I have successfully experienced the peaks and troughs of the variable world in the software industry. This article records my career in software development so far career mistakes, but also how to avoid these mistakes a finger south. "

. | Ravi Shankar Rajan

Translator |  Su Benru, Editor-in-Chief | Guo Rui

Selling | CSDN (ID: CSDNnews)

The following is the translation:

Today is a big day for me, because my programming career has finally gone through 21 years.

It feels like everything happened yesterday. Today, I am here. As a middle-aged programmer with a 21-year-old programming age, I can proudly say on my blog that I have successfully experienced the peaks and troughs of the software industry, a world full of variables. Yes, at least I can say that today is an iconic moment for me.

As the saying goes, making mistakes is part of the road to great learning, and rapid and frequent failure is a sign of success. People should prioritize: how to avoid making the same mistake more than once.

Yes, absorbing experience and lessons from your own experience is the most effective way to learn, but acquiring knowledge by drawing on the experience of others is a faster and smarter method that can alleviate pain. After all, life is short, and you cannot make all possible mistakes in a lifetime.

Engaging in a software development job is the beginning of a journey to master your technology. As in any field, you will face various challenges. You have the opportunity to do the right thing, and you may also do something completely wrong. This article documents the mistakes I have made in my career in software development so far, and is also a guide on how to avoid them.

Don't save your salary in case you need it

The trajectory of your career depends largely on how you decide to spend your initial salary. You will really want to spend this money on buying a better car, changing your clothes, and going to a more upscale restaurant.

Although it is not wrong to splurge occasionally, you need to plan to spend your money on acquiring knowledge. This will not only bring you the greatest return on investment, but will continue to bring you benefits over time.

Make yourself indispensable

Although it may be tempting to have the power to make yourself indispensable, if you keep doing this, you will hurt your own growth.

Always remember that if you want to pursue higher goals, you need to free yourself from the low goals, and train and guide a successor to succeed you.

Self-breaking retreat

Even if you have become an excellent, pivotal, and hot developer, you can't burn your "bridge" and provoke unnecessary struggles. The software development industry is a small circle, and the "bridge" you are burning out will cause you trouble when you need them most.

Even when dealing with people you do n’t like, you have to be humble, sincere and maintain a good relationship.

Do not share knowledge

In my experience, technical proficiency is the most sustainable way to win the respect of team members. That being said, mastering technology without sharing knowledge with team members will inevitably have disastrous consequences for you.

Knowledge proficiency is half of success, and sharing it is the other half of success. Good programmers will communicate with novice programmers and show them how to solve problems. Not only will they tell the newcomer how to solve the problem, but they will also explain why they use this method to solve the problem.

Ignore "soft" skills

Programmers sometimes forget that software development is a team sport, and a project is a common task for a group of people. They must work side by side, support each other, and move towards a common goal.

Therefore, if a programmer is too arrogant and has no enthusiasm for work, or cannot communicate effectively, this will not only negatively affect his own work, but also slow down the entire project or mess up part of the work. This will have a negative impact on the entire project. Therefore, "soft" skills are essential.

Obsessed with a technology

The software industry will never stop developing. Similarly, professional software developers should continuously improve themselves with the development of the industry, and must keep pace with the industry and keep pace with the times to ensure that they are not abandoned by the industry.

The key point to remember is that you do not need to master every new technology, but to acquire new concepts and learn to solve problems in new ways. Good programmers not only write code, but also continue to learn some new key concepts to help them solve problems in new ways and find the most effective solutions.

Cut corners

There is no such thing as "fast and dirty code". Dirty code is bad code, don't cut corners, and don't accept anything of low quality.

As a good programmer, your true ability is reflected in the crisis. If your performance in a crisis is inconsistent than usual, then you cannot be a good programmer.

No software documentation

How good your software is is not the only thing that matters. Because if the software documentation is not good enough, people will not use it.

No matter what the deadline is, no matter how much the workload is, or no excuses for not writing documents, any software without documents is a dead bird. The reason is so simple! ! !

Avoid politics

We often hear technicians say: "Exclude me from political struggle, I just want to implement this technology." But this does not work.

Where there is technology, there are changes. Where there is a change, someone will see themselves as winners or losers. That's where politics begins. You need to manage it, find a way to bypass it, and become a winner. There is no other way.

Over-design before coding

Good design before coding is a good thing, but if you spend too much time on it, you will fall into the "analysis paralysis" situation.

Don't try to find a perfect design, it doesn't exist in the programming world. Find a good enough design, and then you can start from it. A good design is like a map. It should evolve, not stay the same.

Underestimate the importance of "code awareness"

According to Robert Martin, "Writing clean code requires conscious use of countless tricks, and applying these tricks by painfully gaining a" clean "perception. These tricks are collectively called code-sense.

"Code awareness" can not only help us distinguish good code from bad code, but also help us form a strategy to convert bad code into good code.

Choose the first solution

The first solution (the easiest solution to think of) is tempting, maybe it is a simple solution. However, once you start to question all the solutions you find, you will usually find good solutions.

Remember, as a programmer, your job is not only to find solutions to problems, but to find the simplest and most optimized solutions.

Don't know when not to do something

The best programmer can know exactly when not to do something.

They know that rewriting a library from scratch is just to make it more readable, or switching from an older framework to the latest framework is not always a wise choice. The purpose of the code should be clear enough to be mastered in minutes or even seconds.

The key is not to avoid risks, but to choose carefully to do the right thing.

Do not admit lack of knowledge

You may be a technical genius, but even a genius will not fully master all the technologies. It is almost impossible.

On the other hand, even the most inexperienced programmers in the office may come up with a sustainable and efficient solution to solve current problems. Good programmers will not impose their solutions on the team. On the contrary, they will establish a democratic system in which the best solution will win.

Bow to pressure

The code is like food. It can be fast, good or cheap, and it is not difficult to implement any two of them at once. However, a bad programmer overwhelmed by pressure may try to get the team to do all three things at once. They are oppressed by deadlines and promises made by others, although they are very clear that it is not feasible.

What a good programmer has to do is to "know the truth" and communicate this truth to all stakeholders in the fastest way.

Does not establish interpersonal and trust relationships

Programmers can fight alone, but the best programmers are those who are proficient in interpersonal relationships.

The easiest way to build trust and good interpersonal relationships is to help other teams solve problems, so that they start to owe you "human relations", and you can ask for their help without hesitation when appropriate. Volunteer to help others, or help others to complete their work as much as possible, this will not only cultivate your professional skills, but also build your influence within the organization.

Don't look at the big picture

As a programmer, most of the time, you will work on a piece of code, or may solve some production problems in the existing code. You are just doing the work assigned to you. There is nothing wrong with this. But if you want to be part of the whole project, you need to spend some time to understand the whole content of the project.

The best and easiest way is to get help from a mentor who can help you improve your skills faster and allow you to stand firm on a larger project perspective.

Rebuild wheels

Good programmers don't reinvent the wheel, they always reuse and build existing functions as much as possible. This not only saves time, but also creates some kind of friendship between developers who share code.

For the problem you are trying to solve, there is probably a ready-made solution. Therefore, when you try to complete a task, check if anyone else has solved the problem. In doing so, you are not cutting corners, you are reducing the workload.

Not enough understanding of business rules

Programmers sometimes underestimate the complexity of business rules. If we do n’t know the business rules, we do n’t know how to implement the solution effectively.

Remember, when programming, you need to adopt business thinking and create a viable solution in business terms to achieve its goals, rather than focusing on a powerful technical solution.

Do not communicate with the team

Although there are no fixed rules for communication (in fact, in the Limbo software project, "people" are called resources), as part of the evolutionary journey towards Homo sapiens, it is necessary to obtain some human-related information at work.

Understanding the capabilities and limitations of other programmers, together with understanding their interests, will enable you to plan development in a better way.

Not value health

Physical health is the foundation for improving all your quality of life, including your career. It can improve your creativity, vitality and courage, allowing you to survive the inevitable ups and downs.

Prioritizing your health is not a one-time job. This means that you have to arrange it into your daily life, invest in the right food and exercise regularly, and even give up other bad habits.

Conclusion

There are ups and downs in any profession, it all depends on your attitude. You are either overwhelmed by negative things or accepted in a positive way, and learn from experience and knowledge to improve yourself.

As Carlton Fisk said:

 "Not what you gained, but what you defeated. It is what determines the height of your career."

Original: https://levelup.gitconnected.com/21-bad-mistakes-in-my-21-year-programming-career-6d25c5b34908

This article is a CSDN translation article, please indicate the source.

【END】

More exciting recommendations

☞The platform resists 700 million daily visits, and the R & D quality control process is fully disclosed

☞Dry dry goods! How to improve the performance of deep learning training several times?

☞ "Tear the LeetCode problem by hand and pick up pants with various algorithm routines"

☞The idea of ​​intelligent transportation caused by the traffic jam of Beijing Fourth Ring Road

from Ngin to Pandownload, programmers how to avoid prison for programming?

☞From Web1.0 to Web3.0: detailed analysis of the development and future direction of the Internet in these years

Every "watching" you order, I take it seriously

Published 1975 original articles · 40 thousand likes + · 18.32 million views

Guess you like

Origin blog.csdn.net/csdnnews/article/details/105631427