Ok, if you just read the title and thought ‘Hardly the most original idea for a blog!’, then I do not blame you. There are dozens of articles headed ‘The 7 Sins of Programming’, but here’s the thing – most of them are simply a list of bad practices. They have little or nothing to do with the actual 7 sins of the Bible, and no reason in the world why they should be precisely 7.
Today we are going to do something a little bit different from all those other blogs – we are going to take the question seriously. That is to say, we are going to explore the ways in which the original 7 deadly sins can manifest themselves in – and how they may damage – a programmer’s work and/or career.
Let us go ahead, then, and cast the first stone! Our list of sins begins with….
Envy is probably not going to be a big problem for you if you’re working for a large company, in which you are assigned set tasks and paid a fixed salary. But it can spell trouble for those who wish to go solo and enter the world of tech as entrepreneurs.
While entrepreneurs of all stripes will of course benefit enormously from learning how to code, there exists a particular culture surrounding the mythological “tech start-up” which is not always healthy (and which is certainly not the same as that of a regular small business). Because there are so many stories of new startups becoming unicorns overnight and turning their founders into billionaires, newcomers often aim straight for that model, instead of building their business in the way that would best suit their product (which sometimes means slowly, gently, and patiently).
These people are often saddled with fantasies about creating ‘the next Airbnb’ or ‘the next Uber’, and as a consequence they put ambitious imitation before intelligent business decisions (never mind genuine innovation). By far the worst cases are those of people who attempt to copy not just business models but entire ideas, creating for example a dating app that has a few original features but is fundamentally just another version of Tinder.
At the heart of every successful startup there is an original idea. Don’t look at what others have accomplished and think that you want to have that too. Create your own things, and build them in the only way that will make them any good – your way.
The people in tech who most urgently need a wake up call about their greed are probably not the sort who will read this blog – namely, that super-wealthy micro-minority who infamously exploit workers and dodge taxes.
But it would not be true to say that more ordinary people cannot fall victims to greed.
Indeed, for the average developer greed manifests itself as forgetting the human. Not everything that tech brings to the life of people is good, and not all of it makes society better. I’m not just talking about the most obvious examples, like software that makes military drones better at killing. There is an entire realm of tech that is dedicated to addictively grabbing and keeping people’s attention. Because of it, social media platforms can become anxiety-inducing time drains, while news sites are turned into populist echo chambers.
All of this is enabled because, sadly, many in the tech industry only think of the work they do in terms of the returns it brings to them personally, and neglect to consider its broader ethical dimension.
True, occasionally times are tough and you’ll need to take whatever job you can get. But you still have a responsibility to ask yourself if the job you’re doing is going to actively exacerbate the problems of others. Putting your personal profit above that of your community as a whole is the very definition of greed, and when enough people start thinking that way, the result is that Planet Tech turns and shows its darkest side.
There are myriad ways one can be lazy when writing code, and it would have been only too easy to pick any passive bad habit and hold it up as the pre-eminent example of the sin (e.g. “people who don’t bother to properly comment their code are clearly being slothful!”).
But this would not really make for the best case study. Instead, the true negative consequences of sloth for a developer do not come in the form of poorly written code, but in that of career stagnation.
The industry of tech is characterized by constant innovation, with new technologies and programming languages falling in and out of favour all the time. The modern professional programmer is therefore a figure who never stops learning and updating their skills, whether through their work or outside of it. Job-hopping is relatively common among developers for a variety of reasons, but one of them is the fact that developers who reach a point in their job where they are no longer learning anything new have a strong incentive to move on.
Somebody who does not do this, and prefers to rest in the comfort of the skills they already have, will see their employability and their salary ceiling slowly (and sometimes not so slowly) being eroded. If their specialism is in a technology that has become obsolete, their experience may ironically work against them rather than for them. All the while, sloth will whisper in their ears not to bother, and to stay nice and put. Remember that there is nothing, but truly nothing, that sloth hates more in a programmer than seeing them learn new things.
Pride, the original sin, is ubiquitous among tech professionals. Being proficient with technologies which the vast majority of the population doesn’t understand can lead even the most naturally modest of individuals to grow a bit of a smug attitude.
Perhaps surprisingly, the negative consequences of pride are less about the effects it can have on teamwork and workplace atmosphere than they are about the quality of the work itself. Boastful and condescending people will become unpopular, sure, but they can usually get away with a bit of a bad attitude if they do deliver consistent success, excellence, and outstanding quality.
The trouble with pride, however, is that it sows the seeds of its own ruin.
Developers who are too proud of themselves will make a number of mistakes, some of them as basic as failing to run unit tests out of the misguided belief that when it comes to their work, these are simply not necessary.
The solutions they come up with may be unnecessarily convoluted or complex or difficult to maintain. Their frame of mind – the very thing which originally made them so proud – will slowly grow rigid over time, so that they will rely increasingly on the same technologies and tools, believing the proof that these are excellent lies in the fact that they use them (and not the other way around).
There is, unfortunately, not much that can be said to help these people – pride notoriously shuts down feedback coming from the outside. The only cure is for people to suffer the consequences of their pride, and see with their own eyes how their efficiency, their creativity, and their productivity have all been reduced. If they’re not too proud even for that, anyway.
Lust is not commonly associated to programming and the IT world, but the reasons for this disconnect are the same reasons why it’s actually worth talking about about it. True, sexual desire is unlikely to affect your ability to write code, whichever way you choose to live it. But it can have tangible effects on the atmosphere, cohesion, and functionality of the team you’re in.
The world of software development is unfortunately still very much a man’s world, with the latest survey on Stack Overflow suggesting that men made up a whopping 91.67% of professional developers in 2021. Why this is happening – and why this absolutely is a problem – is a much broader topic than this blog can hope to address, but we can highlight one very relevant fact: when men are in the company only of other men, they will engage in behavior they normally wouldn’t adopt in mixed groups (or, in more technical terms, gender-segregated communities develop behavioral differences – and of course this principle holds true for women as well).
The most obvious and common example of this is how men talk to each other about sex. Thus, jokes that are especially crude and offensive are usually just an effect of our powerful sex drives looking for an outlet – aka, our lust.
If you are among that 91.67% of male programmers, I would encourage you to consider how a woman may feel when entering an environment where the standard mode of interaction is man-on-man communication. Sure, perhaps making a quip about boobs with the guys may feel natural (or even welcoming) to you, but to that lone woman in the room who overhears you, it’s much more likely to make her uncomfortable.
We’re not trying to say that you shouldn’t joke or laugh in the office, of course, only that you put yourself in someone else’s shoes when doing so. And if you really want to be a good person to them, then put your lust in check. At least on the workplace.
Getting angry while coding is a very common experience. Coding can definitely get very frustrating, and, to paraphrase Yoda for a moment, frustration leads to anger.
Unlike pride, however, wrath is unlikely to damage your productivity. Sure, it may occasionally lower your focus, which means finding that one bug that is dancing Salsa on your nerves may take a little bit longer, but that’s about as far as it goes. The temptation to throw your computer out of the window will – I sincerely hope – remain a mere temptation.
Where you do have to be wary of wrath as a programmer is when dealing with non-tech people, be they colleagues or clients, or else with junior developers. If you’re working as a freelance web developer and halfway through your project your client asks that you reinvent Google Maps and integrate it into their website within 3 days, the correct response is not to tell them that that’s the stupidest thing you’ve ever heard and that they should read an article about how software development works for once in their lives. That may be true, but it’s still not what you should be saying.
Angry people usually have a lot of trouble seeing things from the perspective of those they’re angry with. When you work every day with technologies that, as we mentioned above, are outside most people’s sphere of knowledge, you tend to lose touch. Thus, when someone you’re working with does or says something that, from your perspective, seems incredibly stupid, that’s the time to take a deep breath and correct their mistake politely and with a smile.
Letting your anger get the better of you is only going to isolate you within your team, put you on the bad side of management, and make sure that clients will not call you back. Remember, tech is not pop culture, it’s a field of expertise – don’t get angry at people for not sharing yours.
… Actually nothing. There is no way of discussing the sin of gluttony in a way that is both relevant to programming and also true to the topic, not without a massive exercise in clutching at straws.
Go ahead and eat what you like. It’s not going to make you a worse programmer, I promise. Call it one of the perks of the job.
And that concludes our overview! I hope you enjoyed this (attempt at an) original take on the topic of the 7 deadly sins of programming. Its main purpose was to make you better at your work, but if it also happens to save your soul, well, please do save a seat for me up in heaven!