Je travaille dans l'informatique depuis un peu plus d'un an en tant qu'ingénieur en automatisation des tests.
Mon éducation de base n'y a aucunement contribué, car dans mon diplôme, il est écrit «Logistic-Economist». J'ai commencé le chemin épineux de l'informatique avec des cours gratuits dans une grande entreprise de ma ville, après quoi j'ai travaillé dans la même entreprise sur 2 projets, après quoi j'ai décidé de changer d'emploi.

J'ai répondu à 8 postes vacants, 4 autres entreprises m'ont écrit (les agences de recrutement ne comptaient pas, je n'avais pas prévu de communiquer avec elles).
Peut-être que ma recherche est arrivée en janvier (cela semble être le plus grand boom de recrutement ce mois-ci), mais après toutes les conversations téléphoniques et la correspondance, j'ai eu 4 invitations à des entretiens de différentes entreprises, dont 3 m'ont finalement offert travailler.
C'était intéressant pour moi d'étudier le processus d'embauche en informatique, j'ai donc décidé de passer par toutes les étapes des entretiens avec chaque employeur pour le plaisir de l'expérience, même si le poste lui-même ne me semblait pas immédiatement attrayant.
La première entreprise voulait vraiment trouver un employé connaissant les réseaux IP, mais selon eux, il y avait peu de spécialistes de ce type sur le marché, alors ils m'ont invité :) Surtout, ils ont posé des questions sur Java pour une interview: statique, == / égal et autres questions typiques que je n'ai pas eu le temps d'écrire car l'idée d'écrire cet article est venue après la deuxième entreprise, mais elles seront mentionnées dans la description des entretiens ultérieurs. Il y a également eu des tentatives de poser des questions sur les réseaux IP, mais assez rapidement, il est devenu clair que je n'étais pas fort à ce sujet. Néanmoins, l'entretien technique, selon les RH, s'est bien passé et j'ai été invité à discuter sur Skype avec un client qui n'aimait pas que je n'avais pas de formation informatique, et donc il n'y avait aucune suggestion.
La deuxième entreprise est une épicerie, un développeur de jeux en ligne. En plus du travail habituel avec les tests, une partie des fonctionnalités de l'équipe de test était l'écriture et le support des bots pour les jeux en ligne. En général, l'équipe avait besoin d'un spécialiste connaissant Python, qui est finalement devenu la principale raison de mon échec. Lors de l'entretien, on m'a posé des questions en Java (puisque je ne parle pas une autre langue, que j'ai prévenu par téléphone), je vais les lister ci-dessous:
- Exceptions - ce qui se passe, hiérarchie
- Commandes Git - Comment valider, etc.
- Le bloc enfin peut-il échouer?
- OOP postule avec des exemples
- Qu'est-ce qu'un constructeur?
- Comment appeler une méthode d'une classe parent dans une méthode enfant, si cette méthode est également surchargée dans la méthode enfant?
- écrire xpath
- résoudre le problème de l'algorithmisation
- valeurs de type primitif par défaut
- == / est égal
- Écrire 2 requêtes SQL (la première contenait une jointure, que j'ai remplacée par une sous-requête, la seconde contenait les mots-clés limit et desc)
- le mot final est tout ce que vous savez
- décrire en quoi consiste le test
Et aussi un bloc sur le sélénium:
- Objet Page
- Que sont les localisateurs
- findElement et findElements - quelle est la différence et que se passera-t-il si un localisateur est passé à findElement qui renvoie plus d'un objet
Et il pourrait aussi y avoir une question distincte sur Linux, mais au moment de l'interview, je ne l'ai pas rencontrée, il était donc inutile de poser des questions. Après cela, il y a eu une autre interview, plutôt, une «conversation sur la vie» avec le chef d'équipe. Comme je l'ai écrit plus tôt, j'ai reçu une invitation, mais je ne l'ai pas acceptée à cause de Python.
La troisième société - l'externalisation, est engagée dans la création et la maintenance de sites pour une compagnie aérienne. L'équipe de test utilise un tas de Selenium + Maven + TestNG, et en utilisant la même approche dont j'avais besoin pour résoudre le problème de test afin d'entrer dans une interview technique. La tâche consistait à se connecter au site (créer un utilisateur manuellement), ouvrir le courrier et vérifier le nombre de courriels entrants, puis envoyer votre décision avec un lien vers Git. Le problème a été résolu, un entretien technique a eu lieu, les questions étaient les suivantes:
- La différence entre List et Set
- Ecrire XPath
- Essayez-attraper-enfin
- == / est égal
- Mot statique
- Bloc statique
- Caractéristiques de FluentWait
- Classes abstraites et interfaces
- (Soudain) Qu'est-ce que le polymorphisme
- (encore plus brusquement) Méthodes de classe d'objets
- Objet Page
- Quelles annotations TestNG sont utilisées pour indiquer l'entrée
- Comment puis-je indiquer la séquence de tests à l'aide d'annotations?
En conséquence, j'ai accepté de travailler dans cette entreprise, car À mon avis, leur projet correspondait autant que possible à mes compétences et à mon expérience. Et le confort et la confiance en moi sont mes principaux critères pour choisir un lieu de travail. (Ici, vous pouvez être en désaccord avec mon approche, peut-être que quelqu'un a besoin d'un défi, c'est bien aussi).
Franchement, la quatrième entreprise de produits était encore mon entreprise de rêve car elle fonctionne avec l'IA et le Machine Learning. J'ai déjà travaillé avec leurs technologies sur mon premier projet lors de mon premier emploi et j'ai passé la certification qu'ils ont développée, dont j'ai parlé dans mon CV. C'est peut-être pour cela qu'ils m'ont invité à un entretien.
À mon avis, cette entreprise a besoin de développeurs ou d'ingénieurs en automatisation avec plus d'expérience de travail que la mienne. Peut-être mon avantage est que j'ai travaillé dans la vente pendant plusieurs années, car la plupart de leurs projets sont sur place et impliquent une communication constante avec le client.
Parmi toutes les interviews, celle-ci a peut-être été la plus difficile. Par exemple, la comparaison habituelle de List et Set a abouti à la question «Quelle est la différence entre l'implémentation de la méthode get dans ArrayList et LinkedList?»
De la banalité étaient:
- Hiérarchie des collections (ce serait bien sûr à répéter avant l'entretien)
- Mot statique
- Héritage
- Word Super
- Classes abstraites et interfaces
- Multithreading - a immédiatement dit que je ne savais pas, et a donc supprimé tous les problèmes
Ils ont également posé des questions sur SQL, à savoir: ai-je créé les tables moi-même. Les demandes d'écriture n'ont pas demandé.
De plus, il était nécessaire de résoudre quelques problèmes, l'un pour l'algorithmisation, et le second, comme il s'est avéré, pour connaître une chose telle que new Command.execute () (je suis curieux de voir combien de personnes ont rencontré cela).
Et - cerise sur le gâteau - il y avait des énigmes logiques! Comme vous avez une boîte avec des chaussettes noires et blanches, combien de fois vous devez obtenir une chaussette afin d'être assuré d'obtenir une paire de la même couleur. Eh bien et ainsi de suite, je n’écrirai pas tout, j’ai décidé que je dois dire, pas tout.
Lors de cet entretien, une place importante (20 minutes) était occupée par les questions sur les compétences logicielles, sur les conflits, le travail d'équipe, etc.
Et c'était le seul endroit où au moins quelqu'un parlait anglais. (Il vaut la peine de mentionner que j'ai B2, peut-être que les autres croyaient au mot).
En général, j'ai été très surpris quand ils m'ont rappelé le lendemain déjà avec l'offre, car une entrevue avec 30 à 40% (selon mes sentiments) de questions sans réponse m'a semblé un échec. Apparemment, la formation que j'avais faite une fois avec leurs caractéristiques était précieuse. Je n'ai toujours pas accepté l'offre, car je n'étais pas complètement confiant dans mes capacités. Mais cette entreprise me semble toujours la plus attractive de ma ville, peut-être vais-je encore travailler pour eux.
En général, la chose la plus importante que je voulais transmettre était que vous ne devriez pas avoir peur de changer quelque chose. En conséquence, j'ai augmenté mon salaire de 2 fois par rapport au lieu de travail précédent (oui, maintenant je suis quelque part au niveau intermédiaire junior et en termes numériques ce n'est pas tellement, mais cela ne fait que confirmer l'idée que les changements avaient du sens!)
Et pour ceux qui jusqu'ici ne regardent que dans cette direction, mais qui n'osent pas changer de domaine d'activité en guise de conclusion, je voudrais noter que pour travailler en informatique, il faut d'abord pouvoir apprendre. Et ne cessez jamais de le faire. Ensuite, le travail sera facile et les salaires seront élevés =)

Et nous-mêmes ne sommes peut-être pas conscients de nos forces.
J'espère que ma modeste expérience vous aidera à décider d'un changement ou sera juste intéressante et informative.