Today, anyone can learn to become a developer: a manager, a salesperson, a waiter, or a trainer. However, programming can sometimes seem overwhelming for some rookies, and they feel discouraged in advance about their chances of landing a job as a junior developer. That is why some learners choose the role of QA engineer as a safe option. QA is a person who tests software and finds bugs in it. This profession allows you to enter the complex world of programming.
We introduce the story of the developer Kyrylo, who began his journey in IT with QA testing (quality assurance) and later became a developer.
QA suited me, and I began to delve into this area
I wasn't interested in a developer's career after school. Still, I entered the university at the faculty of "The development of system software" because my parents advised me to choose this specialization.
I understood programming, but it took work. I did the term papers successfully, but I graduated without solid programming knowledge. Then I tried to look for a job as a programmer; however, after failing 2-3 interviews, which I didn't know how to pass, I decided to become a QA tester.
One day I came across a company recruiting people for QA internships. I successfully passed the interview, completed my internship, and stayed there to work as a tester. Everything suited me, and I began to delve into this area. I wrote an automated test in Java for the first time. It was an easy test: it opened a browser window, clicked on specific lists, and selected items, but I liked it very much. It seemed that I did magic.
After a while, a classmate who worked in another company invited me to the QA engineer position there. So I accepted the offer, and I got a great experience in QA and working in a team. After dealing with manual testing (which isn't pretty interesting), a manager asked our group if there was someone willing to work with automated tests, and I volunteered for this role. I needed additional knowledge to manage the new tasks, so I learned the C#, which allowed me to deal with existing automated tests and develop them.
Later, I had an opportunity to switch to a developer position in that company, but I decided to leave the company because my team had disbanded.
So, I landed a QA engineer position at a company with an office in the city center and a rollercoaster in the office. Then I thought: I’d like to stay there until the end of my career. However, I'd been working there for almost four years before I decided to leave. I got a great experience of working in a team. We often watched videos from technical conferences or training videos on how technology works. Even though I was engaged in automated tests, I studied related technologies and acquired new skills. All in all, it was a great experience for me.
I wanted to do more programming
Then I found a vacancy for a QA engineer, which required knowledge of Python. I quickly read a book about Python to understand the syntax and completed the test task the company gave me. Despite the fact that I've missed the deadline, the company accepted my work and invited me to interview. Our conversation was straightforward: I talked with the QA manager and the project manager on general topics about testing and programming. And I got hired.
My responsibilities included performing automated and manual tests. However, I wasn't too fond of the manual, which implies monotonous actions, and I wanted to do more programming. So I began to deepen my knowledge of Python, enrolled in courses, and talked to the manager about my ambitions. But at that time, they didn't have a vacant developer position.
I worked and studied at the same time. The transition took about nine months: in the spring, I started training and got a job in December. The hardest thing during the transition was not even that I came across new concepts in programming but rather that I was overloaded and spent too much time with the computer.
My experience as a QA engineer helps me in programming
One day a classmate who worked for an IT company wrote to me. He offered a QA engineer job, but I said I was looking for a developer job. It turned out that they've had a vacant position, so I decided to give it a try. We had a three-hour interview on different technologies (according to the skills table), and after that – an interview with a client. They saw potential in me, so I got hired.
I liked working there because I was introduced to many new technologies. In addition, the company had great colleagues who could be asked for advice on the project.
Previous experience in testing on large projects gave me an understanding of the processes of how a product is developed. It was definitely an advantage.
My experience as a QA engineer helps me in programming now. When I perform a task, I know that my colleagues will test it, so I describe as many details as possible that are worth paying attention to. Then, when QA engineers come with a request to help figure it out, I understand what they want to know from me. So I help them test specific components that are being developed.
The skill of analyzing systems with many elements came in handy. I can easily remember the big picture of even a complex system.
Part of the tasks of a programmer also includes writing unit tests that test a specific function in the application. Knowing how to write a test script most directly helps my work.
If I were a graduate now, I would try to get a job as a developer from the start. I feared to program because we studied C ++ at the university, where you have to consider tons of nuances while coding. However, during the training, I realized that this wasn't the case: complex things can be written simply and clearly.