It has been years gone by since the last time I code and I got the feeling that I need to go out of my comfort zone. I realized I need to start something new as technology keeps evolving, and I found it is good for QA to have automation skills. Then here I am learning new things starting from zero, learning to code again.
Back in the day, my mind always thought once I learned automation I should be able to create a few scripts in a fast moment. Things turn out different, to even create a script I need to have the foundation on understanding code structure, git command, how to select objects, and so forth. From here I can take the red line that before I do something as a whole, I need to have strong foundations. It is just like building blocks.
Looking at that I believe it is okay and better to start small. I am also sure that once I get deeper on each little step it will be easier to move forward. One step at a time helps me to achieve small goals progressively, which can keep me rolling. It results in the thought that every day I am progressing. Imagine if every day I think I should be able to create an x number of scripts, I can end up getting overwhelmed and exhausted since I am not used to creating XPath, assigning objects, and creating keywords.
So in this post, I will share some tips on how I learn automation which may apply to other subjects too. We can start some actions to start learning new things to achieve learning that is having a solid foundation together with how to break down tasks.
Find the expert
Rather than at first wander alone looking up for resources, talking to someone who knows more is always the best idea. A person who is already highly skilled in automation can explain the idea better and can give the right direction on where to start. Afterward, we can start to note down the steps needed. Well, I also believe they are as stoked as us since somebody is eager to learn new things and make an effort to go to them to seek advice.
Create our own tickets

Once we know where we should start, we can create a mind map or create tickets containing some to do we need to achieve. Make it a realistic goal. If it is too far-fetched to reach we can always have one main ticket for the task and create subset tickets. As an example, I want to start to review my code. While reviewing, it is not only functionality that is being checked. It is also about how I do the naming and how I create data. Learning from that, I can make a ticket titled “Code review for X feature”. It also will have another ticket as a subset. For example, “[Code Review] check on file naming”. Once the subset ticket is finished we can move the main ticket too. Doing that will make me put more eyes on each step in the review. This is not applicable only for tasks but we can create tickets for things that we might forget too such as; create documentation on how to create an array and ask questions about setting up test suites. It might sound so simple, but we often neglect to document it as we think we do it daily. It is actually okay, but knowing that I do not easily remember a thing I need to note down everything, and creating tickets really helps me to see what I need to do. I find it useful since each ticket will give me more context on what I have done, make it easy to track things in case I stumbled upon difficulties ahead, and give me satisfaction once I move it to “Done” status. It gives me a picture that I am moving every time, and I did. Doing this also makes me not rush into expecting that I need to understand everything already. It is always good to pause, break down small things, understand the basics, and aim for good enough. In the future also we can just search some keywords related to the ticket to let’s say debug an issue.
Note our findings in the ticket

In correlation with the previous point, tickets created will have all my findings. It can be images, code snippets, questions, bug fixes, solutions, verification parts, and so on. With all that inside, the learning can be well-documented and easily tracked for future reference.
Create a collection of documentation files
While tickets created are to make us easier on tracking our day to day task better and report findings related to the ticket, the collection of docs is as important as the tickets for our guideline. It can be about concepts, how to fix something, git commands, and many more.
As we just learn new things we tend to forget what we have learned days later. We can try by creating a scrappy note while somebody explains and also when we found an issue. Then we can always fix the note so it would be more proper to read on and also for us to recall and get in-depth on what was being explained.
Technically doc files and tickets share the same purpose but to me doc files generally more towards basic concepts that I need to keep remember all-time the when doing automation.

Explain back the material we get
Some said the proof that we understand something is that we are able to deliver a talk about it in a simple manner. There are two ways that I usually do that might be work on others too. Firstly, when the mentor or colleague explains something and it really takes time for me to digest what it is about, I try to always ask questions if any, or try to explain back to them using my way then let them decide whether my explanation is correct or needs improvements. The next one usually I do when things are clear already and I am afraid I wouldn’t be able to comprehend or remember it well. I will take notes and will also do a talk to myself to keep repeating what I have learned using my style of talking. Sometimes I just talk to myself or if I found it really necessary I will also record it over voice recording on my phone.
Keep the glass half full, be curious
In learning everything, keeping our glass half full is important because we leave half of it for questions and answers or room for improvements. I know that sometimes it is hard to ask questions because sometimes we are also not even sure what we are doing or we feel we know enough already. So in the case of learning coding, the key to keep asking more questions is to keep going. You will discover more and more new things that we are often unsure about and it will open room for questions.
Timebox and ask for help
This is traced back to what I have mentioned before this. Goals are set to smaller chunks, but also we need to timebox it. We can set a deadline per ticket. If after a few hours or days we keep working on that ticket and get stuck, then it is time for us to start asking people. This was also the tip that was given by my friend. Back then I was so keen to solve an issue that I spent two days or more solving it. Well, in a way, it is good but if let’s say we are tied up to another task to do or there’s a time given for us to explore automation then trying to solve everything by ourselves is not a good way. So, keep being curious by asking lots of questions and help hence the learning can keep rolling further and at the same time become efficient and faster.
Present our work to our colleagues to gain feedback
After we finish a task as a beginner higher chance our code will have incorrect naming, redundant functions, and such. It is good if we can have a session where we will present our work and explain it to our peers. Doing this can make both sides have a clear picture of what is lacking and also what is being done correctly. This session is also proof that we have spent the time to try ourselves and also to measure our level of understanding.
To conclude, we can break our goals into smaller tasks, timebox it, and aim for good enough. Try to always keep the glass half full so we will always have room for improvements. Breaking our goals into small tasks also helps to get things done correctly since the first step as we are not rushing to be able to understand everything as a whole and helps to keep moving as each task is measured to be achievable with the current level of knowledge. All in all, the steps above are not limited to learning automation only, it also can be applied to other areas too. So, good luck and keep on learning!.
Know our Super Writer:

Nadhira
Nadhira is a QA Engineer who has been working on Fave for two years. Besides manual testing, now she is widening her skills in automation. Believes that to keep on learning is the motto to keep moving. Love to share some of her thoughts or lessons she got in the form of writing.
