I know many good developers who are under the impression that they either don't have to sell themselves, or selling yourself is wrong, but is that really true?
First, let me clarify by defining what I mean by “selling yourself.” I don't mean “selling out,” I mean marketing yourself, what you're doing and what your skills are. Especially to your organization.
I don't need to sell myself, my code speaks for itself.
Really? Do you think your pristine code says enough about your skills, especially to a non or semi-technical person? Think back about how many products with fancy UIs beat out excellent products with crappy UIs. The simple fact of life is that marketing is effective and required. Imagine creating a really good product and doing no advertising at all because you think that the product speaks for itself. No one will know about how good it is and no one will buy it.
The only person who can recognize the quality of your code is another developer of equal or greater talent. Now I realize that someone of lesser skill may be able to recognize that your code is “good,” because it is easy for them to read and it looks pretty, but just like a connoisseur of fine wines can distinguish the small differences that really count, it takes a developer of significant talent to recognize excellent code from good or even great code. Being armed with this knowledge, it is easy to see why your code will rarely speak for itself.
As a professional developer you have to consider your audience. Mostly the people influencing your career in development are not the highly talented developers who can appreciate your code. In my experience, it is a collective of all developers, project managers, and recruiters. Because of this audience, you must do more than write good code. That good code must be seen and the effects of it must also be seen.
It's wrong to sell myself, it is politics, I don't do politics, I just write code.
If it's so wrong to do, how come so many of us do it when we are interviewing for a new job? It's like a courtship when they guy is taking the gal out to dinner and buying her flowers and romancing her, but as soon as they get married where did the romance go? Many of us developers are just like that. We polish our resumé and go out looking for the job, dress up in a suit and tie, present ourselves as professionals, but then we get the job and settle in, and we turn off the charm. It's not wrong to keep the charm turned on, not only is it not wrong, it's expected.
What about the politics of it? Well yes, there are politics involved in selling yourself, but thinking you can be a technical person and completely ignore politics is a sure way to dead-end your career. Most developers want to reduce the amount of political situations they have to deal with, and I agree with that, but trying to ignore the problem to just make it go away is like trying to make a hungry lion go away by closing your eyes. Even if you are the best hacker in the world, people skills are important. It is my strong opinion that every professional, developer or not, should read How to Win Friends and Influence People, by Dale Carnegie.
I think there is also a large difference between tasteful marketing of a product or service and offensive or annoying marketing. Just like the XXX spam mail that shows up in your email unrequested, a developer can market themselves in an unsolicited and annoying way. On the other hand…