Trabalho com TI há pouco mais de 1 ano como engenheiro de automação de teste.
Minha educação básica não contribuiu para isso de forma alguma, uma vez que em meu diploma diz "Economista Logístico". Comecei o caminho difícil na área de TI com cursos gratuitos em uma grande empresa da minha cidade, depois trabalhei na mesma empresa em 2 projetos, depois decidi mudar de emprego.

Respondi a 8 vagas, mais 4 empresas me escreveram (as agências de recrutamento não contavam, eu não pretendia me comunicar com elas).
Talvez minha pesquisa tenha ocorrido em janeiro (parece o maior boom de recrutamento deste mês), mas depois de todas as conversas telefônicas e correspondências, tive quatro convites para entrevistas de empresas diferentes, três das quais me ofereceram trabalho
Foi interessante para mim estudar o processo de contratação em TI, por isso decidi passar por todas as etapas das entrevistas com cada empregador por uma questão de experiência, mesmo que a vaga em si não me parecesse imediatamente atraente.
A primeira empresa realmente queria encontrar um funcionário com conhecimento de redes IP, mas, segundo eles, havia poucos especialistas no mercado, então eles me convidaram :) Na maioria das vezes, eles perguntavam sobre Java para uma entrevista: estática, == / igual e outras perguntas típicas que não tive tempo de escrever porque a ideia de escrever este artigo surgiu após a segunda empresa, mas eles serão mencionados na descrição das entrevistas subseqüentes. Também houve tentativas de perguntar sobre redes IP, mas rapidamente ficou claro que eu não era forte nisso. No entanto, a entrevista técnica, de acordo com o RH, correu bem e fui convidado para conversar no Skype com um cliente que não gostava que eu não tivesse uma educação relacionada à TI e, portanto, não havia sugestões.
A segunda empresa é uma empresa de supermercado, um desenvolvedor de jogos online. Além do trabalho habitual com testes, parte da funcionalidade da equipe de teste estava escrevendo e dando suporte a bots para jogos online. Em geral, a equipe precisava de um especialista com conhecimento de Python, que acabou se tornando o principal motivo do meu fracasso. Na entrevista, me fizeram perguntas em Java (como não falo outro idioma, avisei por telefone), listarei-as abaixo:
- Exceções - o que acontece, hierarquia
- Comandos Git - Como confirmar, etc.
- O bloco finalmente pode falhar?
- OOP postula com exemplos
- O que é um construtor?
- Como chamar um método de uma classe pai em um método filho, se esse método também for substituído no método filho?
- escreva xpath
- resolver o problema de algoritmo
- valores de tipo primitivo por padrão
- == / equals
- Escreva 2 consultas SQL (a primeira continha uma junção, que substituí por uma subconsulta, a segunda continha as palavras-chave limit e desc)
- a palavra final é tudo que você sabe
- descrever em que consiste o teste
E também um bloco sobre o selênio:
- Objeto de Página
- O que são localizadores
- findElement e findElements - qual é a diferença e o que acontecerá se um localizador for passado para findElement que retorne mais de um objeto
E também poderia haver uma pergunta separada sobre o Linux, mas no momento da entrevista eu não o encontrei, então não havia sentido em fazer perguntas. Depois disso, houve outra entrevista, em vez disso, uma “conversa sobre a vida” com o gerente da equipe. Como escrevi anteriormente, recebi um convite, mas não o aceitei por causa do Python.
A terceira empresa - terceirização, está envolvida na criação e manutenção de sites para uma companhia aérea. A equipe de teste usa um monte de Selenium + Maven + TestNG e, usando a mesma abordagem que eu precisava para resolver o problema do teste, a fim de entrar em uma entrevista técnica. A tarefa era fazer login no site (criar um usuário manualmente), abrir e-mails e verificar o número de e-mails recebidos e enviar sua decisão com um link para o Git. O problema foi resolvido, ocorreu uma entrevista técnica, as perguntas foram as seguintes:
- A diferença entre Lista e Conjunto
- Escreva XPath
- Tente pegar finalmente
- == / equals
- Palavra estática
- Bloco estático
- Recursos do FluentWait
- Classes abstratas e interfaces
- (De repente) O que é polimorfismo
- (ainda mais abruptamente) Métodos de classe de objeto
- Objeto de Página
- Quais anotações do TestNG são usadas para indicar entrada
- Como posso indicar a sequência de testes usando anotações?
Como resultado, concordei em trabalhar nesta empresa, porque Na minha opinião, o projeto deles correspondia o máximo possível às minhas habilidades e experiência. E conforto e autoconfiança são meus principais critérios para escolher um local de trabalho. (Aqui você pode discordar da minha abordagem, talvez alguém precise de um desafio, tudo bem também).
A quarta empresa de produtos novamente, francamente, era a empresa dos meus sonhos porque trabalha com IA e Machine Learning. Eu já trabalhei com as tecnologias deles no meu primeiro projeto no meu primeiro emprego e passei na certificação que eles desenvolveram, sobre os quais escrevi no meu currículo. Talvez seja por isso que eles me convidaram para uma entrevista.
Na minha opinião subjetiva, esta empresa precisa de desenvolvedores ou engenheiros de automação com mais experiência de trabalho do que a minha. Talvez a minha vantagem tenha sido o fato de ter trabalhado em vendas por vários anos, já que a maioria de seus projetos está no local e envolve comunicação constante com o cliente.
Entre todas as entrevistas, essa foi talvez a mais difícil. Por exemplo, a comparação usual de List e Set passou à pergunta "Qual é a diferença entre a implementação do método get em ArrayList e LinkedList?"
Do lugar-comum eram:
- Hierarquia de coleções (seria bom, é claro, repetir antes da entrevista)
- Palavra estática
- Herança
- Word Super
- Classes abstratas e interfaces
- Multithreading - disse imediatamente que eu não sabia e, assim, suprimiu todos os problemas
Eles também perguntaram sobre SQL, a saber: criei as tabelas eu mesmo. Pedidos para escrever não pediram.
Além disso, havia a necessidade de resolver alguns problemas, um para algoritmo, e o segundo, como se viu, por conhecer algo como o novo Command.execute () (estou curioso para saber quantas pessoas se depararam com isso).
E - uma cereja no bolo - havia quebra-cabeças lógicos! Como você tem uma caixa com meias preto e branco, quantas vezes você precisa obter uma meia para garantir um par da mesma cor. Bem, e assim por diante, não vou escrever tudo, decidi que devo dizer, não tudo.
Nesta entrevista, um lugar importante (20 minutos) foi ocupado por perguntas sobre habilidades de software, conflitos, trabalho em equipe etc.
E este era o único lugar onde pelo menos alguém falava inglês. (Vale ressaltar que eu tenho B2, talvez os outros acreditassem na palavra).
Em geral, fiquei muito surpreso quando eles me ligaram de volta no dia seguinte já com a oferta, porque uma entrevista com 30-40% (de acordo com meus sentimentos) de perguntas não respondidas me pareceu um fracasso. Aparentemente, o treinamento que fiz uma vez com seus recursos era valioso. Ainda não aceitei a oferta, porque não estava completamente confiante em minhas habilidades. Mas essa empresa ainda me parece a mais atraente da minha cidade, talvez eu ainda trabalhe para elas.
Em geral, a coisa mais importante que eu queria transmitir era que você não deveria ter medo de mudar alguma coisa. Como resultado, aumentei meu salário em 2 vezes em comparação com o local de trabalho anterior (sim, agora estou em um nível intermediário júnior e, em termos numéricos, isso não é muito, mas apenas confirma a ideia de que as mudanças faziam sentido!)
E para aqueles que até agora estão apenas olhando nessa direção, mas que não se atrevem a mudar sua esfera de atividade como uma conclusão, gostaria de observar que, para trabalhar em TI, você primeiro precisa aprender. E nunca pare de fazer isso. Então o trabalho será fácil e os salários são altos =)

E nós mesmos podemos não estar cientes de nossas forças.
Espero que minha modesta experiência o ajude a decidir uma mudança ou seja apenas interessante e informativa.