Sobre el papel de las tareas de prueba en la vida de un desarrollador

¿Cuántas entrevistas técnicas has tenido en tu vida?

Durante los últimos cinco años, he asistido a 35 entrevistas técnicas de todos los tipos y especificidades imaginables: desde empresas emergentes kazajas para la compra colectiva de carne para el invierno hasta bancos y servicios fintech alemanes y estadounidenses; con enfoque en programación, entrega y gestión; remoto y en la oficina; limitado e ilimitado en el tiempo; estresante y relajado, en diferentes idiomas.

Esto, sumado a las ~20 entrevistas que me realicé como empleador, un número suficiente para convertirme en el rey de las entrevistas, hacer la siguiente observación (inicialmente nada obvia) y establecerme en ella: Estoy convencido de que en gran parte Gracias a tantas entrevistas, empieza a parecer un hábito marginal, estudié mi stack a nivel profesional y me convertí en un especialista competitivo, a pesar de que ya había trabajado en desarrollo web durante 10 años.

Este artículo está dirigido a programadores que se encuentran al comienzo de su viaje y aún no han agotado la profundidad de sus conocimientos. En él, quiero ampliar la tesis sobre los colosales beneficios educativos de las tareas de prueba y las preguntas técnicas formuladas en las entrevistas, e invitar a todos a mi nuevo bot de Telegram. ActualizarBot, donde, según mi plan, podrás realizar una entrevista técnica al menos todos los días hasta que finalicen. Y para que no acaben, también puedes compartir una tarea técnica interesante, una pregunta o una situación útil/divertida vivida durante una entrevista.

Le contaré más sobre el bot a continuación. Primero, descubramos por qué es tan importante conocer y comprender las respuestas a estas preguntas y tareas técnicas, incluso si ha ejecutado con éxito proyectos independientes durante años.

¿Por qué la calidad de nuestro conocimiento fundamental deja mucho que desear?

Las entrevistas técnicas, si aún no se ha convertido en el rey de las entrevistas, suponen un gran estrés para el cuerpo, al igual que la búsqueda de empleo en general, ya sea un especialista novato, un cambiador o un desarrollador que ha trabajado en uno. lugar durante mucho tiempo (y en nuestro tiempo “largo” puede considerarse un año).

En muchas entrevistas, hay un factor humano que agrava este estrés. Puede que su entrevistador no sea Alena Vladimirskaya, sino un programador común y corriente, del que es difícil esperar tareas y evaluaciones adecuadas, o un líder de equipo incondicional que esperará el momento para derribar toda su severidad en sus ojos puestos en ti, haciéndote la pregunta: ¿¡Qué es para ti ágil!?

Un día, sin dar la respuesta necesaria, pero, como comprenderéis, impredecible a esta pregunta, me quedé sin oferta, lo que me alegró muchísimo.

Al tratar de evitar este estrés y los movimientos innecesarios en general, nos distanciamos no sólo de la exposición ruidosa de nuestra ignorancia de algunas características básicas del idioma, sino también de reducir esta ignorancia al menos un poco.

El problema es que en la práctica hay pocos lugares donde podamos encontrarnos con esta clase de problemas.
Cualquier desarrollador que haya tenido que trabajar en varios lugares confirmará que los problemas fundamentales o creativos planteados en las entrevistas rara vez tienen algo que ver con lo que un programador enfrenta en la vida real: no hay recurrencias, gráficos ni sistemas de control de ascensores asíncronos en el planeta con efectos negativos. gravedad en otro brazo de la galaxia. Desafortunadamente.

En relación con mi JavaScript nativo, hay un buen ejemplo: si React.JS no hubiera aparecido, el 98% de los programadores de JavaScript continuarían viviendo exitosamente en una feliz ignorancia de lo que es bind, más de 20 años después de su aparición, y continuarían quedar perplejo, recibir preguntas al respecto en las entrevistas, y solo aquellos que inventen todas estas bibliotecas, marcos y módulos altamente abstractos continuarían trabajando con él. Hoy, gracias a la reacción, este número se ha reducido a lo que parece un 97%.

Obviamente, al ver el "aislamiento de la realidad" de estas tareas, muchos desarrolladores las ignoran o pierden el tiempo sumergiéndose en ellas, y continúan con su rutina diaria, es decir, en sentido figurado, caminando por el campo minado del desarrollo para la producción no solo sin detector de minas, pero también sin saber que están en un campo minado.

¿Cuáles son las consecuencias de la falta de conocimientos fundamentales de una lengua?

La respuesta a esta pregunta parece banal, pero por alguna razón es parte de la naturaleza humana siempre dejar su solución en el rincón más alejado, y esto juega un papel triste en la vida de los programadores junior y intermedios, alargando su camino hacia las alturas (y las profundidades). ) de conocimiento del idioma por un par de años.

El código de la aplicación que utiliza marcos y bibliotecas que están acostumbrados a escribir todos los días no puede considerarse confiable si lo escriben sin una comprensión suficiente de los diversos aspectos de su implementación. Un buen ejemplo de esto en el mundo de JavaScript es el destino de la biblioteca JQuery, que alguna vez fue el motor del progreso y hoy, al ser un campo de conocimiento cerrado en sí mismo, divorciado del resto del lenguaje, ocupa su lugar natural en el mercado: guiones semiprofesionales escritos apresuradamente y funcionando según sea necesario como regalo para el mismo diseño rápido con arranque de autónomos económicos.

El futuro de los proyectos desarrollados con un enfoque tan irresponsable, aunque sea por ignorancia, es prosaico y efímero: importantes pérdidas de tiempo inesperadas, fracasos, pérdidas financieras y de reputación y, como resultado, una disminución del entusiasmo por continuar cooperación.

Por otro lado, para una persona que ha elegido el camino de un programador, poco se puede comparar con el placer de entender lo que está haciendo. Entender que él, como el barón Munchausen, está haciendo cabriolas a caballo por un campo minado. No hace falta decir que un empleador decente puede ver claramente a personas caminando imprudentemente a través de un campo minado y a personas congeladas en la indecisión de dar un paso en una situación en la que pueden correr y saltar sin pensar en nada.

ActualizarBot

Habiendo visto los beneficios de las entrevistas y también dándome cuenta de que ir a entrevistas en blanco no es del todo ético, pensé que sería genial crear un bot donde un principiante o un desarrollador que está trasplantando a otro idioma pudiera participar en capacitación educativa sin recurrir a Entrevistas reales en esa medida, en las que me pasó a mí. Y recordando cómo a los programadores les encanta discutir y comparar los problemas que tenían que resolver, especialmente si no era algo trivial, me di cuenta de que todo encaja, rechacé todas las dudas y listo.

El bot actualmente tiene 3 funciones simples:

  • Suscripción a un lenguaje/framework particular para recibir nuevas tareas para él. Te suscribes y a medida que te llegan tareas las recibes en la newsletter diaria
  • Publicar una tarea o tarea de prueba: en mi libro dicen que compartir es cuidar
  • Un excelente generador de nombres con el que podrás elegir la firma óptima para el texto de la tarea que publiques, incluidos diccionarios femeninos, no exentos de feministas

Actualmente están disponibles los siguientes lenguajes para elegir: JavaScript, Java, Python, PHP, MySQL. La selección es algo limitada debido a los límites de mi comprensión. Espero agregar a esta lista con la ayuda de la comunidad habra.

El bot se lanza en un formato puramente rock and roll, no se espera pago por nada.
Puedes acceder a él usando este enlace: ActualizarBot

Brevemente sobre la implementación técnica.

Este bot es uno de varios proyectos pequeños a los que traeré la primera versión pública de mi miniframework de código abierto para desarrollar bots con una estructura compleja, cariñosamente llamado Hobot y disponible en NPM para personas incondicionales.

El marco está construido sobre la base de Telegraf.JS y TypeScript, su versión cero-cero-primera, equipada con un ejemplo de uso, se puede ver en githabe y pruébalo de inmediato. Pronto subiré la versión 0.0.2, ampliada y peinada para una persona desde fuera, y le dedicaré un artículo aparte (el baúl). Me alegraré si resulta tan relevante para alguien como lo es para mí.

Entonces, ¿a cuántas entrevistas tuviste que asistir?
¡Seguro que tienes algo que contar!

Fuente: habr.com

Añadir un comentario