¿Cuánto front-end y back-end debe saber un desarrollador antes de que pueda considerarse un desarrollador full-stack?

Aquí hay un resumen rápido de mis criterios. Tiendo a pensar en los requisitos como una combinación de conocimiento conceptual práctico más la experiencia y las habilidades adecuadas.

Conceptos con los que debe sentirse cómodo:

  • Una buena comprensión de las solicitudes HTTP. Conozca un poco sobre el ciclo de vida de un ciclo de solicitud / respuesta HTTP. Comprenda que hay varios verbos HTTP, encabezados, tipos de contenido, códigos de respuesta y cómo buscarlos.
  • Comunicación del lado del servidor (AJAX).
  • Comprenda qué son las pruebas unitarias y cuándo / por qué son importantes.

Conceptos específicos de back-end:

  • Manipulación de bases de datos.
  • Las diferencias entre las bases de datos relacionales y las bases de datos NoSQL. Debería sentirse cómodo codificando contra uno de ellos.
  • Comodidad al trabajar con al menos un marco de back-end. Django, Rails, Laravel, etc.

Conceptos específicos de front-end:

  • La anatomía de una página HTML y los diversos recursos que carga.
  • Cómo implementar un diseño desde cero en HTML y CSS.
  • Conceptos de JavaScript; Es posible que no conozca bien ningún marco, pero comprende cómo funciona JavaScript como lenguaje, así como los conceptos DOM.
  • Al menos familiaridad básica con un marco front-end establecido: React.js o AngularJS. Vue.js es un tal vez.

Colaboración en equipo:

Esto va para cualquier tipo de desarrollador. Me sorprende cada vez que me encuentro con alguien que no sabe cómo usar Git, pero sucede. Los conceptos básicos de control de fuente distribuida (commits, push / pull, ramificación) son imprescindibles.

También debe tener una idea de quién hace qué en un equipo. Para qué sirve el control de calidad, qué es un gerente de proyecto y en qué se diferencia un gerente de producto. Ser desarrollador no se trata solo de habilidades técnicas.

Lo que deberías poder hacer:

Debería poder crear un sitio web útil basado en bases de datos usted mismo, de abajo hacia arriba. Esto incluye:

  • Crear una especificación para la base de datos y construirla.
  • Construyendo el HTML para todas las páginas de la aplicación.
  • Creación de interacciones CRUD para las principales entidades de datos en la aplicación.
  • Diseñar el sitio usando CSS. No tiene que diseñarlo, pero debe poder construir un diseño que tome de alguna parte: Bootstrap por sí solo no cuenta.

Además, debería poder demostrar lo anterior con proyectos y algún tipo de experiencia. Si vas a llamarte a ti mismo full-stack, prepárate para mostrar lo que has hecho con esas habilidades.


Nota de despedida: si puede afirmar que sabe todo lo anterior, probablemente pasará mi prueba de ser un desarrollador front-end Junior . Necesitaría saber mucho más para que yo lo considere intermedio o superior.

No es realmente un booleano.

Podría saber muy poco de cualquiera de los dos y ser considerado un desarrollador de pila completa.

Podrías saber mucho sobre (por ejemplo) el front-end y muy poco sobre el back-end, y serías considerado un buen desarrollador front-end y un desarrollador realmente completo de pila completa.

Entonces, la pregunta es, ¿preferiría que lo traten como bueno en cualquier parte de la pila en la que sea bueno, o como un desarrollador de pila completa realmente terrible?

Creo que “años de experiencia” cuenta más que una simple lista de cosas que debes saber, porque en la programación, ser bueno en algo y simplemente “saberlo” es la diferencia entre un pianista que puede tocar “palillos” de una manera hermosa y dolorosa. trayendo lágrimas a los ojos de todos los que lo escuchan, y alguien que conoce todas las obras de Bach pero suena más como si estuviera tocando el piano con dos martillos.

También necesitan saber desde el frontend hasta el backend y la base de datos. Básicamente, podrán crear un sitio web bastante avanzado por sí mismos.

Pero depende de la pila. Soy un desarrollador full stack. Pero solo en ciertas pilas. Angular y nodo? jquery y php? Claro, puedo hacerlo todo desde cero.
Pero si me pides que haga un sitio en backbone.js y asp.net, no podría, con mi conocimiento actual.

Entonces depende de la pila.

Debe ser razonablemente bueno con uno y tener suficiente conocimiento para hacer cosas con el otro.

Soy lo suficientemente decente con back-end, y puedo hacer algunos trabajos de final de fuente. Pero desconfío de la etiqueta ‘full-stack’, ya que a menudo se asume y se espera que los desarrolladores de full-stack sean igualmente buenos tanto en front-end como en back-end. Nunca usaría el término ‘full-stack’ para describir en mi currículum, o durante una entrevista.

Conozco a varias personas que son verdaderos desarrolladores de pila completa. Pero la mayoría de las veces, son mucho más fuertes en uno, mientras que son capaces de manejar el otro.

More Interesting

¿Por qué la mayoría de las aplicaciones a gran escala se desarrollan en Symfony?

¿Es seguro decir que el desarrollo web front-end es más probable que le consiga un trabajo, pero el desarrollo back-end creativo es donde está el dinero real?

¿Puedo escribir un backend complejo usando R?

Cuando se usa Angular en el front-end, ¿cuál es una gran alternativa para un marco PHP voluminoso para crear un back-end para los inicios de sesión de los usuarios y la recuperación de datos?

¿Es normal que tenga más interés en los lenguajes de programación de fondo como php, c #, vb, java que javascript, ajax, etc.?

¿Muchos desarrolladores front-end odian a los desarrolladores de backend?

¿Con qué rapidez debe un desarrollador de iOS adaptarse al desarrollo de back-end de Node?

¿Qué parte se debe desarrollar primero mientras se desarrolla una aplicación web, front-end o back-end?

¿Puedo obtener más de 1 rupia lakh por mes si voy a ser un desarrollador de pila completa con Ruby on Rails como una habilidad de fondo?

¿Qué arquitectura de backend usa Shazam? ¿Cómo reconocen la música tan rápido?

¿Los programadores de back-end se burlan del diseño de front-end?

¿Cómo conectar una aplicación de Android con 'mi propio back-end de base de datos en tiempo real de Node.Js'? ¿Cómo lo mantengo sincronizado todo el tiempo con mi back-end?

¿Qué debe saber un programador para desarrollar para el back-end de aplicaciones web y móviles?

¿Para qué puede usar Firebase un desarrollador de back-end?

¿Necesita crear un backend para un sitio web de cartera personal o es suficiente HTML / CSS / Javascript?