Você quase terminou a universidade ou faculdade? Você foi convidado para entrevistas, mas você vai lá sem preparação? Você não tem formação (superior), mas deseja trabalhar como programador ou na área de TI? Será principalmente sobre encontrar um emprego, falarei apenas pela minha cidade (Chelyabinsk) porque Eu estava procurando trabalho aqui.

Quando comecei a procurar trabalho, quando estava no meu segundo ano de faculdade, não suspeitava quantas empresas diferentes existiam em nossa cidade. De codificadores a Deep learning, a partir deles. suporte do bitrix a um desenvolvedor de jogos (móvel, redes sociais, desktop).
Eu estava em cerca de 8 entrevistas (sem contar on-line). Eles estavam todos em direções diferentes. Layout, desenvolvimento de jogos para desktop, desenvolvedor web (c # +. Net), desenvolvedor web (bitrix + php), front-end (js + react). Ele recusou algo ele mesmo, eles não levaram a lugar algum. Eu não sei muito
Mais perto do ponto, mais perto do código
Eu gostaria de dizer o que eles pedem nessas entrevistas e por que o fazem (para explicar as tecnologias usadas).
Vamos começar com um simples. Layout
Na maioria dos casos, todos precisavam de velocidade de layout. Eles me deram duas tarefas (duas empresas diferentes). O primeiro é o layout dos cartões de produtos no site. Em uma hora eu precisava fazer o layout como na foto, que eu já havia jogado fora. Não há nada complicado na tarefa, mas uma das condições é Pixel Perfect (pixel a pixel). Eu tive alguns erros: uma incompatibilidade com o layout (exibição incorreta da janela de notificação e a lógica do efeito de foco).

A segunda tarefa foi ainda mais fácil (o pixel perfeito não era necessário). Há um ToR (Termos de Referência) com correções e elas precisam ser feitas no site. Edita na exibição de elementos, algo para os telefones celulares configurarem, alterar recuo, cor dos elementos.
Porque Atualmente, existem muito poucas empresas que procuram codificadores, portanto a velocidade é importante. Menos tempo para o trabalho, mais pedidos, o que significa mais lucro para a empresa. Essa posição geralmente requer pré-processadores (sass, pug) e construtores de projetos (gulp, webpack). Quanto ao TK, você o receberá em qualquer trabalho e deve segui-lo! TK é diferente para todos, na maioria dos casos, é um documento de texto com uma lista de edições.
Programador da Web (bitrix)
Foram realizadas três tentativas em diferentes empresas. Em um deles, eles me explicaram o que teriam que fazer. Suporte para sites corporativos (desenvolvimento para as necessidades desses sites) + trabalho com o servidor (configuração e implantação de sites). Nem uma única pergunta é o que posso e o que sei.
Mas na segunda entrevista, eles apenas perguntaram o que eu fiz no último local de trabalho, o que posso fazer no bitrix e o que estudei em geral.
Bem e o mais interessante, esta é a última entrevista. Aqui estavam perguntas sobre habilidades e uma descrição das tarefas da empresa e tarefas que precisavam ser executadas no local. Espero que você possa contar sobre você, mas estou pronto para compartilhar perguntas. Eu vou avisar você imediatamente, não havia condição em qual idioma você precisa escrever código, eu escolhi JS. Calcule o fatorial do que é uma árvore binária e quais maneiras de percorrê-la, ordenando algoritmos, acessando o banco de dados (consultas simples), qual class.php está no bitrix.
O cálculo do fatorial é muito simples, independentemente da linguagem de programação. Implemente isso por meio de recursão. Sobre uma árvore binária já é mais complicada ... árvore binária (binária) = estrutura de dados. A árvore é usada para trabalhar com grandes quantidades de dados, não é de surpreender que, ao se candidatarem a trabalho com lojas online, eles perguntem exatamente isso. A classificação também se aplica ao trabalho com dados. Bem, e acesso ao banco de dados, a maioria dos sites da rede usa o banco de dados. Esta é uma conclusão de notícias, produtos, uma lista de artigos populares e outros elementos.
Mais interessante, uma tentativa de obter um desenvolvedor de desktop

Mencionarei imediatamente tópicos gerais: OOP e padrões.
Porque Bem, desenvolvimento moderno sem OOP ... isso é muito estranho, assim como o desenvolvimento sem padrões. Sim, você pode fazer cursos enquanto estuda e não usar padrões + OOP, mas sem um entendimento mínimo de qual classe, herança e polimorfismo são, eu não o contratarei. OOP permite dividir o programa em blocos, e padrões, como o SOLID, permitem dividir o código em blocos independentes, para que no futuro você possa complementá-los facilmente.
Todas as outras questões eram específicas, dependendo do trabalho da empresa. Por exemplo, se esses são desenvolvedores de jogos, foi necessário escrever um jogo de teste usando a engine + documentação que eles forneceram. Foi-me dado um jogo 2D infantil (c # + XAML). A essência do jogo: há dois copos, um está vazio e, no segundo, existem lápis, quando um jogador clica em RMB, um lápis se move para um copo vazio e atualiza o contador de pontos na tela. Era trivial contar lápis.
Eu também tive a experiência de entrevistar um desenvolvedor do Unity, já era mais difícil aqui porque e o jogo recebeu 3D, e o código foi monitorado para que não houvesse lixo + presença de padrões, ainda tenho esse projeto no github.
De volta às empresas, se esse é o desenvolvimento da parte de back-end (c # +. Net), então as perguntas eram sobre a plataforma .net e suas armadilhas. Se este for o desenvolvimento de aplicativos, você precisará conhecer TDD (desenvolvimento através de testes), SOLID, OOP.
Eu já expliquei sobre OOP e padrões. Por que perguntar sobre TDD? Sinceramente, não sei ... não entendo totalmente a vantagem dessa abordagem, mas algumas empresas a utilizam, mas tive que escrever o código dessa maneira apenas uma vez. SÓLIDO - estes são 5 padrões combinados, depois que me perguntaram em uma entrevista sobre esse padrão, comecei imediatamente a estudá-lo. Sinceramente, foi difícil para mim entender, mas o resultado é um código muito persistente que pode ser complementado sem prejudicar um aplicativo já escrito. Se você estiver interessado no SOLID, tente escrever uma calculadora usando esse padrão. Implemente + e - primeiro e, em seguida, adicione outros recursos à calculadora. Lembro-me de escrever em c # (programa de console).
Talvez seja tudo o que posso lhe contar sobre a entrevista na minha cidade. Sim, existem desenvolvedores de SPA (principalmente o reactJS) e desenvolvedores de jogos na Web (todos reagem da mesma forma, na maioria dos casos, e às vezes apenas JS nativo) e desenvolvedores python, 1C, JAVA e outros. Fiquei muito surpreso com a variedade de tecnologias e idiomas usados. Isso é tudo para mim, talvez. Até breve.