Passion for programming. Chapter 4. Be the Worst

Not waiting for the next translation, I liked the book by Chad Fowler's “Passion for programming” - I decided to continue. I’m not sure that I will not hinder anyone, but I intend to resolve the issues peacefully.

Chapter 4. Be the Worst

< 3. Кодинг ещё не всё | 5. Invest in your intellect >
The legendary jazz guitarist Pat Metheny has wise advice for young musicians that sounds like this:
Всегда будь худшим в группе
(Always be the worst guy in every group where you play).

Before starting my IT career, I was a professional jazz and blues saxophonist. As a musician, I had the good fortune to learn this lesson early and to follow it in the future.

So. Why you should always be the worst member of the group. "Isn't that discouraging?" you ask. Yes, at first glance this is really discouraging. When I was a young musician. I found myself in situations where I was obviously the worst guy in the group and felt like a black sheep that spoils the whole herd. I came to the concert, and didn’t even want to unpack my saxophone, out of fear that I would fall into the stage. I had to stand next to people with whom I had to take an example and even play on the same level, and sometimes play the main part.

Unmistakably (fortunately!). Something magical happened at these moments. I was adjusting. I would not stand out among other musicians like a star. On the other hand, also, obviously, I would not surpass myself. This happened for two reasons. The first reason is that I am not as bad as I thought. We will come back to this later.

A more interesting reason is that I adapted to these super musicians - my heroes, in some cases - because my game was changing to be more like their game. I would like to think that I have some kind of superpower, to turn into a genius just standing next to him. It was more like some imitative behavior programmed in me. This is also a phenomenon that made me adapt to new programming vocabulary and habits when I was surrounded by people who spoke differently from me. When we returned after one and a half years of life in India, my wife listening to me begins to laugh, "Do you hear what you just said?" I spoke Indian English.

As the worst guy in the group, I identified a saxophonist in myself. Naturally, I would just play like everyone else. What makes this phenomenon really uninteresting is that when I played in eateries with not-so-good bands, I played just like these guys.

In addition, as an alcoholic, whose legs are braided even when he is not drunk, I noticed bad habits, even when he was not playing in bars.

So, I learned from this that people can significantly improve or degrade skill by simply observing how others work. And, long experience working in a group can have a long-term impact on performance.

Later, when I moved to IT, I discovered that the habit of looking for the best musicians became natural for me as a programmer. Maybe, unconsciously, I was looking for the best IT-specialists to work with them. And, not surprisingly, the lesson retained justice. Being the worst guy (or girl, of course) of the team has the same effect as the worst guy of the group. You will find that you are inexplicably better. You’ll even speak and write much better. Your code and your ideas will be more elegant, and you will understand that you are able to solve more complex problems in increasingly creative ways.

Let's get back to the first reason I mentioned that I joined these groups better than I expected. Actually, I'm not as bad as I thought. In music, this is easy to measure when other musicians think you're good. If you are good, they invite you to play with them again. Otherwise, they avoid you. This is much more accurate than measuring by asking what they think of you because good musicians don't like playing with bad ones. To my great surprise, I found that in many of these cases, I received offers, from these super-musicians, for further work or for creating my own band.

Trying to be worse, in fact, is stopping you from selling yourself right away. You may belong to group A, but always remain in group B because you are afraid. Confess whether it is better to remove the fear of not being the best. In fact, even if you are trying to be worse, it is not a fact that you will be.


1. Find the “be the worst” situation for yourself. You cannot afford the luxury of changing your team or company immediately just because you want to work with the best people. Instead, find a volunteer project that you can work on with other developers who will make you better. Find out about developer group meetings in your city and attend these meetings. Developers often look for projects in addition to the main work, in which they practice new methods and improve their skills.

If you don’t have an active developer community nearby, use the Internet. Choose an OpenSource project that you like, and whose developers represent for you the "next level" that you want to achieve. Scroll through the project’s to-do list or correspondence archives, select a feature or a large bugfix, and start coding. Adhering to the style of the project. Turn it into a game. Make your code and ideas so indistinguishable from the code and ideas of the project that even the developers themselves could not remember who wrote it. Then, when you are happy with your work, imagine it in the form of a patch. If the work is good, it will be accepted into the project. Start over and do it again. If you made decisions that the project developers do not agree with, consider their wishes and redo them, or take note of the changes they make. Try to make your next patch with the least number of alterations. In the end, you will be a reliable member of the project team. You will be amazed at what you could learn from a remote group of senior developers, even if you never have a chance to meet.