📜 ⬆️ ⬇️

What makes a good programmer good?

I have worked with many programmers over the years - some of them were very bright, and some were definitely “none”. Recently, I had the pleasure of working with several highly qualified specialists, so I spent a little time thinking about what I admire about them. What makes a good programmer so good and a bad programmer so bad? Or, a little crooked Russian, what makes a good programmer good?
Based on my experience, I can say that the “magnificence” of a programmer is in no way connected with age, education, or financial condition. This is due to the way you act and, in more detail, how you think. I noticed a persistent set of habits among programmers I admire. More than a good knowledge of the chosen programming language, a deep understanding of data structures and algorithms, more than years of experience, how they communicate, how they control themselves and how they approach development - all this speaks of the amazing level of their skill.
Of course, being a good programmer is much more, and I will not evaluate any programmer solely by the presence (or absence) of these practices. But I recognize wisdom when I see it, and when I see a programmer with these traits, I think: “This person really knows what he is doing.”

They do their own research.
Or "measure seven times, cut once." Or "google it."
Say what you like, but most of the programmer problems you encounter have already been solved in one form or another - Ecclesiast was right when he said that nothing is new under the sun. In the form of github libraries, blog entries, or just contacts with experienced people. Good programmers know that you must first search before trying to solve a problem.
I even saw great programmers hurrying to solve: the worst programmers I worked with never consult with the others, and as a result, they do a lot of extra work or solve problems in absolutely the wrong way. And, unfortunately, they later pay for their mistakes.

They read error messages (and respond to them)
This includes working with the call stack. Yes, it is difficult and ugly - but if you are not ready to do it, how do you plan to understand what the problem is? The most effective programmers I know are not afraid to get to the bottom of the problem.
The least effective see that there was an error, but do not even bother to read the error message. (It sounds funny, but you will be surprised how often I have to deal with it.)
Taking a step further, we can say that great programmers see the problem and feel the need to solve it. Reading error messages for them is just the beginning: they seek to immerse themselves in the problem, to find out what it is and what went wrong. They are not interested in shifting responsibility, they want to find a solution. They are really responsible.
')
They refer to the source code.
Documentation, tests, people: all these things lie. Not intentionally, of course. But if you want to know exactly how something works, then you need to look at the code.
Do not be afraid if this is not the programming language with which you are on “you” - if you first write Ruby and assume that there is an error in one of the C libraries, then open this library and study it. Yes, you can not get anything. But who knows? To do anything is better than not trying anything!
If you do not have access to the sources, then, unfortunately, it becomes harder, but the principle remains in force. Bad programmers have little interest in studying source codes, and as a result, problems make their lives more difficult than those who are willing to do some research.

They just do it.
Good programmers are ready to act. They have a feature that is difficult to control: they implement a solution as soon as they reveal a problem or see a new feature request, sometimes too early and sometimes too aggressive. But their instinctive reaction to the problem is to solve it right away.
Sometimes it can be troublesome, but their enthusiasm is an important part of the high quality of their work. While some argue or wait for the problem to disappear by itself, good programmers begin to solve it.
Simply put (and, perhaps, too obvious things): if you see someone excitedly clinging to problems and start working on it, then most likely you already have a good programmer.

They avoid crises
Bad programmers have a common feature: they tend to jump from one artificial crisis to another, never really understanding the reasons for the first. They shift the blame on third-party parts of their programs, spending hours in debugging what works fine. They give emotions to get the better of themselves, trusting intuitions, rather than careful, detailed analysis.
If you rush through problems in a hurry (or even view each problem as a global catastrophe), then you probably make mistakes or do not solve basic issues. Great programmers take the time to understand what went wrong, even if they are faced with a real disaster. Moreover, they view regular problems as tasks that need to be solved. Thus, they solve most problems more accurately, and do it without heating up the atmosphere within the organization.

They communicate well
After all, programming is one form of communication. The ability to express my thoughts briefly and expressively is just as important in writing code as in writing prose - I have always believed that anyone who can write a meaningful letter, an elegant status report or even just an effective note will be a better programmer than anyone who can not do.
This also applies to code. Of course, you can write one line of parentheses and curly brackets, single-letter functions, but why? If nobody understands this, then what's the point of doing so? Good programmers find the time to properly convey their ideas in any environment in which they find themselves.

They are passionate about
I think this should be the most important aspect of a good programmer (and perhaps this part is applicable not only to computer science).
If you really care about what you are doing, if it is not only work, but also a hobby, interest and even admiration, then you have a great advantage over anyone else in your field. Great programmers always program. Their colleagues will work 8 hours a day - not only at work, but also in the field of programming in general. They have no side programming projects or much interest in contributing to the community. They do not try new clever methods and crazy programming languages ​​just to see how they work.
When I see a programmer who makes his own hobby project on weekends, who is involved in the creation of utilities that he uses every day, which is fascinated by new and interesting, then I know for sure that I see an amazing person. Ultimately, great programmers choose their profession not only as a way to make money, but also as an opportunity to make life better. I think this makes good programmers who they are. For them, coding is a way to change the world. And I consider it worthy of respect and admiration.

Source: https://habr.com/ru/post/203574/


All Articles