The one with coding challenges for newcomers

Posted on December 19, 2016

In the following post I will talk about resources for getting confidence in coding as newcomer test automation engineer

Target audience: QA Automation engineers / QA Engineers

The lack of coding experience and the ways how to get it

In many situations, when it comes to newcomer engineers in test automation, the lack of confidence in programming skills can be noticed among them. Especially, if the tester does not have an IT background at all.

Newcomers learned some basic syntax of programming language, knew how to use IDE for writing the code. Or they even created some basic scripts on Selenium IDE / WebDriver for opening real browser.

But such testers are still don’t know a lot of things in programming: where and how to use data structures and algorithms in their code, how to write code in the clean and maintainable way, how to apply design patterns, etc.

At this point a number of things can be done in order to get confidence in coding:

  • Find and read a lot of books on chosen programming language, algorithms and data structures. As these books are often really large - it can take a lot of time to read and understand them properly;

  • Choose an idea and build several applications, which actually can be usable by other people. Even if such applications already exists - just create it from scratch;

  • Find the resource for learning and practice basic knowledge of programming and get a hands - on experience in solving an real problems;

The list of resources to the rescue

You can find a list of resources for practicing below. (This in only my preferable choices - I have recommended it to a lot of newcomer testers):

Hacker Rank - platform for solving programming challenges. It includes a various programming languages, such as Java, Python, Ruby, C++, as well as separated computer science fields: databases, data structures, artificial intelligence. Users can also participate in contests. A lot of companies use the platform for hiring developers - so users with high profile scores will be noticed;

Code Eval - the platform for programming challenges and hiring developers. it is pretty similar to Hacker Rank, but does not have anything, except of coding challenges. The challenges are divided into three groups: easy, medium and hard. Newcomer can start with solving easy problems. Actually I have used some knowledge gained in challenges in my day - to day test automation activities. More specifically - some challenges will teach a newcomer what is algorithm efficiency and why it matters. Even in test automation;

Coding Bat - resource for real newcomers. It contains only Java and Python exercises for simplest themes of programming. I highly recommend this resource as a starting point in gaining confidence in coding;

Project Euler - useful resource if there is a need in solving mathematical problems. It is even possible to get a certificate, if enough challenges will be solved;

CheckIO - the platform for solving challenges in a form of game. Only Python or Javascript can be used. But the challenges are quite helpful.

Conclusion

Of course, there are a lot of similar resources can be found in the web. it doesn’t matter where the knowledge has been gained - but how it is used in real world problems.