¿Casi has terminado la universidad o la universidad? ¿Te invitaron a entrevistas pero vas allí sin preparación? ¿No tienes una educación (superior), pero quieres trabajar como programador o en el campo de TI? Se tratará principalmente de encontrar trabajo, solo hablaré por mi ciudad (Chelyabinsk) porque Estaba buscando trabajo aquí.

Cuando comencé a buscar trabajo, en mi segundo año en la universidad, no sospeché cuántas compañías diferentes hay en nuestra ciudad. De los codificadores al aprendizaje profundo, de esos. Soporte de Bitrix para un desarrollador de juegos (móvil, redes sociales, escritorio).
Estuve en aproximadamente 8 entrevistas (sin contar en línea). Todos iban en diferentes direcciones. Diseño, desarrollo de juegos de escritorio, desarrollador web (c # +. Net), desarrollador web (bitrix + php), front-end (js + react). Él mismo rechazó algo, no lo llevaron a ningún lado. No se mucho.
Más cerca del punto, más cerca del código.
Me gustaría contar lo que preguntan en esas entrevistas y por qué lo hacen (para explicar las tecnologías utilizadas).
Comencemos con uno simple. Diseño
En la mayoría de los casos, todos necesitaban velocidad de diseño. Me dieron dos tareas (dos empresas diferentes). El primero es el diseño de las tarjetas de productos en el sitio. En una hora tuve que hacer el diseño como en la imagen, que anteriormente me habían tirado. No hay nada complicado en la tarea, pero una de las condiciones es Pixel Perfect (píxel a píxel). Tuve un par de errores: una falta de coincidencia con el diseño (visualización incorrecta de la ventana de notificación y la lógica del efecto de desplazamiento).

La segunda tarea fue aún más fácil (no se requería un píxel perfecto). Hay un ToR (Términos de referencia) con correcciones y deben hacerse en el sitio. Ediciones en la visualización de elementos, algo para que los teléfonos móviles configuren, cambiar sangría, color de elementos.
Por qué Hoy en día, hay muy pocas empresas que buscan codificadores, por lo que la velocidad es importante. Menos tiempo para trabajar, más pedidos, lo que significa más ganancias para la empresa. Tal posición a menudo requiere preprocesadores (sass, pug) y constructores de proyectos (trago, paquete web). En cuanto a TK, lo recibirá en cualquier trabajo, ¡y debe seguirlo! TK es diferente para todos, en la mayoría de los casos es un documento de texto con una lista de ediciones.
Programador web (bitrix)
Hubo 3 intentos en diferentes empresas. En uno me explicaron lo que tendrían que hacer. Soporte para sitios corporativos (desarrollo para las necesidades de estos sitios) + trabajo con el servidor (configuración y despliegue de sitios). Ninguna pregunta es qué puedo hacer y qué sé.
Pero en la segunda entrevista solo me preguntaron qué hice en el último lugar de trabajo, qué puedo hacer en Bitrix y qué estudié en general.
Bueno y lo más interesante, esta es la última entrevista. Aquí había preguntas sobre habilidades, y una descripción de las tareas de la empresa, y las tareas que debían realizarse en el acto. Espero que pueda hablar sobre usted, pero estoy listo para compartir preguntas. Te advertiré de inmediato, no había condición en qué idioma necesitas escribir el código, elegí JS. Calcule el factorial de lo que es un árbol binario y las formas de atravesarlo, ordenando algoritmos, accediendo a la base de datos (consultas simples), qué class.php está en bitrix.
Calcular factorial es muy simple, sin importar el lenguaje de programación. Implemente esto a través de la recursividad. Acerca de un árbol binario ya es más complicado ... árbol binario (binario) = estructura de datos. El árbol se utiliza para trabajar con grandes cantidades de datos, no es sorprendente que al solicitar trabajo en tiendas en línea pregunten exactamente eso. La ordenación también se aplica al trabajo con datos. Bueno, y el acceso a la base de datos, la mayoría de los sitios en la red usan la base de datos. Esta es una conclusión de noticias del sitio, productos, una lista de artículos populares y otros elementos.
Lo más interesante, un intento de obtener un desarrollador de escritorio

Inmediatamente mencionaré temas generales: POO y patrones.
Por qué Bueno, el desarrollo moderno sin OOP ... esto es muy extraño, al igual que el desarrollo sin patrones. Sí, puedes hacer cursos mientras estudias y no usar patrones + OOP, pero sin una comprensión mínima de qué clase, herencia y polimorfismo son, no te contrataré. OOP le permite dividir el programa en bloques, y los patrones, como SOLID, le permiten dividir el código en bloques independientes, para que en el futuro pueda complementarlos fácilmente.
Todos los demás temas fueron específicos, dependiendo de con qué trabajara la empresa. Por ejemplo, si se trata de desarrolladores de juegos, fue necesario escribir un juego de prueba utilizando su motor + documentación que proporcionaron en él. Me dieron un juego 2D para niños (c # + XAML). La esencia del juego: hay dos vasos, uno está vacío y en el segundo hay lápices, cuando un jugador hace clic en RMB, un lápiz se mueve a un vaso vacío y actualiza el contador de puntos en la pantalla. Era trivial contar lápices.
También tuve la experiencia de entrevistar a un desarrollador de Unity, ya era más difícil porque y el juego recibió 3D, y el código fue monitoreado para que no hubiera basura + la presencia de patrones, todavía tengo este proyecto en github.
Volviendo a las empresas, si este es el desarrollo de la parte de back-end (c # +. Net), entonces las preguntas eran sobre la plataforma .net y sus dificultades. Si se trata del desarrollo de aplicaciones, debe conocer TDD (desarrollo a través de pruebas), SOLID, OOP.
Ya he explicado sobre POO y patrones. ¿Por qué preguntar sobre TDD? Honestamente, no lo sé ... No entiendo completamente la ventaja de este enfoque, pero algunas compañías lo usan, pero tuve que escribir el código de esta manera solo una vez. SÓLIDO: estos son 5 patrones combinados juntos, después de que me preguntaron en una entrevista sobre este patrón, inmediatamente comencé a estudiarlo. Le diré honestamente, fue difícil para mí entenderlo, pero el resultado es un código muy persistente que puede complementarse sin dañar una aplicación ya escrita. Si está interesado en SOLID, intente escribir una calculadora usando este patrón. Implemente + y - primero, y luego agregue otras características a la calculadora. Recuerdo haber escrito en C # (programa de consola).
Quizás esto es todo lo que puedo decirte sobre la entrevista en mi ciudad. Sí, hay desarrolladores de SPA (se requiere reactJS principalmente) y desarrolladores de juegos web (todos reaccionan de la misma manera, en la mayoría de los casos, y a veces solo JS nativos), y desarrolladores de python, 1C, JAVA y otros. Me sorprendió mucho la variedad de tecnologías y lenguajes utilizados. Eso es todo para mí, tal vez. Hasta pronto.