21 lessons learned in 21 years of programming



Good day, friends!

April 7, 2020. Today is a very important day for me. Today marks exactly 21 years from the moment I started writing code (doing it professionally, making a living with it).

It seems that it was only yesterday ... today I am a middle-aged man with 21 years of programming experience who has gone through many ups and downs of the treacherous world of software development.

Making mistakes is an integral part of the learning process. Often this is a criterion for success. The desire to avoid the repetition of errors should be in first place in the list of priorities of the developer.

Of course, personal experience is the best way to learn something, but the experience of other people is an easier, faster and smarter way to avoid serious troubles. After all, life is short: it is impossible to make all possible mistakes.

Developer's career is an exciting journey to master amazing art. A lot of challenges await you along this path, in some cases you will be right, in others you will be wrong. This article focuses on the lessons that I have learned over a fairly long period. I hope she benefits you.

1. Do not put off for a rainy day


The path of your career at the beginning of the journey will largely depend on how you spend your money. You will be tempted to buy a new car, update your wardrobe or go to an expensive restaurant.

Dusting your eyes from time to time is not forbidden, however, first of all, spend money on self-development (training). This is not only a great investment that turns into a good profit, but also something that will stay with you forever.

2. Consider yourself indispensable


The surge of energy after being aware of yourself as an irreplaceable specialist in your field is addictive and negatively affects professional growth and personal development.

Remember, if you want to achieve better results, you can not stop there (you can not be satisfied with what you have, know, know how). In the end, find and educate yourself a successor who will replace you in a responsible post.

3. Burn bridges


Even if you are an excellent, tireless, full of energy programmer, you should not burn bridges and break ties. Software development is a small world. On the bridges that you would like to burn, sooner or later you will have to cross. So it’s better not to do this.

Be humble, correct, and keep good manners even with those you don't like.

4. Do not share knowledge


In my experience, having a good understanding of the technologies you use in your work is the most reliable way to gain the respect of colleagues. However, a good understanding of technology and not sharing your knowledge with others is a sure way to nowhere.

Knowledge is half the success, sharing is the second half. A good programmer communicates with novice developers and shows how to solve problems. He not only tells them how to deal with the problem, but also explains why it is solved in this way.

5. Ignoring soft skills


Programmers sometimes forget that software development is a team sport, where the project is the common task of a group of people working side by side, supporting each other and striving for the same goal.

Therefore, if the programmer is arrogant (arrogant), not keen on work or unable to communicate productively, this will negatively affect not only his work, but also the project as a whole. So the possession of the so-called "soft" skills is a prerequisite.

6. Looping on the technology stack


Software development will never stop evolving. Therefore, a person who considers himself a professional in this field must also constantly develop in order to remain in demand.

Remember, the key to success is not in the speed of mastering new material, but in obtaining conceptual knowledge that allows you to solve old problems with new means. A good programmer not only writes code, but also learns something all the time to solve tasks in the most efficient ways.

7. Cut corners


There is no "quick and dirty code." Dirty code is bad code. Dot. Never cut corners and be content with little (second-rate things).

Whether you are a good programmer is determined during times of crisis. If your behavior changes during these periods, then you are not a good programmer. Note Per .: I believe that this is a conscientious attitude to work, high requirements for the code that you write. If these requirements are reduced in difficult situations, and the attitude towards work becomes negligent, you are not a good programmer.

8. Do not document code


It doesn't matter how good your software is. If the documentation for it is bad, people will not use it.

Deadlines, workload, nothing eliminates the need to document code. Software without documentation is dead software. Remember this!

9. Avoid politics


We all heard this phrase: β€œI am not interested in politics. I just want to introduce technology. ” But this does not happen.

Technology involves change, and change entails dividing people into winners and losers. This is where politics begins. You must control her, use her and get out of the fight as a winner. There is no other way.

10. To devote too much time to design


A good project before starting work is great. But giving it too much importance can lead to frustration.

Do not look for the perfect design. In the world of programming, it does not exist. Look for a satisfying design, something you can use right at the start. Good design is a project or scheme. He must be able to develop and grow before turning into stone.

11. Underestimating the importance of code meaningfulness


According to Robert Martin, β€œwriting clean code requires the competent use of many techniques acquired through a painful understanding of the concept ofβ€œ code cleanliness ”. The combination of these techniques is called code meaningfulness. ”

A meaningful approach to writing code does not help distinguish between good and bad code, but it helps to develop a strategy for turning bad code into good.

12. Use the first available solution


Using the first solution that comes to mind or comes to hand is a very tempting and easy way to solve the problem. However, a good solution is usually the result of a choice between all possible or at least several ways.

Remember, your job as a programmer is to find not just any, but a better solution to the problem.

13. Ignorance of what should not be done


The best programmers know exactly what should not be done.

They know that rewriting a library from scratch just to make it more readable, or switching to a new framework just because it is new, is not always the right decision. The code should be so good that it can be understood in a few minutes or even seconds.

The key to success is not risk appetite, but engaging in the right battles.

14. Refuse to recognize ignorance


Even if you are a technical genius, you may not know all the technologies. It is simply not possible.

On the other hand, the greenest developer can offer a more stable and effective solution than you. Good programmers do not impose their decisions on the team. They cultivate democracy, where the best solution wins.

15. Sagging under pressure


Code is like food. It can be fast, good or cheap. Choose any two. A bad programmer is trying to get a team to do all of these things at once. He is guided by the terms and obligations undertaken by someone else, "perfectly understanding that they are not feasible."

A good programmer does not lose his sense of reality and brings relevant information to interested parties as quickly as possible.

16. Do not build trust


Programmers can exist as lonely wolves, but the best programmers are masters of communication.

And the easiest way to build trust and build relationships is to help other teams in difficult situations. This method allows you to seek help at any time, without waiting for the right time. Helping to initiate or complete a project not only makes you an expert, but also enhances your credibility within the organization.

17. Do not see the whole picture


As a programmer, most of the time you will work on part of the code or solve some problem in the existing code. You carry out the task, there is nothing wrong with that. However, if you want to get your piece of the pie, you need to spend time figuring out which project is in development.

The best way to do this is to find a mentor who will help improve your skills and, as a result, grow to the next level faster.

18. Reinvent the wheel


Good programmers do not reinvent the wheel. They constantly reuse their code and look for ready-made functionality. This not only saves time, but also generates a kind of camaraderie between developers who share their code with others.

For most of the problems that you are trying to deal with, there are ready-made solutions. Therefore, when you try to complete a task, check to see if anyone else has performed it. In this case, you are not cutting corners, you are cutting efforts.

19. Insufficient knowledge of business rules


We programmers sometimes underestimate the complexity of business rules. Without knowledge of these rules it is impossible to develop an effective solution.

Remember, before focusing on the technical component, you need to understand business thinking and create a product that is described in terms that are understandable to the customer, and designed to effectively solve the challenges facing him.

20. Do not communicate with the team


Despite the fact that there is no set of rules for communication, however, like the obligation to communicate, a little personal aspect in the work will not hurt.

Knowing the strengths and weaknesses of other programmers, their abilities and limitations, their interests and hobbies, allows us to plan joint development in the best way.

21. Do not monitor health


Health is the foundation of everything in your life, including a career. Your creativity, energy and strength to withstand ups and downs depend on health.

Health monitoring is not a one-time promotion. This implies a certain mode of work and rest, proper nutrition, regular exercise (physical activity) and rejection of bad habits.

Instead of a conclusion


Any career has ups and downs. What matters is how you feel about this. You can get depressed if you fail, or you can be positive about it and learn from mistakes.

As Carlton Fisk correctly noted: β€œWhat matters is not what you have achieved. What matters is what you have overcome. This is what defines your career. ”

Thank you for attention.

All Articles