Learning to Code? QA (Quality Assurance) Might Be A Good Place To Start.
Tags: beginners, career, codenewbie
Published: 2021-01-24 20:12:01

_this article was originally posted on my personal site [here](https://www.jason-sigler.com/blog/start-in-qa)_



Before becoming a software developer, I became a QA automation engineer. I had just switched majors and had a couple of CS classes and a basic understanding of javascript under my belt. I found a small software shop near me that was hiring an automation engineer, and I was lucky enough to have landed the job despite little experience with development. To say that it was like drinking from a fire hose would be an understatement- I had to learn _what_ an automation framework was, how existing frameworks like Webdriver.io worked, how to modify the existing React codebase to accommodate my tests, what in the world agile was, and how to use industry-standard tools like Jira and Github.

Eventually, I moved on to a new company that would provide room to grow. My first job paid horribly, the developers were not helpful, and my overall long-term stability was questionable. However, the experience was invaluable to my career growth. I eventually landed a position with a new company that was supportive of my career goals and always willing to let me participate in company hackathons and other engineering tasks. A little over a year later, I was hired as a software engineer. 

I always suggest that would-be developers keep the QA field in mind. The salary is typically good, they are almost _always_ in demand, and it will give you  industry experience that can really help launch your career (or even be a new career path you hadn't thought about).


## What types of QA roles are there?

There is no real standard when it comes to QA job titles, so it can be confusing unless you pay close attention to the job description. However, there are 3 general categories that I group these jobs into:

  1.  QA Analyst

      This is a generic term for a manual tester and is often interchangeable with the titles 'QA Engineer' and 'QA Tester' (or something similar). This job generally consists of performing manual tests of a product. You will often be testing a story or task for bugs before sending it off to the product owner for acceptance. These roles don't pay _quite_ as well, but there's always an opportunity to learn and grow.

  2.  Automation Engineer

     This often turns out to be a hybrid manual/automation position, although the amount of automation vs manual testing will be very company-specific. In this role, you'll be responsible for writing automated tests that will run against the front-end of a product. If you're working for a large, established company, you'll likely be adding to a large existing framework. Conversely, a startup might require much of the framework to be built out in parallel with development. This is a wonderful way to learn and build your coding skills, especially if you're working with an experienced team. If the company has truly embraced test automation, you'll learn a lot about Continuous Integration (CI) and Continuous Delivery (CD).

  3. SDET

     This is sort of a strange role that has no specific definition, but an SDET (Software Development Engineer in Test) is more of a developer-automation hybrid that has been called the 'unicorn of the QA world'. This is a QA professional that is both capable of development _and_ writing automation, unit, and integration tests for a product. While role definition varies wildly, some companies consider their automation engineers SDETs.


## What do I look for in a company?

If you're looking for a QA role,  you want to find a company that knows exactly how QA fits into its engineering process. You may find a surprising number of smaller companies that know that they _should_ be running automated tests and/or have quality assurance systems in place, but don't know how to implement them. You could be working on test automation with no clear vision of how they'll be executed. Always try to tease out this information during interviews.

You should also find a company in which there's room to grow. You may find that you love QA and want to make a career in it, but if you have any inclination of moving into a development (or product owner, etc.) role, you should communicate this early on. Developers should be willing to teach, and you should have access to pull requests, etc so that you can learn by reading code and getting involved in the process.  Ask lots of questions about how they mentor, if there are any learning opportunities provided (Pluralsight, etc.), and how they feel about QA in general. Ask lots of questions, and don't be afraid to zero in on any red flags.

## What Do I need to know?

You should have a solid grasp of javascript and at least one web framework (React, Angular, Vue). There are plenty of free resources available on the internet, as well as some solid courses on Udemy if that's more your style. While companies using Angular will be pretty much locked into Protractor for their testing framework, Webdriver.io is a good place to start. The documentation is good, there's a lower bar to entry, and there's plenty of help available if you get stuck.

Installing Webdriver.io and writing some automated tests for a project you've already built is a great idea. I find myself doing this for all of my Angular side-projects with the built-in Protractor framework. 


## Conclusion

I hope that this gave you something to think about as you navigate your journey into software development. QA is a wonderful and vital step in the development process, and I've worked with quite a few automation engineers that came from software development because they just loved the testing process. Whether this is a career or a step in your career journey, I wish you the best of luck!

<hr>
<br>
<span>Photo by <a href="https://unsplash.com/@heylagostechie?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">heylagostechie</a> on <a href="https://unsplash.com/s/photos/software-development?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></span>