I have been working in IT for just over 1 year as a Test Automation Engineer.
My basic education did not contribute to this, because in my diploma is written “Logistics Economist”. I started the thorny path in IT with free courses with one large company in my city, after that I worked in the same company on 2 projects, after which I decided to change my place of work.

I responded to 8 vacancies, 4 more companies wrote to me themselves (recruitment agencies do not count, I did not plan to communicate with them).
')
Perhaps the important role was played by the fact that my search came in January (such as this month was the biggest boom in the field of recruiting), but after all the telephone conversations and correspondence I had 4 invitations for an interview from different companies, 3 of which eventually offered me work
It was interesting for me to study the recruitment process in IT, so I decided to go through all the stages of interviews for each employer of experience for the sake of, even if the vacancy itself did not immediately seem attractive to me.
The first company really wanted to find an employee with knowledge of IP networking, but there were few such experts on the market, according to their own words, so they invited me too :) Mostly they asked about Java at the interview: static, == / equals and other typical questions I didn't manage to write down because the idea to write this article came after the second company, but they will be mentioned in the description of the subsequent interviews. There were also attempts to ask about IP networking, but it quickly became clear that I was not strong in this. Nevertheless, the technical interview, according to HR, went well and I was invited to chat on Skype with a customer who did not like that I had no education related to IT, and therefore there was no suggestion.
The second company - grocery - online games developer. In addition to the usual work with tests, part of the functionality of the test team was the writing and support of bots for online games. In general, the team needed a specialist with knowledge of Python, which ultimately became the main reason for my refusal. At the interview, I was asked questions in Java (because I do not speak another language, which I warned about by phone), I’ll give them a list below:
- Exceptions - what are the hierarchy
- Git commands - how to commit, etc.
- Can the finally block not be executed?
- OOP postulates with examples
- What is a constructor?
- How to call the method of the parent class in the child method, if this method is also redefined in the child method?
- write xpath
- solve the problem of algorithmization
- default primitive type values
- == / equals
- Write 2 SQL queries (the first contained a join, which I replaced with a subquery, the second - the keywords limit and desc)
- final is all you know
- describe what the test consists of
And also a block about Selenium:
- Page object
- What are locators?
- findElement and findElements - what's the difference and what will happen if a locator that returns more than one object is passed to findElement
And there could be a separate question about Linux, but at the time of the interview I didn’t run into him, so there was no point in asking questions. After this, there was another interview, rather, a “conversation about life” with the team manager. As I wrote earlier, I received the invitation, but did not accept it because of Python.
The third company - outsourcing, is engaged in the creation and support of sites for one airline. The test team uses a bunch of Selenium + Maven + TestNG, and using the same approach, I needed to solve a test problem in order to get to the technical interview. The task was to log into the site (create a user manually), open the mail and check the number of incoming emails, after which send your decision with a link to Git. The task was solved, the technical interview took place, the questions were as follows:
- Difference between List and Set
- Write XPath
- Try-catch-finally
- == / equals
- Word static
- Static block
- FluentWait Features
- Abstract Classes and Interfaces
- (Suddenly) What is polymorphism
- (even more suddenly) Object class methods
- Page object
- What TestNG annotations are used to indicate input
- How can using annotations indicate the sequence of tests
In the end, I agreed to work in this company, because in my opinion, their project corresponded to my skills and experience to the maximum. And comfort and self-confidence are my main criteria for choosing a workplace. (You may not agree with my approach here, maybe someone needs a challenge, this is also great).
The fourth company again grocery, to be honest, was my dream company, because it works with AI and Machine Learning. I already worked with their technologies on my first project at the first job and passed the certification developed by them, which I wrote about in my resume. Perhaps that is why they invited me to an interview.
In my subjective opinion, this company needs developers or automation engineers with more experience than me. Perhaps my advantage was that I worked in sales for several years, since most of their on-site projects imply constant communication with the customer.
Among all the interviews it was perhaps the most difficult. For example, the usual comparison of List and Set turned to the question “What is the difference between the implementation of the get method in ArrayList and LinkedList?”
From the banal were:
- The hierarchy of collections (it would be nice, of course, to repeat it before the interview)
- Word static
- Inheritance
- Word super
- Abstract Classes and Interfaces
- Multithreading - immediately said that I did not know, and thus stopped all questions
They also asked about SQL, namely: did I create the tables myself. Requests to write did not ask.
In addition, there was a need to solve a couple of tasks, one on algorithmization, and the second, as it turned out, on the knowledge of such a thing as new Command.execute () (I'm curious how many people have come across this).
And - the cherry on the cake - there were logic puzzles! Type you have a box with black and white socks, how many times you need to get a sock to get a guaranteed pair of the same color. Well, and so on, I will not write everything, I decided I should say, not everything either.
At this interview, an important place (20 minutes) was occupied by questions about software skills, conflicts, teamwork, etc.
And this was the only place where at least someone spoke to me in English. (It is worth mentioning that I have B2, perhaps the rest believed on the word).
In general, I was very surprised when the next day I was called back with an offer, because interview with 30-40% (according to my feelings) unanswered questions seemed to me failed. Apparently, the training of their features passed by me once had value. I still did not accept the offer, because I was not completely confident in my abilities. But this company still seems to me the most attractive in my city, perhaps I will still work for them.
In general, the most important thing that I wanted to convey is that one should not be afraid to change something. As a result, I raised my sn in 2 times in comparison with the previous place of work (yes, I am now somewhere at the junior-middle level and in numerical terms it is not so much, but this only confirms the idea that the changes made sense!)
And for those who so far only look in this direction, but do not dare to change the scope of activity as a conclusion, I would like to note that to work in IT, you first need to be able to learn. And never stop doing it. Then work will be easy and salaries are high =)

And we ourselves may not be aware of our strengths.
I hope my humble experience will help you decide on the changes or will be just interesting and informative.