¿El desarrollador de pila completa es solo un nombre elegante para programador?

La “pila” a la que se hace referencia en el término desarrollador de pila completa generalmente significa la pila web. Se espera que una pila completa pueda realizar las tareas de un desarrollador front-end y un desarrollador de back-end, y que cubran todas las habilidades necesarias para diseñar, desarrollar y mantener una aplicación basada en la web.

Un desarrollador de back-end debería poder diseñar y desarrollar el software que genera los datos y / o HTML requeridos por la aplicación, así como configurar la infraestructura y el software necesarios para ejecutar ese software de manera confiable y segura.

Un desarrollador front-end necesita estar íntimamente familiarizado con al menos HTML, CSS y JavaScript. También necesitan tener el conocimiento y las habilidades con las herramientas disponibles para construirlos a partir de archivos fuente más avanzados (HAML, SCSS, ES2015, TypeScript, etc.). Por último, pero no menos importante, sus plataformas objetivo varían enormemente y viven en un estado de cambio constante, por lo que necesitan aprender constantemente nuevas herramientas y técnicas (React, Angular, CSS flex / grid, etc.) y desaprender activamente las viejas.

Si alguien se presenta como un desarrollador de pila completa, voy a asumir que es lo suficientemente competente como para realizar las tareas de cualquiera de ellos . No solo un desarrollador de Java que puede producir CSS básico pero no comprende la especificidad del selector. No es un gurú de front-end que puede configurar un sitio de WordPress e instalar algunos complementos y temas.

¿Y la palabra programador ? Bueno, yo diría que es un término demasiado arcaico y general para ser útil en el mundo moderno. La programación es solo una parte de cualquier proceso de desarrollo de software.

No, es tan elegante como un administrador de base de datos, administrador de sistema, desarrollador frontend o cualquier otro nombre. Al final, todos son programadores con un papel específico en mente.

Un desarrollador de stack completo solía ser el típico Jack de todos los oficios, maestro de ninguno. Debido a que no se puede saber todo, estos tipos se utilizaron para llenar los agujeros en el equipo, dependiendo de la carga de trabajo y los requisitos.

Hola John, ¿sabes CSS, HTML y algunos Javascript? ¡Excelente! Los nuevos requisitos acaban de llegar y necesitamos que hagas algunas pantallas, pero debido a que nuestro equipo de back-end también está lleno de trabajo y tenemos poco tiempo, también conectas todo a la base de datos. Solo asegúrese de poner todo lo esperado.

Hoy en día, con un mundo mucho más exigente y dinámico, incluso las empresas más grandes están teniendo dificultades para mantener el ritmo. Debido a esto, están invirtiendo mucho más en desarrolladores que están más dispuestos a cambiar tecnologías y roles, posiblemente perdiendo la calidad general del código pero siendo más ágiles debido al equipo menos estático.

Obviamente, aún debe contar con personal especializado, porque ellos son los que conocen muy bien las tecnologías y deben dar las mejores soluciones y resolver los problemas más específicos, pero tener desarrolladores que puedan tocar en cada capa de un conjunto de aplicaciones, teniendo un mejor Noción de cómo todo se conecta, es de un valor extremo.

Y ese es el desarrollador de pila completa .

Honestamente, hablando por mí mismo, uso ese nombre. No conozco una manera de definir mi conjunto de habilidades fácilmente además de mencionar cada una de ellas, aunque mi idea personal es la siguiente:

Backend

Cualquier cosa relacionada con la gestión de datos y la exposición (de alguna manera) a una página web, ya sea mediante la representación de HTML o por la API JSON. Esta definición no es muy precisa, ya que, en teoría, puede tener un software que no exponga nada en absoluto y aún sería back-end. Tal vez algo que no se ejecuta en la computadora de un cliente, sino en un servidor / nube dedicado a ejecutar ese software

Interfaz

Un ingeniero frontend es más difícil de definir. Algunas personas incluso dicen que necesitas saber sobre diseño si eres un desarrollador frontend. Yo diría que en caso de que sea un desarrollador frontend y sepa sobre diseño, es ingeniero y diseñador.
Entonces, para mí, un desarrollador frontend es alguien que conoce HTML, CSS (no superior, pero necesita poder trabajar con ellos) y, sobre todo, conoce Javascript. Necesita saber todo lo relacionado con la ingeniería, por lo que cuando se enfrenta a la arquitectura JS de frontend, va a aplicar patrones, buenas prácticas de codificación, etc., para hacer que el código sea sostenible y funcional a largo plazo. Básicamente, un ingeniero de software para la interfaz.
Es difícil encontrar personas que solo sean frontend y que también sean buenas en arquitectura de software. Cuando lo son, generalmente también son buenos en el backend.

Entonces, ¿cómo identifico a alguien que pueda hacer ambas cosas (backend y frontend)? Con Javascript hoy en día es aún más fácil saber ambos.

Yo lo llamo desarrollador Full stack (web). Tengo una gran experiencia en AngularJS y una gran experiencia con Ruby on Rails, ¿cómo describiría este conjunto de habilidades? Claro, tengo una preferencia entre los dos, pero pongo exactamente la misma dedicación y esfuerzo en ambos.

Por último, me refiero a estas definiciones de trabajo: Títulos de trabajo en la industria web | CSS-Tricks

Respuesta simple: Big No

La respuesta detallada sigue

Un Desarrollador Full Stack ideal conoce todos y cada uno de los elementos, incluidos el hardware, el front-end, el back-end, los servidores, las bases de datos, la gestión de proyectos y la coordinación de clientes, etc. Para ser un desarrollador Full Stack, se requiere un enorme esfuerzo para aprender varias aplicaciones y obtener algunos exposición práctica.

La lista de aplicaciones sigue evolucionando y cuanto más aprenda, más competente será. El desarrollador típico de Full Stack tendrá un buen nivel de comprensión de varias aplicaciones pero no un conocimiento profundo. Eso significa que puede resolver problemas de una aplicación a otra, pero puede integrar varias aplicaciones.

Es posible que no codifique tan bien como un codificador experto, pero podrá guiar y dirigir un equipo de expertos con su conocimiento. Lo mismo es muy importante en el mundo de hoy debido a las interfaces complicadas. ¿Debería necesitar más información sobre las carreras de desarrollo de Full Stack? Puede encontrar varios recursos en los enlaces a continuación. He filtrado algunas fuentes para usted. Udacity , Coursera, Pensativo, Asamblea General, Lynda, Edx. Úselos y haga su base. Las clases y entrenamientos profesionales están disponibles en universidades como Holberton School . Tienen un curso especializado sobre el desarrollo Full Stack. El plan de estudios se basa en las necesidades de la industria y puede aprender de los pioneros de la industria.

Hay personas que “programan” en HTML. Quieren ser llamados desarrolladores o ingenieros de software. Hacen un trabajo importante y tienen un conocimiento especializado que los hace valiosos. Pero no programan de la misma manera que lo hace un desarrollador de Java. No desarrollan algoritmos o necesitan conocimiento algorítmico para hacer su trabajo.

Un desarrollador de pila completa, en el sentido más amplio, puede programar tanto en HTML como en algún lenguaje de programación. No se limitan solo a la programación front-end o del lado del cliente. Tienen un conjunto de habilidades más amplio.

Esta distinción no es crujiente, lo sé. La gente de front-end a menudo hace mucho JavaScript. JavaScript es un lenguaje de programación completo de Turing y puede ser tan desafiante como cualquier otro lenguaje, si lo está utilizando para construir estructuras de datos y algoritmos. Sin embargo, la necesidad de esto no es muy grande en el lado del cliente, por lo que creo que la distinción sigue siendo válida.

Si.

Ha habido una tendencia en el negocio del software a tratar de dividir a los desarrolladores de software en pequeñas cajas. Guy X es un desarrollador Frontend que conoce JavaScript, Girl Y es un programador de backend que conoce Java, etc.

En las listas de trabajo, les gusta decir “Estamos buscando un desarrollador Frontend súper calificado en el marco A”, cuando también podrían haber dicho “Queremos un desarrollador de software súper calificado”

Al negocio le gusta porque pueden gastar menos dinero en educación y desarrollo de talento. Pero todos somos desarrolladores de software. La mayoría de nosotros tenemos la misma educación. Y la diferencia entre esas áreas es mucho menor de lo que muchos empleadores entienden o les gusta admitir.

Durante la carrera de un programador, diría que la opción saludable es ser un desarrollador “Full Stack”. Deberías probar cosas diferentes. No debería tener que dedicar toda su carrera a descubrir cómo se representan correctamente los cuadros en un navegador web y no aprender nada sobre cómo se manejan los grandes datos en los servidores. Y si usted es uno de esos tipos de backend, debería intentar hacer su propia aplicación web o aplicación móvil en algún momento, para comprender mejor cómo funciona la interfaz.

En mi opinión, el término “desarrollador de pila completa” está hecho como una herramienta útil de los desarrolladores de software que se cansaron de tener que responder la pregunta:

“Entonces, ¿eres un desarrollador frontend o un desarrollador back-end?”

(Yo pensando para mí: ¿De qué está hablando, soy un desarrollador?)

“* Ejem *, soy un desarrollador de pila completa! 🙂 ”

No.

No todos los programadores pueden hacer todo el proceso de abajo hacia arriba, sino que se especializan en front-end o back-end.

Espero que un desarrollador de pila completa pueda:

  • Instale el sistema operativo en el servidor.
  • Instalar y configurar la base de datos.
  • Decida la mejor tecnología y lenguaje para usar en la aplicación.
  • Instalar y configurar el software del marco de la aplicación.
  • Instale las diversas bibliotecas de las que dependerá la aplicación.
  • Diseñe la aplicación con aportes de los clientes.
  • Desarrolle la aplicación y pruébela.
  • Estírela en producción con un plan alternativo.
  • Realizar pruebas posteriores a la implementación.

Eso es mucho más de lo que se espera que haga un programador.

Diría que full-stack no es un nombre elegante para un programador, sino el equivalente moderno. De mis conversaciones con muchachos que comenzaron a programar hace 20–40 años, las funciones de programación simples tomaron mucho tiempo (piense en tarjetas perforadas). Así que pasaron mucho tiempo en una plataforma tratando de mantenerse al día con los requisitos comerciales. Los lenguajes modernos le permiten codificar la misma funcionalidad más rápido, por lo que tiene tiempo para trabajar con otras herramientas especializadas y abarcar un alcance más amplio. Pero si pudiera hacer zap a un programador desde hace 30 años hasta el presente, él o ella probablemente sería un “desarrollador de pila completa” después de un poco de aprendizaje. Lo digo porque ahí es donde están ahora muchos tipos que comenzaron hace 30 años. Puedo encontrar prácticas de diseño arquitectónico basadas en el mismo pensamiento algorítmico que usarías para escribir algún código. Me siento en el nexo de mucha lógica de negocios y datos entre un sistema de comercio electrónico y múltiples ERP. Las órdenes tienen que recorrer ese sistema y luego salir, no quedar atrapados en bucles interminables de sistemas separados que procesan y actualizan esa información. La funcionalidad aún debe encapsularse en el sistema apropiado para que cuando intente averiguar cómo se actualizó algo y cuando no tenga que solucionar problemas de todo el sistema. Para mí, esto sigue siendo un pensamiento algorítmico, y el mismo espíritu de una persona que recogió los libros de FORTRAN y comenzó a pensar que hace ese pensamiento hoy.

Supongo que puedo decir algo sobre esto, porque es mi título en este momento.

Un ingeniero de pila completa suele ser más arquitecto. Saben lo suficiente de todo lo que necesitan para crear una aplicación de software desde cero y tienen un par de áreas de enfoque como, por ejemplo, bases de datos o marcos específicos.

En términos generales, los desarrolladores de pila completa son en su mayoría desarrolladores que tienen experiencia en aplicaciones del lado del cliente, aplicaciones del lado del servidor y el middleware que las conecta.

Entonces, no, un desarrollador de pila completa es más que un programador, pero no mucho mejor o más experimentado que otros programadores. Simplemente tienen un enfoque más amplio

Acepta todo lo que Kurt Guntheroth dijo en su respuesta.

Aprender Javascript podría ser el comienzo de un desarrollador de back-end para el viaje de desarrollador de pila completa. Hoy usamos frameworks Javascript para hacer que la interfaz de usuario sea más interactiva y brinden una mejor experiencia al usuario.

Entonces un programador es más un desarrollador de backend,

Un desarrollador de pila completa ayuda a construir un vínculo innovador entre la interfaz de usuario y el back-end. Deben tener una buena idea sobre las herramientas de front-end como HTML y CSS + Vanilla JS + Ajax o A JS framework.

No, básicamente, en el mismo sentido, cardiólogo no es una palabra elegante para médico y abogado fiscal no es una palabra elegante para abogado.

Un desarrollador a gran escala, en términos generales, es un desarrollador que se especializa en aplicaciones web, con la capacidad de escribir tanto el código de interfaz de usuario del lado del cliente como el código del lado del servidor. Dado que una proporción muy grande del software moderno son aplicaciones web (o al menos servicios web que respaldan las interfaces de usuario web y móviles), el desarrollador de pila completa significa en gran medida ‘generalista’, algo así como un médico de medicina interna. Contrasta con una variedad de especialistas: front-end, back-end, móvil, DevOps, una docena de diferentes tipos de especialistas en bases de datos o procesamiento de datos, ingenieros de software en pruebas, científicos de datos, desarrolladores de aplicaciones de escritorio, desarrolladores de sistemas y más especialistas esotéricos.

Dicho esto, sugeriría que ser solo un desarrollador de stack completo sin alguna habilidad especial no es un gran movimiento profesional. Ya sea que tenga habilidades realmente buenas en el front-end, operaciones opcionales o hechicería de bases de datos, una especialidad aumenta su valor. Ser un gato de todos los oficios maestro de ninguno es viable. ¡Ser un maestro de todos los oficios y maestro de algunos es mejor!

No.

Es un término real y no todas las personas pueden convertirse en uno. Dejame explicar

La mayoría de nosotros comenzamos a trabajar en bases de datos, en el lado del servidor o en el lado de la interfaz.

Después de hacerlo durante un año o dos, uno ya tiene algunas habilidades y podría hacer la mayoría de las tareas en ese campo de manera bastante rápida y eficiente.

En este punto, sería bastante frustrante incluso intentar una tarea en otro campo. Full stack son aquellos que abandonan su zona de confort, que no tienen miedo de preguntarle a un neewbie sobre cómo alinear el texto en div, a pesar de que tienen 5 años de experiencia en otros campos.

Los apiladores completos siempre aprenden y no se ven disuadidos por las tareas, aunque puedan parecer desafiantes.

A medida que pasa el tiempo, un verdadero desarrollador de pila completa podría considerarse un ejército de un solo hombre capaz de determinar la estructura de datos de una aplicación determinada, todo el camino para dibujar el formulario y capturar el evento de clic

DE LA A A LA Z

Algo así como…

Verá, cuando era un muchacho (piense en niños querubines corriendo sobre adoquines que llevan hogazas de pan), se suponía que cada programador era una pila completa, no lo llamamos así, lo llamamos ‘dispuesto a aprender sobre el trabajo.’

Full Stack Developer no era una cosa, quiero decir, teníamos pilas , LAMP o lo que fuera, pero era un detalle del trabajo, no el trabajo en sí.

Es importante tener en cuenta que no digo que los programadores puedan hacer todo, ellos no, pero estábamos preparados para aprender y no nos metimos en el front-end, el back-end, etc.

Por supuesto, los programadores tienen sus áreas de especialización y preferencias, algunos serían mejores, por ejemplo, en las bases de datos que otros, pero habría una expectativa de arremangarse y resolverlo.

Entonces, volviendo a su pregunta …

Realmente, hace una década, ese término realmente no existía, pero ahora sí, y estamos atrapados en él.

Para mí, es un término que llama la atención, para RR. HH., Probablemente sea una gran marca en el currículum …

Realmente necesito otra taza de café esta mañana …

No todos los programadores son de pila completa … y hay una diferencia entre ser un desarrollador web de pila completa y ser un ingeniero de software de pila completa.

Full-stack web / dev significa que puedes crear una aplicación web de la A a la Z. Has dominado el desarrollo front-end y back-end, y todo lo demás. k

El ingeniero de pila completa incluye web / dev de pila completa, pero también incluye mucho más que eso. Incluye todo, desde programación de bajo nivel, programación de alto nivel, sys / admin, DevOps y más. Se necesita mucho más tiempo para convertirse en un ingeniero de pila completa que solo un desarrollador de pila completa.

Me uní al mundo de la tecnología hace unos dos años cuando decidí mudarme de Chicago a San Francisco para asistir a una nueva escuela de ingeniería de software, Holberton. Aprendí rápidamente que ‘full-stack’ se usa de muchas maneras diferentes, y es importante entender el contexto en el que se habla, porque puede significar cosas muy diferentes para diferentes personas.

Si eres experto en diferentes capas de desarrollo de software que incluye cosas como Front-end o UI, Servidor o Host, Back-end, Middleware e Infraestructura que también incluye hardware, entonces puedes asegurarte ser un desarrollador de pila completa.

Básicamente, si alguien es capaz de llevar un concepto desde el diseño hasta la implementación de la aplicación implementada, esa persona es un desarrollador de stack completo. Dicha persona no solo podrá programar sino que también es competente en otros aspectos de la aplicación.

No, eso es como decir que el cirujano es solo un nombre elegante para un médico …

Un programador es alguien que sabe codificar.

Un desarrollador de pila completa es un programador que se especializa en el desarrollo de backend (servidor) + frontend (navegador / cliente).

En esta industria hay muchos términos de mierda que realmente no significan nada. La mayoría de ellos se crean porque alguien quería sentirse especial o querían dejar a alguien afuera. No sé cuál es, pero sin duda es uno de ellos.

La pila completa por sí sola no tiene sentido.

¿De qué pila estamos tomando?

Ser un desarrollador de Java de pila completa es bastante inútil si necesito un desarrollador .Net.

Pero espera hay más … realmente solo tiene sentido con la web. ¿Hay desarrolladores completos de Windows WPF?

¿Tienes que saber cómo administrar una base de datos para que sea completa? ¿Porque puedo escribir una aplicación MVC con el marco de primera entidad de código y nunca escribir una consulta?

¿Qué pasa si escribe aplicaciones web pero nunca escribió un servicio más tarde? ¿Eres full stack?

Quizás full stack es la definición de lo que no eres … si solo puedes hacer HTML y JavaScript, no eres full stack.

Voy con mi afirmación original … es un término de mierda.

Realmente solo significa alguien que hace toda la miríada de cosas necesarias para producir un sitio web completo o una “aplicación” en estos días. Esa es la forma más simple de decirlo.

En años pasados ​​no tenías todas estas especialidades. No tenía desarrolladores front-end y back-end. No tenía personas cuyo trabajo completo todo el día era hacer solo HTML y CSS. Tenías programadores que lo sabían todo. Ya no es así, ya que el ámbito tecnológico ha proliferado para incluir literalmente miles de tecnologías.

Full stack es un término bastante vago (que siempre debe aclarar con los reclutadores) que significa “necesitamos a alguien que haga más de una cosa y normalmente haga todas las cosas necesarias para producir un producto web” . Eso es lo que generalmente significa hoy.

En resumen, eso es principalmente: uno o más de estos; ASP.Net/MVC/C#/Java/Ruby ; al menos uno de estos SQL / NoSQL / Hadoop / MySQL ; y probablemente la mayoría de estos, en cierta medida, al menos HMTL / CSS / Jscript / Jquery .