I think IT culture can suffer from an ‘alpha geek’ syndrome – where total commitment to code and technology is valued above all else.
This post at Super Coders IT (an IT recruitment firm, which I have to be fair, I think they have a great website and blog posts) expresses this, in the form of a list activities that demonstrate a developer has passion:
- Spends lots of personal time at home reading software development related books, blogs and websites
- Spends lots of personal time at home writing code and developing personal software projects
- Has made substantial contributions to open source projects
- Has created their own software product which is available for download on the web
- Has written articles for online publications/magazines
- Coding since childhood/high school
- Participates in programming competitions
- Writes a blog
- Has an account on Stack Overflow which shows a history of participation
It’s not uncommon for employers to ask if a candidate works on projects outside of work – seeing this as a sign of being a good programmer.
The problem with this is it ignores the other human elements of the programmer. It assumes that good programmers are another species, closer to a computer than a human, who derive pleasure from all things technology related. This blog post here articulates well a similar opinion that I’m expressing here.
I’m a single, thirty year old. I have a plenty of free time.
I could dedicate my weekends to contributing to an open source project, or answering questions on Stack Overflow – but do you know what I prefer doing?
- Writing this blog.
- Running and exercise.
- Learning ceroc.
- Playing board games.
- Taking photos for my Humans of Newtown Facebook page.
If I were a married man with children, I’d have even less free time – I would certainly be prioritising spending time with my children over writing/reading code.
Some people do live and breathe code, I appreciate that. These coders probably are likely to better coders, having more familiarity with the framework or library.
At the same time – the human aspects of being a coder shouldn’t be understated. When you first walk in to the office on a Monday morning, and you ask your colleague what they got up to on the weekend, what do you want to hear? ‘I learned a new web framework, and fixed some bugs for this open source project I’m contributing to’ or ‘I went surfing and then played board games some friends.’ Which contributes to a more congenial work atmosphere?
My intention here isn’t to disparage either person. IT attracts a quite a wide range of people, and there are plenty of people who would prefer talking about something technical, than about social interactions. At the same time, others would much rather talk about the movie you saw on the weekend, than more code. The point of workplace socialising is primarily for relaxation and to build relationships after all, rather than spreading technical knowledge.
It would however, be a mistake to think that super-nerds are the only people that an IT firm should value, for two reasons.
Firstly – the firm risks missing out on perfectly capable developers, simply because they value spending their spare time on other things, rather than code.
Secondly – the firm’s culture becomes ‘alpha nerd’ focused, and this could lead a hyper-competitive and workaholic type atmosphere.
This might be beneficial for the company in the short term, or perhaps even necessary for a bleeding edge technology company or start up, but I would be very cautious taking a company’s culture that way. In the long run it could lead to interpersonal conflicts and uncooperative behaviour.
At the end of the day, I guess company cultures vary from firm to firm, and people who live and breathe code might feel more comfortable at firms who have a culture that values that. But I would suggest that it would be a mistake to think that all good developers don’t have interests outside of code.