I was asked this question recently by a manual tester who wants to make the change to test automation in the future.
He is not looking for immediate results and is willing to invest time and money in the process.
He also wants to learn skills that would be good not only in 2020 but also in 2025.
I answered him that this is how I would do it.
What follows is not easy to do and it is not for everyone.
It requires dedication, hard work, motivation, lots of time and money.
To train for a test automation job, you do not start with the test automation libraries such as Selenium. No, you start with the programming language.
The most important skill is the programming language.
Learning how to use an automation library (or any library) is a very easy task once you know the programming well.
Start with free resources.
Such as the ones offered by FreeCodeCamp.
First, take the HTML course to learn what HTML is and what it can be used for. This is great knowledge since all websites are made with HTML.
All courses have chapters with theory and exercises. The best thing is that the exercises are done online and, if your solution is not correct, you will get hints that point to the correct one.
Next, continue with the CSS course. If web pages are built with HTML, CSS is the language that makes a page beautiful by adding styling to all HTML elements.
The FreeCodeCamp courses are fairly effective if you put the time into them and , most importantly, do not give up.
But they are not sufficient in most cases.
This is not a typical programming book.
It does not matter if some things you already understand. Read the book page by page, chapter by chapter even if some topics are familiar so that, by repetition, they become solid.
This is a good course to start with but there are many others available:
Are you ready now?
The next part is one that is expensive and truly hard.
But you don’t have practice yet.
You may say that you can do the practice alone and figure out the solutions to the problems that you encounter by yourself.
You can try that but it may be a very hard, very stressful and very time consuming activity. Your chances of success will be higher if you do not do this by yourself but find a mentor and a group of people that have the same goal as you.
Instead of practicing alone, I suggest that you attend a coding bootcamp.
Such as this one.
It will teach you other skills such as unit testing (with Mocha and Chai), front end development with React JS, back end development with Node.JS, software architecture and databases.
At the end of it, you will be ready for the development job that you wanted.
Or the test automation one :)
The investment is significant in time and money but totally worth it.
A test automation full time job starts at approximately $70.000 per year in Canada. A similar job on contract starts at $40–50 per hour.
It will not be long until you cover for your financial investment and do the job that you wanted.
This is how I would do it.
This article is just an advice to myself if I would be a manual tester that wants to learn programming.