Rompiendo la entrevista de front-end

Las entrevistas técnicas de front-end son difíciles. Es un hecho. No solo necesita tener un conocimiento sólido de los fundamentos de la informática, sino también un conocimiento de aspectos como el rendimiento web, los sistemas de compilación y los motores de diseño CSS.

Si bien existen recursos, he descubierto que solo hay unas pocas guías completas para ayudarlo a prepararse para una entrevista inicial. Así que decidí escribir un esquema de tema por tema que espero te ayude a tener éxito en tu próxima entrevista.

Antes de la entrevista

Entonces, antes de su entrevista, pregúntele a su reclutador por el formato de la entrevista. Algunas entrevistas pueden girar en torno a una pizarra, mientras que otras pueden utilizar un editor de texto en línea como CoderPad. Es importante saberlo para que pueda practicar en el entorno en el que se llevará a cabo su entrevista.

Además, pídale consejos a su reclutador sobre los temas en los que debe concentrarse durante la preparación. La razón detrás de esto es que, además de la pregunta específica de front-end, algunas empresas le harán preguntas tradicionales de informática sobre temas como algoritmos de búsqueda y clasificación.

Conceptos de front-end

Los patrones de diseño HTML y CSS, Javascript y Javascript son los conceptos clave en los que se le pondrá a prueba durante una entrevista. Repase la lista y asegúrese de sentirse cómodo con cada tema.

HTML y CSS son como el pan y la mantequilla del desarrollo front-end. Durante las entrevistas, lo más probable es que le hagan preguntas sobre los matices de HTML y CSS. Además, esté preparado para que se le pida que codifique un diseño basado en una maqueta.

En caso de que necesite un repaso de HTML y CSS, aquí hay algunos conceptos básicos para revisar.

  • Animaciones CSS
  • Sprites CSS
  • Pseudo clases
  • Sistemas de rejilla
  • Marcado semántico

Además de estos conceptos, conozca los preprocesadores CSS como SASS o LESS y sus beneficios. También familiarícese con las convenciones de nomenclatura CSS como BEM y OOCSS.

Otro punto importante es que los entrevistadores buscan candidatos que defiendan las mejores prácticas de CSS. Como buena referencia, esta guía escrita por un front-end en Medium proporciona información sobre cómo Medium iteraba a su arquitectura CSS actual.

Mencioné anteriormente que algunos entrevistadores le pedirán que vuelva a crear diseños en HTML y CSS. Practique hacerlo en un patio de recreo como CodePen. Echa un vistazo a Dribbble, ya que tiene muchos diseños simples pero agradables que serían divertidos de recrear.

Finalmente, como front-end, estamos tan acostumbrados a hacer cambios en nuestro editor y luego verificar el cambio en nuestro navegador. A menudo, durante las entrevistas, no tendrá este lujo. Cuando se esté preparando para su entrevista, intente codificar la mayor parte de su diseño sin mirar el resultado hasta el final.

Si HTML y CSS son el pan y la mantequilla del desarrollo front-end, entonces Javascript es el cuchillo. Las empresas dedicarán una buena cantidad de tiempo durante su entrevista a probar su conocimiento de Javascript. Muchas de las preguntas girarán en torno a los siguientes conceptos.

  • Herencia prototípica
  • Alcance
  • Cierres
  • El bucle de eventos
  • Evento burbujeante
  • Aplicar, llamar y vincular
  • Devoluciones de llamada y promesas
  • Elevación variable y funcional
  • Zurra

Cuando se le presente una pregunta de Javascript, averigüe en cuál de estos conceptos se está probando y será mucho más fácil encontrar la solución correcta. Si está seguro de su destreza con Javascript, pruebe sus conocimientos aquí, aquí y aquí.

Los patrones de diseño en Javascript le brindan soluciones repetibles a problemas comunes. Estos son algunos de los patrones de diseño que es importante conocer.

  • Decorador
  • Fábrica
  • único
  • Módulo revelador
  • Fachada
  • Observador
  • MVC, MVP, MVVM

Aparte de los patrones de diseño de Javascript, es bueno estar familiarizado con los marcos de Javascript. Esto no significa que tenga que aprender otro marco antes de su entrevista. En su lugar, sepa cuándo y por qué los equipos de front-end usan marcos. Además, si se está entrevistando para algo como React + Flux o una posición angular, revise parte de la documentación de la arquitectura del marco de antemano.

Conceptos de informática

Algunas empresas contratan ingenieros de software antes que los desarrolladores front-end. Lo que esto significa es que estas empresas esperan que tenga una buena base en temas como buenos principios de diseño de software, arquitectura de código escalable y pruebas.

Si su reclutador le sugiere que revise sus conocimientos sobre estructuras de datos y algoritmos, esta sección es para usted. De lo contrario, no dude en omitir esta sección. Si no tiene experiencia en informática, está bien. La mayoría de estos conceptos son bastante sencillos de aprender.

Estas son las estructuras de datos básicas que sugeriría conocer de inmediato. No se limite a leer sobre ellos, tómese el tiempo para implementarlos también en Javascript. Si no está familiarizado con las pruebas unitarias, pruebe su estructura de datos con una biblioteca como Mocha para aprender.

  • Listas vinculadas
  • Hashtables
  • Pilas y colas
  • Árboles (árboles binarios y montones)
  • Gráficos

Nota: Para gráficos, también sepa cómo implementar recorridos de búsqueda en profundidad y en amplitud.

Para implementaciones de estas estructuras de datos, puede echar un vistazo a SanFoundry. Todos sus ejemplos están en Java, pero volver a implementarlos en Javascript es bastante fácil.

Una vez que se sienta seguro acerca de las estructuras de datos, puede pasar a la clasificación. Revise la lista, impleméntelos en Javascript y luego tome nota de su complejidad temporal y espacial.

  • Búsqueda binaria
  • Ordenamiento de burbuja
  • Tipo de inserción
  • Combinar ordenación
  • Ordenación rápida
  • Orden de selección

Después de revisar las estructuras de datos y los algoritmos, pruebe sus conocimientos con Leetcode y estas preguntas técnicas de Javascript.

Envolviendolo

Sé que es mucho material para asimilar, especialmente si eres nuevo en el desarrollo de front-end. Empiece a prepararse para su entrevista con anticipación, de modo que pueda moverse a un ritmo cómodo.

Además, recuerde que las entrevistas no son una medida de su valía como programador. Algunas personas son buenas para las entrevistas, otras no. A veces hace clic con su entrevistador, otras veces no.

Si tiene alguna pregunta, no dude en dejarme una nota o enviarme un Tweet. También me encantaría saber cómo fue su experiencia en la entrevista. ¡Buena suerte!

PD: Si te gustó este artículo, significaría mucho si presionas el botón de recomendar o lo compartes con amigos.

Si quieres más, puedes seguirme en Twitter, donde publico divagaciones sin sentido sobre diseño, desarrollo front-end, bots y aprendizaje automático.