“Learning to code gives you a completely new perspective when you look at a computer. Before, you think of it as an appliance — like a fridge — accepting what it can do. After, you know that you can code that computer to do anything you can imagine it doing.
That’s a massive change … and a massive challenge!”
– Sir Tim Berners Lee , Inventor, World Wide Web
The idea that we must all learn to code has gained currency in the past years. There is a big movement to motivate people from all walks of life to learn to code. It can be for kids to get a head start or for adults to change career paths or simply to discover the inner geek. Some people have gone further by saying that learning to code is a life skill for people to survive in the brave new digital world. Of course, there are some people who are sceptical and believe that coding is a specialised skill and not for everyone So, is it another passing fad or is there a convincing argument?
My Experience As A Tester
I wanted to share my experiences with coding from a test practitioner’s point of view. Personally, I find my development background extremely useful in areas such as test automation , DevOps and development quality. You should consider Test automation , which is the most obvious extension of a coding hobby that we can apply in our day to day jobs. The wider DevOps and engineering practices of Agile is an exciting area where one can explore and try out new tools and services ranging from environment virtualisation on the cloud using bluemix to continuous integration using jenkins. Or in the area of Development quality, one can have far more meaningful conversations with developers on topics such as code coverage, unit testing, security assurance etc.
My Experience As A Developer
I don’t consider myself a core developer anymore because the last time I coded for an enterprise client was probably back in 2004. But I do try to keep in touch with the latest development practices and approaches along with the testing trends and with the increasing adoption of agile methods by our clients , the dev and test worlds are merging and better appreciation of the coding world will only increase the affinity between developer and testers. In fact a purist agile practitioners proclaim that you just have ‘team members’ in agile teams – not developers, not testers.
Whether you subscribe to such a school of thought or not, increased collaboration with development is the order of the day. We all know that collaboration with development teams to encourage up stream quality is a critical aspect of shift-left philosophy. Imagine how effective you can be when you speak the dev. language?
Learning to Code for Software Testers – What Resources
There are a number of resources that you can use to learn to code. IT will take time but even if you start with some of the links below, they will get you started. So where to start? Well here are a few suggestions:
Khan Academy
The Khan Academy has some great resources, all free for coding. Their hour of coding tutorial is an easy follow and will give you the confidence to start to tackle some proper coding.
Code Academy
Similar to the Khan Academy, the Code Academy allows you to code interactively with others. It is also free and another great place to start.
Code School
Like the above Code School teaches you how to code. Code School is different in that it features a lot of languages to learn with including HTML/CSS, Ruby, .NET, PHP, Python, GIT and more. All classes feature video lessons and coding challenges.
Team Tree House
Again a home for online learning, Team Tree features languages like Ruby on Rails and gives you the chance to put what you learn into practise fairly quickly.
Dash
Dash is focused on web development. The website features classes on HTML, CSS and Javascript. Each class is built around fun projects on a simple interface that is accessible from web browser.
Smart Scholar
Smart Scholar is a great source of information. It will help you on your computer science journey. Inside you’ll find myriad resources to help expand your understanding of this wide-ranging field of study.
I hope this list of tools helps with your desire to learn more about programming and it might aid help with learning to code for software testers everywhere.