9 Misconceptions People Have About Programming
Since programming was first conceived of as a field by Ada Lovelace over 150 years ago, it’s gone through many iterations. Programmers in the early to mid 20th century were typically women, with programming being seen as an extension of secretarial work; the act of programming a computer akin to typing up a letter. But as computers became more accessible, and especially as home computers became increasingly commonplace, a new stereotype developed: that of the lone programmer, inevitably male, stuck in a basement coding something repetitive and of interest only to himself and a few similarly nerdy friends.
As the 21st century continues and more and more people make their fortunes in tech, programming is starting to look cool. Even people with no intention of making a living in programming feel the need to understand something about it, much like someone who has no intention of becoming an interpreter might still want to be conversational in a foreign language. But popular interest in programming doesn’t necessarily translate to popular understanding of what being a programmer – or even doing a bit of coding as a hobby – entails. Misconceptions abound; here are nine of the ones we encounter most often.
1. It’s boring
Boringness is in the eye of the beholder, of course; what one person finds fascinating, another may find desperately dull. But there are stereotypes around programming – that it’s repetitive, painstaking work that’s best enjoyed by the kind of people who also like trainspotting and accountancy – that are simply untrue.
At the heart of programming is problem-solving. There’s a task that needs doing, and you have to figure out the best way to write a program that will solve it, or to adapt someone else’s program so that it does the additional thing that’s needed. Yes, this can be painstaking and fiddly – for instance, there are moments in programming when your code does 99% of the things that you want it to, and you can’t figure out what’s going wrong 1% of the time, so you have to comb through all of it looking for the mistake. But more often it’s like being tasked with finding the solution to a logic puzzle, with the additional satisfaction of knowing that you might be the first person to put these puzzle pieces together in this particular way. And when it all comes together and works exactly how you wanted it, then you’ll be far from bored.
2. It’s a skill for smart people who are amazing at Maths
Perhaps because of the way that STEM subjects get lumped together, there’s a misconception that the same kinds of people do well at programming as at physics, mathematics or engineering. In reality, while there’s some overlap, there’s just as much overlap as with any other subject that requires problem-solving, logic and analytical abilities, such as philosophy or law, neither of which are traditionally associated with the same kind of skills as programming is.
Nor does programming require you to be some kind of genius. It’s important to be able to think logically and work through a problem methodically – if you’re the kind of person who loves to cut corners and jump to a conclusion even when you’re not sure it’s correct, then you may not be all that well suited to programming. But if you’re someone who is patient and who doesn’t get disheartened when you encounter something that you don’t know or can’t do, but instead you do your best to work through the problem and find an answer, then you may well turn out to be a good programmer no matter what your IQ is.
3. It makes you a bad programmer if you can’t write everything for yourself
When you start learning programming, you typically begin with the absolute basics. You might start by learning different variables, or by creating a program to do something really simple like multiplying numbers or displaying different shapes on screen. In the process of learning, you’ll probably go through all of the different steps for yourself, and the idea of copy-pasting something that someone else has written will seem like using Google Translate for your French homework; one, it’s cheating, and two, you won’t learn anything that way.
And this is all true at the point when you’re focusing on learning. But it’s not the case for when you’re focusing instead on writing code for a particular purpose. Your job is not necessarily to write your own brand-new code – you’re not being asked to write a short story – instead, it’s to produce the code that will solve whatever problem needs solving. And for that reason, the internet is full of sites that provide snippets of code for particular purposes, and it’s both acceptable and normal to copy and paste the bits you need. Your role is putting them all together in a clear and logical way that also addresses the task required of you – which is typically much harder.
4. All programming languages are the same
When you’re trying to decide which programming language to learn, you might not worry too much about the decision, because you might have encountered the misconception that all programming languages are the same. At heart, procedural programming languages have the same basis – but that’s a little bit like saying that Germanic languages come from the same root. Yes, if you speak German, you’ll probably be able to read Dutch, Swedish, Danish and Afrikaans. But that’s very far from meaning that German and Swedish are the same. Different programming languages are suited to different tasks; while there are tasks that you can achieve in most languages, they’ll definitely be less annoying in some languages than in others.
5. Being a programmer is anti-social
It’s certainly true that being a programmer can be anti-social. It’s a job that can be done in almost any location, so if you want to work in a basement on your own and only communicate with your colleagues via Skype, then programming could be right for you. On the other hand, that’s also true of freelance graphic design, which doesn’t have a reputation for being anti-social. And in both cases, the role doesn’t have to be. Yes, you’ll spend a lot of time working on your individual projects, but those projects are likely to be part of a greater whole. As a result, you’ll also spend time collaborating with colleagues, sharing ideas, and generally being social. While it’s a perk of the job that it doesn’t have to be done sitting in an office, that doesn’t mean that you have to work all on your own, locked away from the rest of the human race.
The same is even more true of coding as a hobby. You could join a class to learn programming – hopefully making some like-minded friends along the way – and then look at events like hackathons where people get together to solve challenges with technology, especially coding. So there’s no reason to sit alone in front of your laptop unless you want to – and even then, you’ll have access to the vast and sociable community of programmers online.
6. Coding isn’t creative
Coding is creative in the same way as writing is creative: it depends on what you’re doing with it. There’s nothing much creative about writing a shopping list; there’s some creativity writing a report or an essay; and there’s a lot of creativity in writing a short story or a poem. ‘Writing’ simply describes the process of producing something that could require creative flair, but might not. It’s much the same for coding, where some tasks are likely to be unexciting and routine, while others will require problem-solving and creativity to bring them to life.
What some programmers find particularly spurs their creativity is that in coding, you have a problem to solve and you have the tools – your code – to solve it, but the steps in between are up to you. It’s a bit like writing a poem where you know the topic and you know you want to write a sonnet, but the rest is limited only by your technical abilities and your own imagination.
7. Programming is about completing tasks, not communication
There’s a reason that they’re called programming languages. Programming is in fact all about communication, and it’s not just about you communicating to the computer what you’d like it to do. Programming is also about communicating your intent clearly to other programmers. One university’s programming course even begins by asking students to create a completely incomprehensible program. It has to achieve a particular task but be utterly opaque about how that task is achieved; the opposite of the straightforward, elegant programs that are usually the hallmark of someone who can write good code.
The next lesson? Students have to swap their hideously complicated code with each other and disentangle how the program achieves its goals. This underlines that programming isn’t just about you carrying out a task in your own little box. Other people will have to work with your program in future – adding to it, modifying it – possibly long after you’ve retired, and you don’t want them to be cursing your name. A program that is so fiendishly complex that only you can understand it is a bad program, not an impressive one.
8. You need top-notch computer skills to be a programmer
Programmers are sometimes also IT nerds, but that’s a matter of correlation, not causation. If you want someone to figure out why your laptop won’t talk to your printer, you might not want to ask a programmer. IT and programming are two very different fields; someone can be an expert in how to make Windows run happily and speed up a buggy laptop, and not have the faintest idea how to write even a single line of code. And someone can conversely be a skilled professional programmer and wonder why their computer stopped working after they used the DVD drive as a cupholder.
That’s not to say that a good knowledge of IT won’t be helpful for you as a programmer, as it would be in just about any area of life. But on lists of important skills for programmers, perseverance, patience, the ability to self-motivate and a good grasp of logic all come much higher up than a knowledge of how and when to reformat a hard drive.
9. Programming isn’t relevant to your career plans
Maybe four-fifths of what you learn in school won’t be relevant in your future career. The difficulty is working out which four-fifths those are; any guess you make now is likely to be proven wrong. If you’ve decided that foreign languages are useless, you’ll probably end up in a position where your company wants to export to a foreign market that prizes businesses that communicate with them in their own languages. Disdaining maths is a sure-fire way to wind up with a job that requires lots of statistical analysis. And if you’re determined that close reading in English literature is a waste of time, you’ll undoubtedly be stuck trying to figure out all the ways in which your new marketing campaign could be misinterpreted.
Much the same applies to programming. We don’t know what the future will hold when it comes to technology, but it’s probable that people with an understanding of programming will continue to be in high demand even in careers where programming isn’t a focus. Think about how being able to type was a skill for a specific career fifty years ago – and an essential for a majority of careers now. The future of programming may be more similar than you expect.
Images: two people discussing programming; frustrated woman biting a pencil; a computer programme with images: programmer surrounded by friends; laptop screen showing code; mathematician showing a problem on a board; bored girl using a laptop;