¿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

¿Cuáles son los mejores recursos para crear un backend de iOS en AWS o Google App Engine?

¿Es una decisión correcta lanzar un proyecto antes de que esté completamente completo?

Cómo encontrar diseñadores web experimentados para una colaboración a largo plazo

¿Qué idiomas serían preferibles para el desarrollo front-end y back-end?

¿Cuáles son todas las cosas que debo aprender para ser un muy buen desarrollador web front-end y back-end? ¿Qué lenguaje, marcos? Gracias.

¿Debería desarrollarse el backend de nuestra aplicación móvil en Ruby o Python?

¿Cómo puede un desarrollador de back-end convertirse en un desarrollador móvil competente?

¿Cuáles son las mejores tecnologías para el desarrollo front-end y back-end?

¿Cuánto backend debe saber un desarrollador front-end?

¿Puede una especialización que no sea CS convertirse en un desarrollador de back-end?

¿Puedo concentrarme principalmente en la parte de back-end de un proyecto personal y descuidar el front-end si amo la ingeniería de back-end pero odio el front-end?

¿Qué nuevas tecnologías debo aprender para el desarrollo web para front-end y back-end?

¿Cuáles son las tecnologías utilizadas por los desarrolladores de back-end?

Sé cómo desarrollar aplicaciones simples de Android que almacenan datos localmente. ¿Qué habilidades de software debo aprender a continuación para crear aplicaciones que puedan manejar la sincronización en línea?

¿Qué ventaja tiene una API no estándar para la base de datos de back-end (como SAP / ABAB) sobre una estándar (como SQL-92)?