Yes all testers should learn how to code

Earlier this week I ran this poll on Twitter:

Out of 137 respondents, 55% think testers should learn to code and 45% think all testers should not learn how to code. My Twitter replies feed had a steady stream of maybes. So why do I disagree with 62 testers?

Last year I spent a few months doing research into the education technology space. I had heard something interesting – from this year, all Australian children as young as prep (5 years old) will start to be taught programming as a core subject at school. That means it is given as much importance in the school curriculum as other core subjects, like Mathematics and Science. This education in programming will continue all the way through to high school.

When I researched further, I found that the same was true of the UK and the US – programming is entering the core curriculum for all schools in these countries. Programming is seen as a skill that is essential for future employment for school leavers, regardless of industry.

Putting this into present-day context, it’s baffling to me that anyone working in the software development industry would consider programming as a skill that is NOT essential for their future employment. In just ten years, the first full graduates of this training system will be entering the workforce and they will all know basic programming. Ten years after that, it will be a skill in the workforce regarded as basic as Maths and Science.

So my stance on this issue is not opinion but earnest advice based on what I know. If software testers are interested in future-proofing their careers, they should learn how to code. If kids can do it, why can’t you?

Start learning online at Code Academy or Code.org or any number of others.

9 thoughts on “Yes all testers should learn how to code

  1. Hi Trish

    Great article!

    I thought I would add some counter information into the discussion about coding and especially for children. The issue I have is the use, or overuse, of the word coding. What does this actually mean? in psychology we are coding and decoding all the time, speech, movement, language. Coding is being overused and becoming a political beating drum for politicians to say ‘we need all our kids to code otherwise they will not be successful’ Is it coding that they need to learn or problem solving skills, critical thinking, analysis, creativity? Coding is part of all of this and yes providing children with these building blocks by means of adequate learning, using coding as a mechanism is useful.

    I was taught coding when I was in school, over 30 years ago, can you guess the language we used? Cobol, Basic and logo. What was the most benefit from this? Leaning to work out flows, logic and problem solving, hey that now sounds like what testers do? Learning coding as a skill is secondary to learning about how to solve problems and develop critical thinking skills along with communication, creativity and many other, what would classed as soft skills.

    Technology changes quickly and if these coding lessons are focusing on the language rather than the basic of structure of code, syntax, regular expressions, UX and so forth then by the time those 5 years leave education the skills are forgotten and irrelevant.

    The future of work is changing where knowledge, information and creativity becoming more valued than the ability to churn out lines and lines of code in a production line system.

    So yes I agree with you in the sense of keep learning and updating your skill set. The following statement you make near the end:

    ‘If software testers are interested in future-proofing their careers, they should learn how to code’

    Would be a lot better if changed slightly.

    ‘If software testers are interested in future-proofing their careers, they should learn to understand the structure and syntax of code or learn some skill which provides value to the team/company. ‘

    I think most importantly is to find what differentiates you from the crowd.

  2. Hi John,

    If you would like to learn more about the curriculum in your country you can find out more information from government websites. In this context “coding” means “programming” for computer software. Regardless of what anyone believes about children needing to learn how to do this, it’s something that’s being taught now and it is something that will become a basic core skill for school graduates. From a career perspective, at some point in the future it will be detrimental to anyone’s career in software development if they do not have this core skill.

    I agree that you need to differentiate yourself from the crowd. My point is that the crowd is changing.

  3. Hi again Trish

    There is a lot of evidence that implies learning just to code could be counter productive. Learning about computer science and algorithmics (The science of solving problems by devising and analysing procedures) could have far more benefit to children. Also the quality of the teaching is dubious, learn by rote, line by line, is not real world programming.

    What about learning about software development and all that that entails? Again I do not wish to disagree but feel knowing how it works and being able to improve and create your own is far more important that learning to write lines of code. As a add on to computer science and problem solving skills coding has a part to play but the focus solely on coding IMO is wrong.

    Some reading for ya:

    http://theconversation.com/a-bit-of-coding-in-school-may-be-a-dangerous-thing-for-the-it-industry-42259
    http://www.alphr.com/news/education/387319/children-should-be-taught-computer-science-not-programming
    http://time.com/4261554/why-schools-should-teach-more-than-basic-coding/
    https://www.wired.com/insights/2015/02/should-we-really-try-to-teach-everyone-to-code/
    https://davidbuckingham.net/2015/07/13/why-children-should-not-be-taught-to-code/

    Wow, this now means I do not have to write the blog post I had on the back burner ;) Thank you for the impetus.

  4. Hi John,

    Again, I need to stress that I’m not debating whether or not kids should learn to code. The fact remains that this is happening. And again, the curriculum may include more than just programming and indeed include the concepts you mention but I will leave that for you to research yourself if you are interested. I am not interested in defending the planned curriculum. If you wish to take issue with this I suggest you take it up with your local member for parliament.

  5. One of the best reasons for a tester to also be a coder: it can help keep us humble, b/c the code we write *will* have bugs. So we can learn un-self-righteousness.

  6. Hi Trish! Thanks for your article. My argument for why testers should learn to code is because it gives them a really valuable set of tools for their testing toolbox. I don’t believe that test automation is an answer for everything, but it is definitely a way that we can reduce the time we spend doing manual regression testing, which frees us up to do manual exploratory testing, performance testing, security testing, and so on. I have met manual testers who didn’t want to learn how to code because they didn’t see the reason for it, and I have met Software Test Engineers who had been working in automation for so long they couldn’t remember how to do manual testing. Both of these groups are only testing with one half of the toolbox! I believe testers should learn to code while still keeping up on their manual skills.

  7. Great post! Testers need to learn how to code so they can automate some test cases that will be too mind numbing. For example, for an agency that handles data, imagine having to manually check every single input and output – It is not sustainable for the business and the person doing the manual work. However, it is also important that testers also keep up with what the user needs. For example, an excellent tester can stop the waste of people’s time when they know that a release is not solving an issue of a business. Why should the tester do something that will not be beneficial or will cost the business more in the future? The excellent tester know the expectations of the users and their needs. A blackbox testing approach will give a different perspective to a programmer and more likely to anticipate risks that the programmer has missed.

Comments are closed.