I have been programming since I was 11. I started with QBASIC, dabbled with Visual Basic, learnt Java at university, and eventually made a career for myself using a combination of HTML, CSS, PHP and MySQL. With 21 years experience of staring at code, and a keen interest in learning new techniques and technologies, I’d consider myself fairly competent as a developer. Competent, yes, but not confident. You see, I have a constant internal battle raging between my ego and my humility.
This may well be a common problem for developers, who are typically introverted and occasionally socially inept*. We strive to be the best we can be, but persuading other people to recognise our talents is difficult, and isn’t helped by our inability to articulate how good we are.
For me, I will admit that it is an ongoing struggle. On the one hand, I know that with my years of experience I know what I’m talking about (most of the time). I’m committed to quality, I’m excited by elegance, and I get a warm glow when I make something that works really well. Most of the time, though, no one ever sees my excitement and satisfaction, because I’m staring emotionless at my computer screen(s) engrossed in my code, and only a truly revelatory experience teases the slightest hint of outward expression out of me. It’s only at those exceptional times that my colleagues really notice that I’m enjoying being excellent at my job. But even then, because it’s a world they have no knowledge or understand of, they often dismiss it as “geeking out” and rarely appreciate the awesomeness of what I’ve just done.
Actually interacting with people sometimes provides opportunities to showcase my brilliance. For example, someone may have a problem getting something to work, and because of my years of experiencing just using computers I’m usually able to intuitively figure out the solution even if I’ve never done it before. They’ll thank me and tell me I’m a genius. And that’s when my humility kicks in. You see, I know that what I’ve just done isn’t even remotely clever, and didn’t require any training, because it was just a case of pressing the right buttons. In my own mind, it wasn’t clever, and I’m certainly not a genius. And without really thinking about it, I dismiss my colleagues’ praise as misplaced, and mentally bring myself down a notch rather than feeling good about being able to help them.
I’ve noticed that this even happens with my development work, which is more worrying. I work in a department that is responsible for looking after our internet presence, and I’m the only developer in the seven-strong team. When we’re asked to make a new website or service or something, I’m the one that does the complicated development and actually makes it. But when we showcase it to others in the business, or even externally, it’s the ‘team’ who have created it, not me. I don’t take the credit for my own work, because I want to be a team player and build up the team as a whole. “We” have made this awesome thing. “We” have delivered an amazing result. My own contribution is hidden, and unimportant.
My ego wants to tell people how great I am, because my ego knows I’m awesome at what I do. By my humility smothers my ego so that no one sees it. And – which is worse – I stop seeing it myself.
So how does one manage to be excellent without being egotistic? How do you balance being a ‘team player’ against demonstrating your own skills and abilities? Is it possible to embrace your ego AND be humble at the same time?
Right now, I don’t have a clear-cut answer to this problem. I would love to hear from others, whether developers or otherwise, about how you have approached this problem. Leave your comments below, and perhaps together we can help each other be confident in our excellence!
* Feel free to disagree with my on my perception of the average level of social ineptitude of developers as a whole. And please don’t take offence if you happen to be a genuinely outgoing and socially ‘ept’ developer.