¿Por qué los desarrolladores front-end tienen una demanda tan alta en las startups si el desarrollo front-end es relativamente más fácil que otros campos de la ingeniería?

“¿Por qué los ingenieros de Javascript y Front End reciben un pago tan alto a pesar de que sus trabajos son tan fáciles?”

Las personas que consideran que el desarrollo front-end es fácil generalmente se dividen en una de dos categorías.

  1. Los que están dotados.
  2. Aquellos que ignoran, intencionalmente o no, lo siguiente:
    • Compatibilidad entre navegadores y versiones : conocer o buscar las limitaciones de cualquier versión de cualquier navegador en comparación con sus contrapartes.
    • Degradación elegante (o tolerancia a fallas) : cuenta y selecciona juiciosamente las características para eliminar en navegadores o hardware con menor capacidad.
    • Mejora progresiva : comienza con un concepto básico y funcional y sabe qué funciones agregar a su proyecto y cuándo.
    • Accesibilidad web : construcción de un sitio de tal manera que los usuarios discapacitados puedan usarlo de manera fácil y segura.
    • Diseño receptivo (RWD) : creación de sitios que mantendrán la integridad de su diseño en cualquier tamaño de pantalla.
    • Optimización táctil : comprender las capacidades y limitaciones que presenta la navegación exclusivamente con una pantalla táctil.
    • Selección de marco : identificar los momentos correctos e incorrectos para usar un marco y saber cómo lograr lo que hacen los marcos sin un marco.
    • Reutilización de código : elimina el código duplicado a través de funciones y saber cuándo y qué bibliotecas usar y confiar en cualquier situación.
    • Administración de contenido : asociar el CMS correcto con su proyecto en función de las características que necesita y el cliente para el que está construyendo.
    • Entrega de contenido : mejora de los tiempos de carga al elegir qué contenido se debe entregar y qué redes se adaptan mejor a ese contenido.
    • Control de fuente : uso de Git, SVN o programas similares para realizar un seguimiento de su trabajo y minimizar los conflictos con otros programadores.
    • Diseño web : hablar lo suficiente del lenguaje de diseño para comunicarse de manera competente con su diseñador sobre todo, desde la elección del color hasta la experiencia del usuario.
    • Arquitectura de la información : organizar y estructurar un sitio web incluso antes de escribir una línea de código, a través de wireframes y otras herramientas.
    • Desarrollo de back-end : comprender al menos los conceptos básicos del código del lado del servidor, las API y las bases de datos para comunicarse de manera inteligente con sus contrapartes de back-end.
    • Código legible y bien documentado : escritura de código que no solo es funcional, sino también comprensible y con un formato consistente para la próxima generación de mantenedores.
    • Flujos de trabajo de desarrollo eficientes y organizados : utilizando las herramientas adecuadas para rastrear errores, horas, ideas, mensajes y más.
    • Gestión de clientes : clasificar las diferencias entre solicitudes, requisitos y realidad (y hacerlo cortésmente ).
    • Trabajo en equipo y colaboración : valorar a las personas con las que trabaja, sus opiniones y su derecho a tenerlas.
    • Autoeducación constante : mantenerse al día con los cambios diarios en las especificaciones, requisitos, herramientas, oportunidades y dificultades en el ámbito del desarrollo front-end.
    • Mantener un equilibrio adecuado entre la vida laboral y personal : resistir el impulso de sentarse inmóvil (ahorre para alcanzar bocadillos / bebidas) mientras pasa “solo cuatro horas más” para descubrir el error de la consola.

Y eso ni siquiera es una lista exhaustiva (enumeré el diseño web como una sola viñeta, por el amor de Dios). Estas son solo algunas de las cosas que he encontrado y aprendí a apreciar desde que me convertí en desarrollador front-end. Las personas que no pueden revisar esta lista y marcar con seguridad todas estas casillas no deberían considerar fácil el desarrollo front-end, algo en lo que no hay vergüenza. Es solo otra oportunidad para aprender.

Pero probablemente solo eres un superdotado.

Hay dos razones, una de las cuales es que su premisa es incorrecta. La ingeniería frontend se descarta como fácil porque hay una desalineación de las perspectivas entre la frontend y los ingenieros de sistemas.

Los desafíos en la ingeniería de sistemas se centran en hacer estables, eficientes y rápidos. Por lo general, eso significa mucho trabajo con algoritmos y trucos de bajo nivel, eliminando esa garantía adicional o un tiempo de respuesta adicional de milisegundos. (O podría tener un problema de concurrencia, en cuyo caso realiza disparos hasta que la concurrencia tenga sentido). Pero dado que esas son las métricas que les interesan, y mejorarlas es un problema difícil que requiere mucha habilidad, la definición de “difícil” de la gente del sistema “está predispuesto naturalmente hacia ese tipo de ingeniería.

El mundo frontend es muy diferente. Tendemos a ver las cosas desde la perspectiva del producto: menos “¿Cómo puedo acelerar esta consulta?” y más “¿Cómo puede mi flujo permitir que esta consulta resuelva un problema para que mi usuario no se dé por vencido y abandone?” Los desafíos rara vez se resuelven mediante alguna técnica sacada de un documento o una visión nocturna que elimina un factor de n .

Trabajamos con herramientas deficientes en plataformas inconsistentes ejecutadas por cada tipo de dispositivo que puedas imaginar, todo “estandarizado” por un comité sin dientes y glacialmente lento que en su mayoría nos frena, con el mandato de doblar la web en formas que no estaban destinadas a tómelo mientras se asegura de que el producto funcione para todos, pase lo que pase, todo a un ritmo de cambio que muchas personas no pueden seguir, y nuestra métrica es la perfección.

Las composiciones perfectas en píxeles, en diferentes navegadores con diferentes motores de JavaScript e implementaciones con errores diferentes de diferentes borradores de CSS, son casi siempre un requisito. Nuestra definición de hard incluye funciones modernas falsas en navegadores antiguos, JavaScript que “simplemente funciona” y diseños que se transforman mágicamente entre pantallas grandes y dispositivos móviles sin preguntar en qué se están ejecutando ni cambiar ningún código. (Y justo cuando esa complicada combinación de hacks y cuñas finalmente está funcionando, se estandarizan nuevas API que resuelven mejor esos problemas pero también nos causan nuevos problemas. Entonces es cuando comenzamos a tomar fotos).

Cuando las personas de sistemas miran lo que hacemos, piensan que es fácil porque no ven mucho de lo que piensan que es difícil, en parte porque están enfocados en los números mientras que nosotros estamos enfocados en los usuarios, y en parte porque las cosas que pensamos son difíciles son cosas que simplemente no les interesan. Nuestros trabajos son difíciles en formas que no les importan. Algunas personas pueden descartar la interfaz como “cualquier trabajo” que otra persona pueda hacer mientras se concentran en las cosas difíciles, pero la verdad es que probablemente no podrían simplemente sentarse y hacerlo si lo intentaran. No es la forma en que lo haría un ingeniero frontend, y no es una forma en que el primero contratado no quiera renunciar después de que la compañía decida que es hora de conseguir uno.

Las personas eligen los campos que eligen porque quieren hacer lo que les interesa. Los ingenieros de software inteligentes son lo suficientemente inteligentes como para hacer un gran trabajo donde sea que decidan aplicarse, por lo que sería genial si pudiéramos cortar la basura y simplemente respetar las contribuciones de los demás. Ambos son difíciles, y los necesitamos a ambos para hacer excelentes productos.

Prometí dos razones, así que aquí está el # 2: la baja barrera de entrada del trabajo frontend significa que la variación en la habilidad en el grupo de candidatos es mayor que para los ingenieros de back-end. Los candidatos que realmente desea, y aquellos para los que hay demanda, son ingenieros primero y personas frontales en segundo lugar. Esa ingeniería frontend es un campo bastante nuevo, junto con el hecho de que cada inicio web necesita al menos uno de ellos, es una receta para la baja oferta y la alta demanda.

More Interesting

¿Debo reclutar desarrolladores para una idea de aplicación que tengo?

¿Qué tan común es ofrecer compensación de acciones a un reclutador de contingencia para un inicio de pre-serie A además de una tarifa de colocación?

¿Qué debo hacer para prepararme para la entrevista telefónica interna de Amazon SDE en 3 días?

¿Dónde puedo encontrar freelancers mucho mejores que eLance, oDesk parece aprovechar?

¿Alguien ha probado los sistemas de seguimiento en línea antes?

¿Cuál es la diferencia entre un buen desarrollador y un gran desarrollador?

¿Cuáles son algunos mecanismos sociales para descubrir personas con talento?

¿Por qué se contratan múltiples reclutadores para encontrar un candidato?

Cómo lograr que abandonen sus trabajos actuales sin tirarles mucho dinero

¿Qué debo hacer si solicité sin éxito 200 empleos después de una experiencia de inicio y no obtuve más efectivo?

Estamos buscando contratar a dos desarrolladores de PHP de Europa del Este en nuestra startup. ¿Dónde deberíamos buscar y algún consejo para encontrar buenas coincidencias más allá de las mejores prácticas típicas de contratación de desarrollo?

¿Debería enfocarse en un área de experiencia en ingeniería de software?

¿Es mejor Sourcing.io o YesGraph?

¿Cómo se aseguran las agencias de contratación en línea de que se les pague? ¿Cómo se aseguran de que las empresas no contraten candidatos a sus espaldas?

¿La contratación es realmente tan competitiva en Silicon Valley que tiene que contratar equipos completos a la vez o Stripe solo está controlando Business Insider?