¿Por qué los desarrolladores frontend a veces desprecian a los desarrolladores de back-end y por qué algunas personas piensan que la interfaz de usuario es más fácil que back-end?

No me siento así en lo más mínimo. El trabajo frontal es bastante intimidante para mí, al menos cuando se trata del trabajo público.

Las tendencias cambian tan rápido y se necesita mucho para manipular lo que está disponible para que funcione de maneras nuevas y novedosas que mantengan contentos a los usuarios.

Con la programación de back-end hay enormes complejidades, especialmente a medida que las aplicaciones se hacen más grandes.

Con el software de grado empresarial, parece que la mayoría de las interfaces de usuario son una ocurrencia tardía. “Oh, necesitas otra interfaz CRUD, simplemente la incluiré en tu plantilla maestra de la que solo tienes que crear una”

Este no tiene que ser el caso, y eso es probablemente todo lo que la mayoría de los desarrolladores de back-end han visto desde que tuvieron que tomar una clase de UI o armar una UI en la universidad.

La interfaz de usuario es, al final, lo que a menudo puede pagar las facturas, es lo que hace que la gente regrese, es lo que permite que su aplicación sea útil.

Un pensamiento también podría ser que los “chicos del front-end” son simplemente diseñadores glorificados. Son artistas pintando un cuadro. No tienen que lidiar con la lógica y la programación, solo juegan en mspaint y lanzan una página web. Obviamente, esto no es cierto y las partes frontales hoy en día son piezas de maquinaria increíblemente complicadas, tanto que están completamente desacopladas de la parte trasera. Como persona de front end, TIENE que saber al menos 3 idiomas o marcos diferentes para que las cosas funcionen juntas, debe administrar tantas capas en cascada y otras cosas para que todo funcione correctamente.

Supongo que mi digresión ha surgido dos pensamientos o conceptos erróneos que podrían tener: los formularios y las pantallas de contenido son simples, y usted es solo un tipo artístico, no un programador.

No menosprecio tampoco (he sido ambos y actualmente soy ambos simultáneamente).

Hasta hace muy poco, la complejidad de la programación en el desarrollo frontend era mucho más simple que el backend. No hay una versión de back-end de “Sé jQuery, no Javascript”. Cualquier sitio o aplicación no trivial requiere una comprensión más sofisticada del lenguaje y la pila de tecnología subyacente que un nivel de comprensión de “jQuery Copypasta Developer”.

La cuestión es que, en la era de aplicaciones y juegos web ricos, dinámicos y altamente interactivos, todo esto está cambiando. Aprender Angular, React o un marco WebGL (por no hablar de WebGL en bruto) es tan desafiante como usar un marco de back-end como Rails, Django o Laravel. Escribir JS puro y de alto rendimiento sin un marco es un trabajo duro. Este es un nivel completamente nuevo de Javascript. De repente, necesitamos saber cómo funciona Javascript de forma exhaustiva e íntima, y ​​el código de la interfaz suele ser más complejo que el backend (que se ha relegado en gran medida a la tarea de organizar los datos de una base de datos en JSON y manejar las sesiones).

TL; DR: Los desarrolladores frontend todavía llevan el estigma de una era más simple cuando las cosas más impresionantes que se esperaban que hicieran involucraban hacer que los elementos DOM desaparecieran y reaparecieran con estilo. Si eso es todo lo que puede hacer hoy, puede repensar el uso del título.

Hmm … Me pregunto si esta pregunta se ha hecho antes …

¿Por qué tantos desarrolladores de backend dicen que la interfaz es más fácil?

¿Es cierto que los desarrolladores de backend tienen mejores habilidades técnicas que los desarrolladores web o móviles frontend?

¿Por qué los desarrolladores de backend tienen más confianza en su profesión que los desarrolladores frontend?

¿El desarrollo del backend es realmente más difícil que el desarrollo frontend?

¿Por qué los chicos de backend siempre se sienten superiores a los chicos de frontend?

Parece un patrón.

Incluso ya he respondido una variante una vez.

La respuesta de Tim Mensch a Si eres un desarrollador de back-end, ¿crees que solo los desarrolladores débiles trabajan en front-end?

Breve resumen: el front-end comienza más fácil que el back-end, pero ambos pueden ser difíciles. El front-end también puede ser bastante molesto, y con tanta frecuencia cuando te vuelves lo suficientemente bueno como para hacer back-end, con frecuencia decides cambiar.

Y puede haber disonancia cognitiva en juego que hace que los desarrolladores de back-end que cambian el desarrollo front-end de badmouth. Su nuevo equipo será mucho mejor que su antiguo equipo, después de todo.

He hecho front end, back end, desarrollo de aplicaciones, desarrollo móvil y desarrollo de juegos. Tanto la web de front-end como la de back-end son generalmente las opciones más fáciles mencionadas anteriormente, y la de back-end generalmente es más fácil en el peor de los casos. Quiero decir, el desarrollo front-end incluye cosas como Google Docs, y a menos que se incluya la escritura de software de base de datos o la implementación de algoritmos de aprendizaje automático en “desarrollo back-end”, nada en el back-end se acerca.

Personalmente no, pero entiendo por qué sucede esto.

La mayor parte del trabajo pesado, por así decirlo, se realiza en la parte trasera. Técnicamente, puede escribir todo con solo el back-end y luego crear un front-end funcional pero feo / lento como desarrollador de back-end. Ahora tienes una aplicación que funciona.

Realmente no puedes hacerlo al revés. No puedes hacer un bonito front-end y hacer que la aplicación sea funcional. Eso simplemente no funciona. Por lo tanto, los desarrolladores front-end necesitan desarrolladores back-end para que las cosas funcionen, pero no necesariamente al revés.

Además, el desarrollo de front-end tiende a ser muy pesado en diseño y contexto, por lo que una serie de desarrolladores de back-end simplemente se sienten intimidados por el trabajo necesario para recogerlo y mantenerse al día para que se conviertan en zorro y uvas agrias.

Entonces, parte de eso es, parte de eso es que cuanto más bajo es el lenguaje, más “duro” es visto por el programador (con los programadores de la Asamblea obviamente siendo lo más bajo posible). Supongo que puede haber una percepción de que las personas de front-end son más flash sin función.

Pero en realidad, sin una buena interfaz, a nadie le importa una mierda si su código es hermoso. Desde el punto de vista de un desarrollador, el front-end puede parecer detalles. Pero desde el punto de vista del usuario, la interfaz de usuario es una de las piezas más importantes y puede ser fácilmente la diferencia entre comprar o usar algo y no. El front end puede ser menos importante para la función de la aplicación, pero es de vital importancia venderlo u obtener usuarios.

Permítanme comenzar diciendo que no pienso menos en los desarrolladores frontend, pero permítanme tratar de explicar por qué creo que los frontenders sienten que los backenders los menosprecian.

Básicamente, la mayor parte de la lógica de su aplicación debe estar en el backend. Si lo crea en la interfaz, probablemente esté haciendo algo mal y cree algo que será inmanejable en el futuro.

Dicho esto, creo que siempre se necesitará algo de lógica en la interfaz, pero la parte siempre será, o siempre debería ser, la parte menos complicada.

Debería considerarlo como la capa superior de su aplicación. Debajo está la capa de lógica empresarial de back-end, luego está la capa de aplicación y la capa de base de datos. Básicamente, los frontenders están trabajando en la capa superior que debería contener la menor lógica.

Otra cosa es que muchas de las personas que realizan desarrollo frontend tienen más experiencia en diseño. Son personas que comenzaron a pegar copias para darles a algunos de sus diseños que simplemente transformaron a html algo de interactividad. En el camino, mejoraron, comenzaron a comprender lo que copiaron, pudieron producir ese código ellos mismos, pero aún no tenían la capacidad de crear una aplicación bien estructurada. Los diseñadores son geniales en la parte gráfica. Quizás incluso en la parte UX, pero cuanto mejor estén en la parte gráfica, menos buenos serán en la parte lógica. Si eres igualmente bueno en lo gráfico y en lo lógico, entonces probablemente seas mediocre en ambas áreas.

Ahora también hay muchas personas que no provienen de un entorno de diseño, sino que comenzaron a hacer programas frontend (durante o) cuando salieron de la escuela. Pueden convertirse en buenos programadores, pero simplemente carecen de la experiencia. Lo que probablemente solo ganarían haciendo trabajo de backend.

Entonces, en mi opinión, los mejores frontenders serían los que tienen un fondo de back-end y apestan en el diseño gráfico.

Pero dado que el scrumm es totalmente una cosa hoy en día, siento que ya no deberíamos tener frontenders y backenders, solo desarrolladores. Todo el equipo debería estar haciendo frontend, backend y mantenimiento.

No estoy seguro de si es posible responder directamente a la pregunta, pero puedo dar una opinión :

Es un poco irónico, pero en mi experiencia en los últimos dos años en los países occidentales, en realidad son los desarrolladores front-end los que (erróneamente) ven a los desarrolladores back-end como ‘heredados’, ‘reemplazables’, etc., y tienen un alto potencial de ingresos.

La realidad es que una aplicación real de cualquier tamaño necesita muchas disciplinas:

  • Análisis.
  • UX
  • Diseño (que es distinto de UX).
  • Gestión de proyectos.
  • Pruebas.
  • Seguridad.
  • Desarrollo front-end (y esto puede ser web, móvil nativo, aplicación de escritorio, todos conjuntos de habilidades muy diferentes).
  • API / Business Logic (también conocido como ‘Backend Developer’).
  • Arquitectura de datos (generalmente requerida para escalabilidad, almacenamiento de datos, selección de las tecnologías correctas).
  • Informes
  • etc …

Si ha trabajado en aplicaciones empresariales serias, estoy seguro de que podrá señalar varias disciplinas que me he perdido. Me detuve cuando estaba a punto de escribir Cumplimiento … tienes la idea …

Se espera que el típico “desarrollador de backend”, que ha trabajado para una empresa mediana, esté familiarizado con quizás 6 de la lista anterior; Análisis, pruebas, seguridad, API / lógica de negocios (más sobre eso más adelante) y arquitectura de datos, informes.

El típico “desarrollador front-end” tal vez 3; Una comprensión básica de UX, diseño y desarrollo front-end para web o dispositivos.

Uno de los ‘problemas de imagen autoinfligidos’ del ‘desarrollador front-end’ de hoy, y específicamente, cuando se relaciona con el desarrollo web, es la arrogancia percibida ; que podemos hacer todo en JavaScript. Demasiados están hablando (blogueando, publicando, etc.) en esta línea:

Arme una página web, agregue Meteor.js, agregue Node.js, inicie Mongo y listo, una historia de éxito de ‘pila completa’ en un editor de texto.

El desarrollo del mundo real para cualquier cosa grave simplemente no es así, por lo que parece arrogante e inexperto.

El ‘Backend Dev’ considerará temas como qué enfoque adoptar: TDD, BDD … qué arquitectura (puertos y adaptadores, CQRS), cómo organizar las entidades de dominio, dónde se llevará a cabo una validación compleja (posiblemente incluyendo a un tercero) y no será FaceBook o Twitter, podría ser un proveedor de bóveda con detalles de tarjeta de crédito para pagos recurrentes) como parte de una transacción compuesta, que mantiene la integridad de los datos. Los datos y las migraciones existentes serán parte del problema que se abordará. Existen razones por las cuales existen tecnologías y conceptos tales como Service Bus, Message Queue Server, Pub Sub, Eventos de dominio, Entrega ordenada, Coordinación de transacciones distribuidas, etc., etc. Existen razones por las que existen idiomas como Scala y Haskell; JavaScript no es el único idioma.

El desarrollo front-end es complejo en estos días; También se está moviendo a un ritmo increíblemente rápido. Es un enfoque en proyectos, ya que típicamente, el back-end es más estable; no hay una ‘tecnología de moda’ que llegue todas las semanas, eso hace que todo sea ‘obsoleto’ de la noche a la mañana. Por lo tanto, no ocupa tantos titulares en lo que se ha transformado del periodismo en los blogs.

Lo que me lleva a expresar mi opinión de que el problema principal es la ‘mentalidad de inicio’ que parece estar en los titulares en estos días. Demasiadas compañías no planean realmente a largo plazo, quieren obtener capital de riesgo, llegar a los titulares, comprarse, ganar mil millones. Esto se refleja en sus estrategias de desarrollo y enfoque: hazlo bonito, agrega algunas palabras de moda, mantenlo funcionando el tiempo suficiente para que podamos encontrar un comprador.

Entonces, al menos en Occidente, el front-end y JavaScript están ‘calientes’.

Podría darse el caso de que en el mercado chino, existe una dinámica diferente en la empresa y el nivel de desarrollo, que reconoce la complejidad, importancia y el valor posterior del “desarrollo de backend”.

Más de un mito. Cualquier desarrollador que mire hacia abajo en la interfaz significa que no ha hecho mucho al respecto. Frontend es igualmente, a veces más difícil de desarrollar que backend. El backend incluye lógica y razonamiento, al igual que el frontend. Tanto el backend como el frontend funcionan igualmente bien en la reforma de las habilidades de pensamiento. La codificación es común en ambos, ya sea jquery en frontend o php en backend.

Pero lo que hace que Frontend sea más dolor de cabeza es su interacción directa con el usuario. Como dice la cita, la primera impresión es la última impresión. Frontend es la parte que es visible para el usuario, y si no está diseñada adecuadamente, teniendo en cuenta el tamaño de la pantalla, las combinaciones de colores, la creatividad, la facilidad de navegación, la comprensión, las expectativas del usuario según la tendencia y la ocasión, por muy buenas que sean backend es, podría ser puesto en vano.

El tiempo nunca es constante, también lo es la tendencia. Cada día queremos algo, bueno, mejor, fresco. Y así, la web está evolucionando … los desarrolladores frontend nunca pueden ser subestimados, al menos por un experto.

Esto es algo que está cambiando rápidamente. Tradicionalmente, el código de Front End era en gran medida desechable, y era un lujo para los proyectos tener BUENOS. El back-end gestiona los DATOS, el producto esencial de los sistemas de aplicación. Simplemente sospecharía que a medida que China / Asia madure en las prioridades comerciales, terminarán donde los desarrolladores norteamericanos parecen estar ahora.

Son diferentes habilidades involucradas para cada uno. Mientras que la parte de codificación y la comprensión de un lenguaje de cualquier tipo es sencillo. Hacer bien uno u otro implica pensar de manera diferente. El back-end requiere pensar en seguridad, redes y más problemas de rendimiento de hardware. Front End requiere mucha reflexión sobre UX.

A lo largo de mi tiempo, he experimentado una remuneración inferior durante algún tiempo, pero por aquí, hay un exceso de desarrolladores de back-end, mientras que los desarrolladores de Front-End tienen una gran demanda porque las empresas deben destacarse y producir interfaces atractivas y que funcionen bien. Los clientes piensan que son productos de buena calidad. Muchas startups pueden funcionar con sistemas de back-end 1/2 dañados y mejorarán y se solucionarán a medida que avanzan, pero pueden desaparecer rápidamente si sus aplicaciones no se compran / usan por falta de buena ingeniería / diseño de UX.

Rara vez veo a un programador back-end aprender la codificación front-end, y de repente puedo traducir un diseño de PS decente a HTML / CSS con precisión de píxel perfecto. Mientras que si contratas a un desarrollador de Front End que realmente puede aprender / comprender el back-end, puede hacerlo bien, ya que Back-end está muy establecido y los patrones existen en gran parte debido a protocolos fijos y reglas basadas en hardware. Si bien la tecnología Front End es un panorama que cambia rápidamente, por lo tanto, para ser realmente bueno, debe aprender rápidamente y puede abarcar una amplia gama de tecnología, solo para que cambie al día siguiente.

Una vez que los muchachos que pagan las facturas se den cuenta del valor que ofrece Front End, lo pagarán. Lamentablemente, probablemente estés a unos años de distancia. Quizás eche un vistazo a los sectores tecnológicos más progresistas en Asia, y podrían pagar mejor.

Si el dinero es la máxima prioridad para usted, conozca también el back-end y vaya a Full stack, funciona para mí. Además, le brinda más oportunidades para trabajar en cosas en las que quiero trabajar, mientras me pagan de manera justa.

Como alguien que ha hecho ambas cosas, solo despreciaría a las personas que sienten la necesidad de discriminar en función de su posición. Eso casi siempre es un error.

Los dos son equivalentes cuando se hace bien. Los problemas frontales incluyen problemas informáticos un poco más fáciles y problemas humanos un poco más difíciles, que son mucho más difíciles de predecir o controlar que los problemas informáticos.

Los mejores desarrolladores aprenden y hacen ambas cosas, todo el tiempo. Incluso si está trabajando en el nivel más bajo de una aplicación, también está desarrollando una API front-end para los desarrolladores que usan su código de back-end. Cuanto más sepa sobre el desarrollo front-end, incluidas las interacciones humanas, mejor será su API. Si no cree que está desarrollando una API, entonces su propio código front-end será un desastre.

Desde mi experiencia, puedo enseñarle a un desarrollador de backend experiencia los conceptos básicos de la interfaz en una semana, y hacer que puedan entrar en un proyecto en 2 semanas; y pueden hacer ambos extremos con muy poco soporte adicional.

Por otro lado, con un desarrollador frontend, tomará seis meses antes de que puedan hacer ambos fines por su cuenta, y habrá más informes de errores y problemas de seguridad.

El problema es que las habilidades frontend requieren mucha menos disciplina. Además, a los desarrolladores frontend se les presentan herramientas “fáciles de usar” antes de que estén bien formados en “mejores prácticas”, y aprenden todo tipo de cosas indisciplinadas pero “geniales” mediante el uso de basura como WordPress, Boostrap y Jquery sin comprender la tecnología subyacente.

Los desarrolladores frontend cobran menos porque el trabajo que pueden hacer vale menos; y requiere una inversión mucho mayor para actualizarlos a la pila completa en comparación con lo que cuesta actualizar un desarrollador de back-end a la pila completa.

Es solo ignorancia y cambiará a medida que pase el tiempo. El front-end es un trabajo muy duro para funcionar correctamente en múltiples tamaños de pantalla. Bootstrap lo hizo mucho más fácil, pero personalizarlo es una habilidad especial.

Puedo sentir respeto cuando ayudo con el trabajo frontal. No es menos que cuando ayudo con el trabajo final.

Plataformas como Meteor fusionaron los dos.

Los tiempos están cambiando, antes un desarrollo frontend significaba solo proporcionar cosas estáticas y embellecer la página con CSS. Pero con el crecimiento del lenguaje de secuencias de comandos (por ejemplo, javascript, etc.) y los desarrolladores Frontend que los dominan y NodeJS, AngularJS, etc., proporcionan una gran plataforma, la percepción ha cambiado y creo que ahora son una gran competencia para los programadores que solo tienen experiencia en programación de back-end.

F * ck em. Eso no es de lo que se trata. Si alguna de las partes no es lo suficientemente buena, todo el mundo cae en llamas.

Todos, siempre, tenemos algo que hacer para crecer. Algunas personas, esa actitud sobre el back-end es una de las áreas clave en las que necesitan trabajar.

Les está costando apreciar esa habilidad porque no la entienden.