Cómo evaluar las habilidades de los desarrolladores de React Native

Publicado: Última actualización:
Cómo evaluar las habilidades de los desarrolladores de React Native

Mientras que React se lleva toda la prensa, React Native se ha convertido en una parte esencial del universo JavaScript. Permite a los desarrolladores móviles escribir aplicaciones móviles que pueden ser portadas tanto a iOS como a Android. La ventaja de esto es que en lugar de tener que desarrollar habilidades separadas para iOS (Objective-C y Swift) y para Android (Java y Kotlin), los desarrolladores de aplicaciones móviles pueden recurrir a JavaScript, el lenguaje más utilizado en este momento. Pero, como todas las pilas tecnológicas, no basta con saber JavaScript. Es necesario tener un conocimiento profundo de React Native. Entonces, ¿cómo pueden los empleadores saber si un desarrollador de React Native tiene las habilidades que necesitan?

Una guía para la evaluación de las habilidades de los desarrolladores de React Native

Esta guía dará a los reclutadores técnicos toda la información que necesitan para examinar a los candidatos a desarrolladores de React. En el interior encontrará:

¿Qué es un desarrollador nativo de React

1. ¿Qué es React Native?

React Native es un framework diseñado y mantenido por Facebook con el objetivo de simplificar el proceso de desarrollo de aplicaciones móviles multiplataforma, sobre todo en lo relativo a la interfaz de usuario. Está construido sobre otra librería JavaScript, React, que ha alcanzado rápidamente el estatus de herramienta más popular y reconocible entre los desarrolladores de frontales. Pero su ascenso ha atraído cierta controversia.

Lanzado en 2015 como proyecto de código abierto, React Native dividió rápidamente la comunidad de desarrolladores de móviles. Antes de que apareciera React Native, había una serie de herramientas que mostraban páginas web escritas en HTML, CSS y JavaScript dentro de un navegador autónomo que imitaba la aplicación nativa. Si eso suena torpe, estarías en lo cierto. Han demostrado ser un dolor de cabeza para usar y no han sido muy populares.

React Native, en cambio, evita tomar los mismos atajos que sus predecesores. La jerarquía de la vista que muestra la aplicación es completamente nativa para el sistema en el que se ejecuta. Dicho de otro modo, la aplicación parece una aplicación nativa en lugar de una página web. Esto hace que las aplicaciones React Native sean indistinguibles de las aplicaciones normales escritas en Swift, Objective-C, Kotlin o Java. Para ver cómo funciona en la práctica, echa un vistazo a aplicaciones populares como Facebook, Messenger, Instagram o Discord. Incluso un experto tendría problemas para ver qué partes de estas aplicaciones fueron escritas en React Native y cuáles fueron escritas usando otra pila tecnológica.

1.1 La diferencia entre Reaccionar vs. Reaccionar Nativo

React y React Native son dos proyectos de código abierto que han sido creados por Facebook, pero no son lo mismo. Reacciona es una librería JavaScript para construir el front-end de las aplicaciones web mientras que React Native es un framework que proporciona un conjunto unificado de herramientas para construir aplicaciones móviles tanto en iOS como en Android. Esto lleva a diferencias fundamentales como el hecho de que React se renderiza en HTML mientras que React Native no. React Native también ofrece a los desarrolladores de React Native la posibilidad de convertir o puentear vistas nativas escritas en lenguajes específicos de la plataforma como Swift o Kotlin en algo utilizable por React Native.

Pero a pesar de sus diferencias, React y React Native son notablemente similares, con React Native usando muchos de los fundamentos de React. Trabajar con React Native requiere usar 70-80% de los componentes y prácticas de React. Debido a esto, la curva de aprendizaje para que un desarrollador de React aprenda React Native no es muy empinada. Aún así, son dos tecnologías separadas que no deben ser confundidas entre sí.

2. ¿Para qué se usa React Native?

La mayor ventaja de React Native es que permite al desarrollador de React Native crear aplicaciones para diferentes plataformas sin tener que aprender y utilizar múltiples tecnicismos. Facebook llama a este enfoque "aprende una vez, escribe en cualquier lugar". Su objetivo en el desarrollo de React Native es unificar los conocimientos necesarios para construir aplicaciones móviles.

React Native ofrece a los desarrolladores una forma declarativa de construir interfaces de usuario. En términos simples, esto ofrece una curva de aprendizaje mucho más suave en comparación con el UIKit nativo para iOS o el SDK para Android. Esto ha significado que muchos desarrolladores de aplicaciones lo utilizan como una forma de entrar en el desarrollo de aplicaciones para móviles. También ha dado lugar a una serie de herramientas de la competencia como el Flutter de Google o el recientemente anunciado SwiftUI de Apple, que han sido desarrolladas usando principios similares.

Pero aunque representa una forma fácil de entrar en el desarrollo de aplicaciones, React Native es la base de algunas aplicaciones poderosas. Bloomberg, Airbnb, y UberEats son todos grandes ejemplos de aplicaciones construidas con React Native.

¿Qué debería saber un reclutador de IT sobre un desarrollador de React Native

3. ¿Qué es importante que un reclutador de IT sepa sobre React Native?

Siendo todavía un marco bastante joven, React Native está sujeto a múltiples cambios con un impacto menor o mayor en el trabajo del desarrollador. La mayoría de las veces, esos cambios son opcionales y hay pocas o ninguna depreciación dura que pueda causar que un desarrollador de React Native migre su base de código.

Debido a su naturaleza de fuente abierta, la hoja de ruta de todos los cambios y mejoras planificadas está disponible para la comunidad. Con la reciente adición de los ganchos y los cambios aún más fáciles de hacer planeados para el futuro próximo, el proceso de hacer una aplicación móvil será aún más rápido y más conveniente que nunca.

Una ventaja innegable de React Native es su amplia y útil comunidad. Muchas preguntas a todos los niveles ya han sido respondidas en un artículo de blog, una entrada en Stack Overflow, o alguna microbiblioteca publicada como un paquete NPM. Hay muchos recursos para que los principiantes aprendan y para que los desarrolladores avanzados amplíen sus conocimientos.

Sin embargo, es importante recordar que no hay que confundir el enfoque de Facebook de "aprende una vez, escribe en cualquier lugar" con el de "escribe una vez, escribe en cualquier lugar". Todavía es difícil en React Native escribir una aplicación que funcione en iOS y Android. Esto se debe a que todavía hay muchas características que dependen del sistema que requieren la división de partes de su código en versiones separadas de iOS y Android. Aún así, el objetivo de React Native es unificar las habilidades para construir aplicaciones, no crear una aplicación que funcione en ambas plataformas.

3.1 ¿Qué experiencia debe tener un desarrollador nativo de Reactancia

Cuando se evalúa un currículum de desarrollador de React Native, realmente se reduce al tipo de puesto para el que se contrata a un candidato. Estar involucrado en proyectos comerciales es una necesidad cuando se habla de posiciones de nivel senior o de liderazgo, ya que se espera que los conocimientos relacionados con el negocio para estas funciones. Para otros niveles, no importa tanto. Una de las ventajas de las contribuciones al código abierto es que pueden dar al reclutador una visión adicional sobre el estilo del código o la forma en que el candidato interactúa con la comunidad. En resumen, es muy importante entender las necesidades del equipo y las responsabilidades del puesto antes de iniciar el proceso de selección.

¿Cómo verificar las habilidades de los nativos de React en la fase de selección?

4. La selección técnica de las habilidades de un desarrollador de React Native basada en un currículum

React Native es bastante único en términos de cómo la gente se introduce en él y los antecedentes de los que provienen. Algunos desarrolladores web familiarizados con JavaScript y posiblemente también con el propio React pueden querer ampliar su conjunto de habilidades para incluir el desarrollo móvil. Por el contrario, algunos desarrolladores de móviles nativos pueden reconocer los puntos fuertes del enfoque y las herramientas de React Native y les gustaría aprovecharlos en su trabajo diario. Ambos pueden hacer una contribución significativa al equipo, el primero aportando patrones y mejores prácticas específicas de JS o React, el segundo proporcionando el conocimiento sobre algunas características y limitaciones de un entorno específico para móviles. Sería bueno que el reclutador supiera cuál sería exactamente la función del candidato y qué conjunto de habilidades demanda el equipo.

Glosario del Desarrollador Nativo de React

5. Glosario de React Native para reclutadores técnicos

Estándares actuales de JavaScript ECMAScript2015 (alias ES6), ECMAScript2019 (alias ES10)
El superconjunto de JavaScript que añade una fuerte escritura TypeScript
Reaccionar Bibliotecas nativas React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL

Gestores de paquetes

NMP, Hilo
Extensiones de JavaScript JSX
Herramientas que ayudan a mantener el estilo del código ESLint, TSLint, más bonito
Corredores de prueba Jest, Mocha

5.1 Qué tecnologías buscar en un currículum de desarrollador React Native

Una cosa importante que hay que buscar es el estándar de JavaScript con el que el candidato está familiarizado. A partir de 2015 con ECMAScript2015 (alias ES6), un nuevo estándar de JavaScript se lanza cada año. La iteración actual a partir de 2019 se llama ECMAScript2019 (ES10). Estos diferentes estándares pueden tener un impacto en el API de React Native que el candidato ha estado usando hasta ahora.

El cambio más significativo se produjo entre los estándares ES5 (2009) y ES6 (2015). Pero el código escrito en los estándares más nuevos siempre puede ser transpuesto a los más antiguos usando herramientas como Babel.

5.2 Otros aspectos a tener en cuenta en un currículum de desarrollador React Native

Una habilidad que también puede ser útil para un desarrollador de React Native es TypeScript. Se trata de un superconjunto de JavaScript que utiliza la tipificación estática. La tipificación estática, en general, ayuda a identificar algunos errores en el código mucho antes (sin embargo, no reemplazará a las pruebas unitarias en esa materia) y permite a los desarrolladores expresar sus intenciones sobre las APIs públicas que exponen al público de una manera más clara y mejor estructurada.

También hay muchas bibliotecas ad-hoc de React Native enfocadas a resolver problemas particulares como la navegación o la gestión de estados. La familiaridad con ellas está fuertemente correlacionada con los tipos de proyectos en los que el candidato ha estado trabajando. Si un candidato enumera una biblioteca como React-Router, Redux, Redux-Thunk, Redux-Saga, GraphQL, o muchas otras, esto podría ser un punto de entrada interesante de la discusión sobre la experiencia previa del candidato.

Reacciona Preguntas de la entrevista de los desarrolladores nativos

6. Reacciona a las preguntas de la entrevista de los nativos

Un currículum te permite saber cómo un candidato presenta sus conocimientos. Pero esto no es suficiente para decirte si tienen las habilidades que necesitas. Después de todo, cualquiera puede escribir cualquier cosa en un currículum. Luego deben ser interrogados sobre sus habilidades en una pantalla telefónica o entrevistados después de pasar la etapa de evaluación de las habilidades de codificación.

6.1 Preguntas sobre la experiencia de un desarrollador de React Native

Pregunta 1: ¿Podría describir las aplicaciones en las que trabajó en el pasado? ¿Cómo usó React Native en esas aplicaciones?

Razón: Esta pregunta debe servir sobre todo como calentamiento para que el candidato se abra y tome la iniciativa de hablar de su experiencia general. Es importante preguntar cómo fue usado el Reactor Nativo por su equipo como seguimiento. Esto permite al reclutador evaluar con qué áreas del React Native el candidato puede estar familiarizado - por ejemplo si el RN fue usado en toda la aplicación, o sólo en algunas de las pantallas, si fue puenteado con partes nativas escritas en Objective-C/Java, etc.

Q2: ¿Por qué usted y su equipo eligieron usar React Native? ¿Cuál fue el mayor punto de venta para usted? ¿Cómo ayudó en las aplicaciones en las que ha trabajado?

R: La respuesta a esta pregunta puede decirle al reclutador varias cosas. Muestra parcialmente el puesto o las responsabilidades que el candidato tenía en su equipo - ¿estaba involucrado en el proceso de toma de decisiones? E incluso si no, ¿son conscientes de los propósitos clave de los Reaccionarios Nativos que podrían haber vendido la idea a sus compañeros? Eso también muestra si el candidato es capaz de tomar una decisión técnica basada en los requisitos comerciales de las aplicaciones con las que trabajó o si simplemente están siguiendo la tendencia.

Q3: ¿Cómo manejó el estado en esas solicitudes? ¿Cómo funcionó?

R: Esta es una pregunta un poco más técnica. Dado que React Native en su núcleo es sólo la capa de la interfaz de usuario, es importante saber lo que el candidato ha utilizado para llenar los espacios en blanco restantes, uno de los cuales es la gestión del estado. Esto tiene el potencial de abrir la discusión sobre el flujo de datos unidireccional (redux, flux) o el manejo del estado desde servicios externos (REST, GraphQL). También da una idea de la capacidad del candidato para evaluar los pros y los contras del enfoque adoptado, que es una habilidad crucial en el autodesarrollo.

6.2 Preguntas sobre el conocimiento y las opiniones de un desarrollador de Reactancia Nativa

Q1: ¿Qué tipo de componentes se pueden usar en React Native? ¿En qué se diferencian? ¿Cuándo usar cuál?

R: Esta pregunta puede ser interpretada por el candidato de varias maneras. Los componentes podrían dividirse en contenedor/presentacional o en estatal/puro/funcional. No importa qué forma de pensar muestre el candidato aquí, esta pregunta trata más bien de que el candidato sea capaz de hablar sobre el propósito o los límites de cada uno preferentemente en el contexto de su propia experiencia.

Q2: ¿Cómo se reutiliza el código en su aplicación? ¿Qué técnicas conoces para compartir la lógica común y cuál es tu opinión sobre ellas?

R: Hay varias maneras de lograr la reutilización del código, las más populares son los componentes de orden superior, Render Props, Hooks, y Context. Su uso se basa generalmente en la preferencia del equipo, así que el punto principal aquí es que el candidato explique por qué usaría uno en lugar del otro. Esto debería dar al reclutador una idea de cuán profundo es el conocimiento del candidato, una comprensión de los internos de los Nativos de Reacción, y cuánto le importa al candidato un código limpio y mantenible.

Q3: ¿Cómo se depura la aplicación? ¿Qué herramientas utiliza y cuán útiles son?

R: La mayor parte del tiempo de un desarrollador de React Native se dedica a leer, analizar y depurar la base de código existente. Por eso es crucial la habilidad y el conocimiento necesarios para depurar la aplicación de forma adecuada y eficiente. El candidato podría mencionar diferentes enfoques que van desde el uso de registros simples hasta la conexión de un depurador para utilizar puntos de ruptura o la inspección de la jerarquía de vistas a través de las herramientas de React Dev. Cada uno de ellos tiene algunos casos específicos en los que brilla con luz propia, por lo que el candidato también debería mencionar un ejemplo de situación en la que se haya utilizado. Puntos de bonificación por mencionar una prueba de unidad que reproduce el error y hacerla pasar como una forma de determinar que el error fue corregido y permanecerá corregido en el futuro.

Q4: ¿Alguna vez ha tenido problemas de rendimiento con su aplicación? ¿Qué utilizó para diagnosticarlos? ¿Cómo los resolvió?

R: La actuación de React Native es a menudo mencionada por los escépticos en cuanto a su utilidad. Si bien es cierto que es fácil caer en algunas trampas causando que la tasa de fotogramas disminuya en el proceso, la comprensión de los internos de React y React Native es suficiente para mitigar esos problemas. Los candidatos pueden mencionar técnicas como la memorización, mejoras como los componentes puros o trampas como las funciones en línea. Estas cubren una parte significativa de las razones que hacen que la interfaz sea menos sensible. Cuando los candidatos hablan de herramientas como el perfilador y conceptos como la mezcla y la representación fuera de pantalla, queda claro que se han enfrentado a cuestiones verdaderamente complejas (probablemente con animaciones). La respuesta ideal también debería mencionar que para mejorar el rendimiento, es necesario tener un conjunto de métricas para minimizar o maximizar (como el FPS, el consumo de memoria o de CPU, etc.) ya que sin ellas es difícil evaluar si el desarrollador de React Native va en la dirección correcta.

Q5: ¿Qué hay de las pruebas? ¿Los usaste? ¿Cómo ayudaron a tu equipo? ¿Qué tipo de pruebas usaste?

R: Las pruebas siguen siendo un tema sorprendentemente controvertido. Le guste o no, una aplicación tiene que ser probada al menos de alguna manera antes de ser enviada a producción para asegurarse de que las nuevas características funcionan según lo especificado y, lo que es más importante, que la antigua no se ha roto. Tener un equipo de control de calidad fuerte y dedicado definitivamente ayuda con esto, pero tener pruebas de unidad o instantáneas le da al desarrollador de React Native una retroalimentación inmediata que puede usar para arreglar el código. Las pruebas son una herramienta para los desarrolladores que aumentan significativamente su confianza en los cambios que se introducen en la base del código. Una prueba capturará el momento en que la aplicación funciona correctamente y mantendrá esa corrección a partir de ese momento. Existen múltiples test de JavaScript, siendo Jest el más recomendado en el contexto de React Native, especialmente porque proviene de los autores de React Native. Además, uno puede usar un ejecutor de pruebas de React para probar el comportamiento del componente en particular o tomar una foto de toda una jerarquía de vistas para protegerla de cambios inesperados.

Q6: ¿Cómo mantienes el estilo de código entre tu equipo? ¿Cómo manejan la base de código juntos?

R: Se trata de una pregunta más ligera para revelar el conocimiento que tiene el candidato de las diferentes herramientas utilizadas en el proceso de desarrollo. Las respuestas aquí pueden ser muy amplias. Pueden ir desde Prettier y ESLint, que en consecuencia automatiza el formato del código y comprueba si el código escrito coincide con las reglas establecidas por el equipo, hasta conceptos como la integración continua o incluso sistemas de control de versiones como Git. El candidato podría incluso mencionar prácticas como la revisión de código. El objetivo principal de la pregunta es mostrar cómo y de qué manera los candidatos colaboraron con sus equipos, y cuánto del trabajo repetible fueron capaces de automatizar.

6.3 Preguntas de comportamiento para hacer a un desarrollador de React Native

Q1: ¿Cuál fue el mayor logro de su carrera? ¿Cuál fue el mayor error? ¿Qué medidas tomaría para repetir el éxito o evitar la repetición del fracaso?

R: Una pregunta bastante genérica pero que muestra la capacidad de auto-reconocimiento y auto-crítica del candidato. Ambas son necesarias en el proceso de aprendizaje que es una parte constante de ser un gran desarrollador de software.

Q2: ¿Cómo manejaría una situación en la que su proyecto tiene una fecha límite fijada para mañana, pero todavía hay algunas características que implementar?

R: Eso no es tan difícil de imaginar en absoluto y hay una gran posibilidad de que el candidato se haya enfrentado a una situación como esta en el pasado. Tal vez el candidato trató de negociar y ganar más tiempo para terminar el trabajo. Tal vez se sentaron con el dueño o gerente del producto para priorizar las características y atenerse a algún tipo de MVP. Tal vez implementaron algunas características de una manera rápida pero no muy mantenible para ganar tiempo y establecer un recordatorio para hacer una limpieza más tarde. Hay diferentes enfoques y los objetivos de esta pregunta son mostrar al reclutador si los candidatos comprenden la importancia de los objetivos comerciales y si son capaces de hacer algunas concesiones a nivel técnico para cumplirlos.

Q3: ¿Qué recursos recomendaría para el desarrollador junior/regular que le permitirían mejorar sus habilidades? ¿Le gustaría ser mentor de tal desarrollador? ¿Ha hecho eso en el pasado?

R: La respuesta a esta pregunta es una forma indirecta de comprobar cuáles de esos recursos utilizó antes el candidato y por qué. Esto le da al reclutador información adicional sobre los antecedentes. La parte de tutoría puede indicar si al desarrollador de React Native le gusta compartir conocimientos que también pueden impactar positivamente en el equipo.

Q4: ¿Qué áreas del desarrollo de móviles o del desarrollo de software le gustaría explorar o con las que le gustaría familiarizarse más? ¿Por qué?

R: Esta pregunta le da al reclutador una o dos pistas sobre qué temas podrían ser interesantes para el candidato y en qué dirección le gustaría desarrollar su carrera. Permite al reclutador evaluar si el proyecto para el que se recluta al candidato sería una buena opción.

Reaccionar las pruebas de codificación del desarrollador nativo

7. Examen técnico de las habilidades de los desarrolladores de React Native utilizando una prueba de codificación en línea

Un currículum de desarrollador React Native contiene las habilidades que tus candidatos dicen tener y la pantalla telefónica te da la oportunidad de comprobar si tienen conocimientos teóricos de los conceptos relacionados con el desarrollo React Native. Pero solo porque un candidato tenga conocimientos teóricos, no es seguro que pueda aplicarlos a los aspectos prácticos del desarrollo de software. Un test de codificación online puede darte una idea de lo bien que un candidato puede desarrollar una aplicación usando React Native.

7.1 ¿Qué prueba de programación de React Native debería elegir?

Hay unas cuantas opciones, pero es importante elegir una prueba que use específicamente React Native, no JavaScript, o React. Aquí hay algunas pautas:

  • La prueba refleja el trabajo que su compañía hace
  • Es una duración razonable, de una a dos horas (o incluso menos)
  • El envío está automatizado
  • La prueba puede ser tomada en la casa del candidato
  • Comprueba la calidad del código y los casos de borde, así como las soluciones
  • El candidato tiene acceso a todos los recursos normales que utilizan para desarrollar software
  • Es un proyecto en pila que no sólo da al candidato acceso al marco de React Native, sino también a las diversas bibliotecas que se utilizan con React Native
  • Está calibrado para coincidir con el nivel de la posición

7.2 Pruebas de evaluación de la codificación de los desarrolladores nativos de DevSkiller listos para usar en línea React

Las pruebas de react Native de Devskiller están construidas con nuestra metodología RealLifeTesting™ para garantizar una instantánea completamente precisa de las habilidades del candidato. El test se puede realizar en el lugar y momento en el que el candidato se sienta más cómodo y preparado. Tienen acceso a cualquier recurso que necesiten como GitHub, Stack Overflow, Google y otras bibliotecas de React Native. Esto es una característica, no un error, ya que muestra las decisiones que toma el candidato en un entorno de programación natural. Puedes ver lo bien que el candidato completa la tarea pero también, las decisiones que toma, la lógica de negocio que aplica, la eficiencia y limpieza de su código, y lo bien que conoce el stack tecnológico.

Puedes construir tu propio test o usar uno de los tests de DevSkiller, construido por expertos nativos de React.

Reaccionar nativo
SENIOR
Habilidades probadas
Duración
108 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de ES6, JavaScript

Tarea de programación - Nivel: Duro

React Native | Movie Store - Implementa una aplicación que permite a los usuarios comprar todas las películas que puedan imaginar.

Reaccionar nativo
MIDDLE
Habilidades probadas
Duración
101 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de ES6, JavaScript

Tarea de programación - Nivel: Medio

React Native | HR Companion App - Implementar una aplicación para ayudar al departamento de RR.HH. a mantener la lista de candidatos a ser evaluados.

Reaccionar nativo
JUNIOR
Habilidades probadas
Duración
70 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de ES6, JavaScript

Tarea de programación - Nivel: Fácil

React Native | Ultimate BugTracker - Implementa las características que faltan y corrige los errores en la aplicación utilizada como rastreador de errores de una casa de software.

Compartir correo

Más información sobre la contratación de tecnología

Suscríbase a nuestro Learning Hub para recibir información útil directamente en su bandeja de entrada.

Verificar y desarrollar las habilidades de codificación sin problemas.

Vea los productos DevSkiller en acción.

Certificaciones de seguridad y cumplimiento. Nos aseguramos de que sus datos estén seguros y protegidos.

El logo de DevSkiller Logotipo de TalentBoost Logotipo de TalentScore