Programadores, ir a entrevistas



La foto está tomada de un video del canal " Militant Amethysts "



Durante unos 10 años trabajé como programador de sistemas para Linux. Estos son módulos de kernel (espacio de kernel), varios demonios y funcionan con hardware desde el espacio de usuario (espacio de usuario), varios cargadores de arranque (u-boot, etc.), firmware de controlador y mucho más. A veces, incluso se cortaba la interfaz web. Pero más a menudo sucedía que tenía que sentarme con un soldador e interactuar con diseñadores de placas de circuito impreso. Uno de los problemas de este tipo de trabajo es que es bastante difícil evaluar el nivel de su competencia, ya que es posible que conozca una tarea muy profundamente, pero que no sepa nada cerca. La única forma adecuada de entender a dónde ir y qué corrientes son ahora es acudir a las entrevistas.



En este artículo, quiero resumir mi experiencia de entrevistar para la vacante de programador de sistemas linux, los detalles de las entrevistas, el trabajo y cómo evaluar el nivel personal de conocimiento en la comunicación con el futuro empleador y lo que no se debe esperar de esto.



El artículo contendrá un pequeño concurso con premios.



Características de la profesión



Un programador de sistemas, en los aspectos específicos en los que trabajé, es un completo generalista: tenía que escribir código y depurar hardware. Y a menudo era necesario soldar algo por sí mismos. De vez en cuando, sucedía que mis correcciones de hardware se pasaban a los desarrolladores. Por lo tanto, trabajar en esta área requiere un conocimiento bastante bueno, tanto en el campo de los circuitos digitales como en el campo de la programación. Debido a esto, las entrevistas para un puesto de programador de sistemas a menudo parecen buscar un especialista en electrónica.





Un lugar de trabajo típico de un programador de sistemas.



La foto de arriba es mi lugar de trabajo típico mientras depuro controladores. El analizador lógico muestra la exactitud de las señales transmitidas, el osciloscopio monitorea la forma de los bordes de la señal. Además, el depurador jtag, que se usa cuando las herramientas de depuración estándar ya no funcionan, no entró en el marco. Y debe poder trabajar con todo este equipo.



A menudo sucede que volver a soldar algunos elementos y corregir los errores de topología es más rápido y más fácil que llevar el producto a un instalador. Y luego una estación de soldadura también se instala en su lugar de trabajo.



Otra característica del desarrollo a nivel de controladores y hardware es que Google no ayuda. A menudo tienes que buscar información sobre tu problema y hay tres enlaces, dos de los cuales son tus preguntas en algún foro. O peor aún, cuando te encuentras con una pregunta del mismo pobre que la hizo hace 5 años en la lista de correo del kernel y nunca obtuvo una respuesta. En este trabajo, además de los errores en el diseño tanto del hardware como del software, a menudo se encuentran errores de documentación; estos son probablemente los problemas más graves y desagradables. A veces, los registros se describen incorrectamente o no hay descripción para ellos. Tales problemas se resuelven solo mediante el método de mecanografía científica de números aleatorios en ciertos registros (una especie de reverso). A menudo sucede que el procesador tiene algún tipo de funcionalidad,y además de usted, nadie ha implementado esta funcionalidad (especialmente si el procesador es nuevo). Y esto es caminar por el campo con rastrillo, de los cuales el 70% son niños. Pero cuando hay documentación, incluso con errores, esto ya es un avance. Muy a menudo sucede que no hay documentación alguna, y ahí es donde ya empieza el caminar en los campos minados, cuando el hierro se quema. Y sí, también resolví con éxito tales problemas.



Entrevistas



Mi opinión es que vale la pena ir a entrevistas en algún lugar al menos una vez cada seis meses, incluso si adoras tu trabajo y no quieres cambiarlo. La entrevista te permite comprender tu nivel como especialista. Creo que las entrevistas más valiosas son los fracasos. Son los que muestran con mayor precisión qué cuellos de botella de sus conocimientos merecen la pena.



Otra característica interesante es la calidad de las entrevistas. Esta es mi observación, y no es verdad, admito que tuve mucha suerte. Si la entrevista tiene un guión:



  • Cuéntanos acerca de tí;
  • tenemos tales tareas;
  • ¿te gusta?


Y si después de este diálogo se gustan, van a trabajar, entonces, por regla general, la empresa y las tareas resultan muy agradables y adecuadas. Si una entrevista es como atravesar los 12 círculos del infierno: la primera entrevista con RR.HH., luego una entrevista con un grupo de programadores, luego un director, más tareas, etc., entonces, por regla general, se trataba de organizaciones fallidas en las que trabajé no mucho tiempo. Nuevamente, esta es una observación personal, pero como regla general, demasiada burocracia y un proceso de contratación prolongado muestran que exactamente los mismos procesos tienen lugar dentro de la empresa. Las decisiones se toman de forma lenta e ineficaz. También hubo situaciones inversas, cuando hubo círculos de entrevistas infernales, y la compañía resultó ser hermosa, y cuando, después de una palmada en las manos, la compañía resultó ser un pantano, pero estos son raros.



Si crees que el escenario: conociste, hablaste de ti mismo y conseguiste un trabajo, existe solo en pequeñas empresas, entonces no. He visto esto en empresas muy grandes que emplean a más de cientos de personas y están representadas en los mercados mundiales. Este es un mecanismo normal, especialmente si tiene un historial rico y tiene la oportunidad de llamar a sus empleadores anteriores y preguntar por usted.



Para mí, un muy buen indicador de la empresa cuando se le pide que muestre ejemplos de sus proyectos y código. Se muestra inmediatamente el nivel de formación del solicitante. Y, en lo que a mí respecta, desde el punto de vista de la selección de candidatos, esta es la forma de selección más eficaz que una entrevista presumida. De hecho, en una entrevista, puede fallar con entusiasmo, o viceversa, salir con adrenalina. Pero en el trabajo real, no puede hacer frente a tareas reales. Y también me encontré con esto cuando entrevisté a personas. Viene un especialista, se muestra a la perfección, me gustó, le gustó. Y con la tarea más simple que sufrí durante un mes, como resultado, otro programador la resolvió en un par de días. Tuve que separarme de ese programador.



Valoro especialmente las tareas de programación en entrevistas. Y los que hay que resolver bien durante la reunión, en estrés y en deberes. El primero muestra qué tan preparado está para resolver problemas de manera rápida y precisa en una situación estresante y situaciones de emergencia. El segundo muestra su nivel de competencia y capacidad para buscar información y resolver problemas actuales.



Los trabajos más interesantes que tuve fueron en el complejo de defensa de nuestro país. En el proceso de trabajo, tuve que resolver problemas simplemente fantásticos que los programadores comerciales nunca soñaron. Supercomputadoras, diseño de enrutadores, varios sistemas de combate nodales: es increíblemente emocionante. Cuando, durante el desfile, ves un complejo que almacena tu código en sí mismo, es realmente agradable. Curiosamente, las entrevistas en tales compañías, por regla general, son muy simples, literalmente vinieron, me gustó, aceptadas (probablemente, los detalles de los militares, a quienes no les gusta moler), se superponen. Las tareas que tuve que afrontar allí son realmente interesantes y difíciles. Con la experiencia, ha llegado a ser bueno aprender de ellos para ser un programador de sistemas de calidad. También hay desventajas, y esto ni siquiera es un salario bajo.Por el momento, el salario en el complejo de defensa es bastante decente, con bonificaciones y bollos. Como regla general, esto es una gran burocracia, horarios de trabajo irregulares, trabajos urgentes interminables, trabajo con mucho estrés. En determinados casos no se puede descartar el secretismo, lo que añade ciertos problemas para viajar al extranjero. Además, por supuesto, la tiranía de los jefes-botas, y esto, por desgracia, también sucede. Aunque la experiencia de trabajar con un representante del cliente, la tengo, es sumamente placentera. Esta es una impresión colectiva de tres institutos de investigación diferentes y empresas asociadas con la orden de defensa del estado.Por supuesto, la tiranía de los jefes-botas, y esto, por desgracia, también sucede. Aunque la experiencia de trabajar con el representante del cliente, que tengo, es excepcionalmente agradable. Esta es una impresión colectiva de tres institutos de investigación diferentes y empresas asociadas con la orden de defensa del estado.Por supuesto, la tiranía de los jefes-botas, y esto, por desgracia, también sucede. Aunque la experiencia de trabajar con el representante del cliente, que tengo, es excepcionalmente agradable. Esta es una impresión colectiva de tres institutos de investigación diferentes y empresas asociadas con la orden de defensa del estado.





Para evitar malentendidos y para no exponer a las empresas en las que entrevisté, no tentaré al destino y señalaré sus datos. Pero estoy agradecido por cada entrevista, por el tiempo que la gente me ha dado, por la oportunidad de mirarme desde fuera. Solo puedo decir que las tareas eran para grandes empresas internacionales representadas en diferentes países.



Te diré lo más interesante: qué tareas se dan en las entrevistas. En general, las preguntas más frecuentes sobre la vacante de programador de sistemas y programador de microcontroladores son las operaciones de bits, en todo tipo de variaciones. Por lo tanto, prepárese mejor en esta dirección.



El segundo tema en términos de polaridad son los punteros, este debería rebotar en los dientes. Para que te despierten en medio de la noche y puedas contar y mostrar todo.



De varias entrevistas, saqué las preguntas en mi cabeza y las daré aquí, ya que las encuentro bastante interesantes. Deliberadamente no doy respuestas a estas preguntas, para que los lectores puedan responder de forma independiente estas preguntas en los comentarios y hubo un poco de pólvora al pasar una entrevista real.



Preguntas número 1

I. Conocimiento de SI. ¿Qué significan las siguientes entradas?



const char * str;

char const * str;

const * char str;

char * const str;

const char const * str;


¿Son correctas todas las entradas?



II. ¿Por qué este programa arrojará una falla de segmentación?



int main ()
{
       fprintf(0,"hello\n");
       fork();
       return(0);
}


III. .



. , . 1 /. , . , .



La siguiente entrevista fue un fracaso para mí y la encuentro más gratificante en mi práctica de programación. Mostró la profundidad de mi incompetencia. Antes de esta entrevista, estaba familiarizado con cada una de estas preguntas y se encontraban constantemente en mi práctica, pero de alguna manera no les di mucha importancia y, en consecuencia, no las entendí para las cinco principales. Por lo tanto, este examen, fallé en desgracia. Y estoy muy agradecido de que haya ocurrido tal fracaso, tuvo el efecto más aleccionador en mí. Piensas que eres un gran especialista, conoces los circuitos, las interfaces, trabajas con el kernel. Y luego tienes preguntas reales y flotas. Así que veamos.



Preguntas de la entrevista # 2



Problemas de hardware.



  • Cómo se organizan las llamadas al sistema Linux en lenguaje ensamblador en un procesador ARM, en x86. ¿Cuál es la diferencia?
  • ? , ?
  • i2c spi?
  • i2c ?
  • RS-232 : RX TX? : , , 9600, !!!
  • : ?
  • ? , ? ( ).
  • ?
  • RS-485. . , , . ?
  • ?
  • ¿Cómo trabajar con cmake?
  • Preguntas sobre la construcción de yocto linux.


Objetivos de esta entrevista:



1. Escribir una función que invierta uint32_ttodos los bits. (les encanta trabajar con beats en las entrevistas, lo recomiendo)

2.



int32_t a = -200;
uint32_t b = 200;
return *(uint32_t) * (&a)) > b;


¿Qué devolverá esta función? (solución en papel, sin computadora)



3. La función de calcular la media aritmética de dos números int32_t.



4. ¿Cuáles son los métodos de salida en programas, incl. en la corriente de errores.


La tercera selección fue relativamente reciente, y no me sorprendería que todavía exista tal cuestionario, por lo que no revelaré la empresa para no exponerlos ... Pero en términos generales daré un ejemplo de posibles preguntas, y si descubrió sus preguntas, entonces le digo hola :).



Preguntas de la entrevista # 3

  1. , .
  2. ls. “-l”.
  3. . ?
  4. RS-232? RS-485 RS-232? RS-232 RS-485 ?
  5. USB ( )?
  6. .




Este capítulo ni siquiera es para programadores (aunque también para ellos), sino más para RRHH. Las empresas más adecuadas no miran meticulosamente los resultados de las entrevistas. Es normal cometer errores, la mayoría de las veces miran exactamente cómo una persona puede resolver problemas y razonar.



Uno de los problemas clave es que un candidato resuelve con éxito los problemas en las entrevistas, se muestra a sí mismo como un excelente especialista, pero se fusiona en la primera tarea real. No seré astuto, yo también tuve esto. Pasó con éxito por todos los círculos del infierno, resolvió todas las tareas de prueba, pero en condiciones reales el trabajo resultó ser demasiado difícil debido a la inexperiencia banal. Subir a bordo no es todavía la tarea más difícil. Lo más difícil es permanecer a bordo de esta empresa.



Por eso, confío en más empresas que realizan entrevistas sencillas con un candidato y dicen: después del primer mes de trabajo, quedará claro si eres apto para nosotros o no. Este es el enfoque más adecuado, sí, quizás un poco caro, pero de inmediato queda claro quién es quién.



Hay otra opción para las entrevistas: cuando la apruebas con éxito, pero según los resultados de la entrevista, entiendes que el empleador es completamente inadecuado. Inmediatamente me niego a trabajar si me ofrecen trabajar como empresario individual, prometiendo grandes ingresos. Esta es una forma de evasión fiscal para la organización actual, y ¿por qué deberían preocuparme los problemas del empleador como programador? Otra opción son varias agencias gubernamentales. Tuve una entrevista, a raíz de la cual me ofrecieron un buen salario, pero dijeron que el programador anterior se fue, se enfermó, murió, se dio un atracón por la carga de trabajo y su jornada laboral comienza a las 8 de la mañana. También corrí desde un lugar así y mis tacones brillaron. Sí, RR.HH. preste atención a que los programadores están dispuestos a renunciar incluso a la vacante más deliciosa si la jornada laboral tiene que empezar temprano en la mañana.



Al final, daré un excelente video de la selección de un programador, una captura de pantalla del cual se da al comienzo de este artículo. También tuve esa entrevista más de una vez. Si ves tiranía en la etapa de las preguntas, entonces respétate a ti mismo, levántate, toma las cosas y vete, esto es normal. Si RR.HH. y el gerente en la entrevista se afirman a su costa, esto indica la toxicidad de la empresa y no debe trabajar allí, a menos que le gusten los jefes inadecuados.





conclusiones



¡Programadores, vayan por las entrevistas! Y trata de subir siempre. Por ejemplo, si recibe N dinero, vaya a una entrevista por al menos N * 1.2 pago, o mejor N * 1.5. Incluso si no toma esta vacante de inmediato, comprenderá lo que se necesita para este nivel de pago.

Mis observaciones han demostrado que un buen conocimiento del idioma inglés, una experiencia bastante rica en la industria y la confianza en uno mismo son determinantes. Esta última es la principal cualidad, como en el resto de la vida. Como regla general, un candidato más seguro puede aprobar una entrevista con más éxito, incluso con más errores, que un candidato excelente, pero más tímido y proactivo. ¡Buena suerte con tus entrevistas!



Competencia P / S



Si tiene ejemplos interesantes de tareas con las que RR.HH. le ha cargado, bienvenido a los comentarios. Hemos preparado una pequeña competencia, las condiciones son simples: escribes la tarea más inusual que tuviste en una entrevista, los lectores la evalúan (más), y en una semana resumimos los resultados y recompensamos al ganador con cosas divertidas.










All Articles