The journey from a manual tester to an aspiring developer
Sweat, Tears & Code
I’ve been a manual tester for just over 5 years (3 of which have been at Domino’s), and since late last year I’ve been on a journey to learn testing automation tools such as SpecFlow in large projects. To understand how to use automation tools such as SpecFlow effectively – I’d need to learn development from the beginning. In the sense of ‘learn to walk before you can run’.
What I’ve learnt over the past year is that this is a long journey where the learning process never stops. There might be several mountains to climb – but it’s worth it.
Not only is it worth it to learn development to advance your career (especially considering testing automation is rapidly becoming the norm), but it also benefits your personal development as well. In fact, it’s inspired me to learn more about development in general!
I thought I’d make a post for those who are manual testers themselves who are going on a similar journey or those who want to learn development in general. I’m hoping this post has something for everyone.
Find a learning strategy that works for you
There are various ways to learn to code; bootcamps, websites, videos, books and mobile applications. With so many different options to choose from, it can be quite intimidating to find one that works for you. Honestly, take your time and look around at what’s available. I believe it’s important to find a resource that you can understand and that fits into your schedule. I’ve compiled a list below of resources that I have tried and my thoughts on them:
Codecademy – This is a very good resource in my view, it offers a web and mobile application where you learn by doing. It offers many tutorials for free. There is a paid version where you can see the full catalogue of courses – but the free version still offers an excellent range of courses.
Pluralsight – Pluralsight offers videos on a wide range of topics. Features instructors such as Troy Hunt (famous for security). Pluralsight offers a web and mobile application.
Mimo – This uses multiple-choice questions in a bite-sized format. You do need to pay to use this. Web and mobile applications are available (originally a mobile only application).
Learn Code the Hard Way – Honestly an amazing resource to learn Python and Ruby. The author, Zed A. Shaw, offers courses on other languages such as SQL and JavaScript. The Ruby and Python courses are free but the others are paid (one payment per course, no subscription).
Eloquent JavaScript – An excellent resource for learning JavaScript! Free to read online but there is a paperback version available as well. The website does have a code sandbox for you to practice your JavaScript in which is great. Definitely worth a read!
C# Programming in Easy Steps – I found this book to be useful, it gives you good examples of key areas in C#.
Remember to pace yourself
In my experience, don’t rush! It’s perfectly okay to learn at a slow pace if you want to. If something doesn’t make sense, go back and read it again or research it. You may find learning at a slower pace may suit you! There will be times where you will be working on something and you can’t get it to work – don’t panic! Take a break and come back to it, taking a step back might help you solve the problem you are on! Learning to code doesn’t happen overnight – take your time!
Don’t be afraid to ask for help
I asked my colleagues for advice on how to solve a problem and for what I should do next (in fact, it’s where I got inspiration to create a C# program that performs a GET request on an API to get currency rates). You can also go to online communities such as StackOverflow to get help and advice on any programming problems you are facing.
Work together
This goes hand in hand with the advice above, if you know anyone else who is learning development, ask them if you want to collaborate on a project together or share advice on how to tackle problems. It’s perfectly okay to work by yourself if you want however. There are communities online who want to help each other, such as the Codecademy forums.
Put what you know into practice – build!
If there’s one piece of advice that I give which I want to highlight the most it’s this; build! You won’t improve or learn unless you build! Honestly, build anything, even if it’s something simple like printing a list or an array. I created an account on GitLab and started to upload anything I built to it to create a portfolio of sorts. It’s important to practice whenever you can – what you’ve learnt won’t stick otherwise!
Impact of what I’ve learnt
Since learning more about development I can say that I’ve become more confident in working on more technical problems. I’ve even gone further afield in learning other automation tools such as Cypress. In terms of learning languages, I’ve had experience with C#, JavaScript (TypeScript as well), Ruby (Ruby on Rails as well), HTML and CSS. It’s been an interesting journey in learning software development, and I’m interested to see where it takes me.
Thanks for reading!