
There are two kinds of experienced developers: the humble ones, and the arrogant ones. The developer with a few years of experience has become familiar with a number of technologies and has solved some tricky problems. The humble ones also know how to work well with others. The arrogant ones have been forced to change jobs because their employer “doesn’t appreciate my superior skills.” That or they chase away any promising new developers because they are so hard to work with. Don’t be an arrogant developer.
So how does one develop the “skill” of humility? Many developers struggle with “imposter syndrome” where they live in fear that their co-workers or management will find out that they don’t really know what they’re doing. I mean, I figured it out. How hard can it be? Plenty hard. You just forgot how hard it was to learn this stuff. It took time, consistent effort, and persistent practice. If you think about it, imposter syndrome is really just a different type of self-centeredness. If you are so worried about what other people think of you, you don’t have the bandwidth to help others.
No, to practice real humility you must remain curious. You must appreciate that others know something that you do not. You must remember that there is more to learn in your current area of expertise. There is always room to grow. There is always something else to learn. Humility is an important attitude to develop as you grow in your career.
The more experienced developer needs to start developing some soft skills along with the technical skills. The technical skills will vary depending on the job, but usually include understanding design patterns and some architectural patterns. They need to know how to write unit tests and integration tests – and be able to differentiate between the two! They also need to be familiar with tools and techniques needed to understand unfamiliar code quickly.
The experienced developer will need to be able to work effectively with others. Technical people have a well-deserved reputation of being socially awkward, so this is a skill that needs to be developed with some effort. One way to practice this is to listen to someone’s explanation of something and, rather than look for the flaws, find the benefits. Rather than exposing weaknesses in their idea, ask questions about it that highlight the advantages. Rather than interrupt with your better solution, listen carefully to hear what they have to say. Technical people naturally look for the weaknesses in an idea, but there is always time for that later. Championing someone else’s idea builds camaraderie on a team. And even if it turns out their idea has flaws, they will be much more open to changing their mind after they are certain that their original idea has been heard.
Listening is a powerful skill. One great technique that helps a lot is to look at the mouth of the person talking. This keeps you from being distracted by other things (like cell phones or notes on the table) and has an added bonus of showing the speaker that you are genuinely interested in what they have to say. Also, it makes it easier to understand them if they speak with an accent or are hard to hear. This is a great habit to develop, and simple to practice.
There are dozens of other skills the experienced developer will need to learn, but these are the fundamentals. Everything else they will learn will be built on these skills. As you advance in your career the “soft skills” gain more importance as the technical skills are assumed. Start early developing humility and listening skills and you will be well-positioned for advancement.
What soft skills do you use most often in your daily work?

