JavaRush /Blog Java /Random-ES /Tanto el sueco como el Reaper. ¿Quién es un desarrollador...

Tanto el sueco como el Reaper. ¿Quién es un desarrollador Full Stack y cómo convertirse en uno?

Publicado en el grupo Random-ES
Tanto el sueco como el Reaper.  ¿Quién es un desarrollador Full Stack y cómo convertirse en uno?  - 1Hay una posición en el campo del desarrollo informático que es misteriosa y oscura, pero al mismo tiempo seductoramente atractiva. Esta, como probablemente ya habrás entendido, es la posición de un desarrollador Full Stack. Se ha ganado esta controvertida reputación por varias razones, que se analizarán a continuación, pero en resumen, todo se debe a que los desarrolladores y otros especialistas técnicos no pueden llegar a un consenso sobre lo que debería ser un verdadero desarrollador Full Stack. Tanto el sueco como el Reaper.  ¿Quién es un desarrollador Full Stack y cómo convertirse en uno?  - 2

"Un desarrollador full stack es un mago técnico que conoce todos los lenguajes y tecnologías de programación, y que además canta y baila maravillosamente".

Ian Peters-Campbell es
un desarrollador experimentado y fundador de la empresa de software Stickbuilt.

¿Quién es un desarrollador Full Stack?

Entonces, ¿qué es un desarrollador Full Stack en el sentido tradicional? La definición más común nos dice que se trata de un especialista responsable de desarrollar todas las partes de la funcionalidad del sistema, incluyendo tanto el lado del usuario del producto (frontend) como el código interno que se ejecuta en servidores distribuidos (backend). Como regla general, si la frase "full stack" aparece en un anuncio de una vacante abierta, significa que el desarrollador debe tener conocimientos y habilidades en desarrollo backend y frontend al mismo tiempo. Sin embargo, muchas empresas van más allá y por “desarrollador Full Stack” se entiende un soldado universal que no sólo es capaz de desarrollar todos los componentes de un producto de software, sino que también puede encargarse de todo lo demás, desde la gestión del producto hasta la configuración del sistema operativo. sistema en servidores y arreglar una impresora de oficina. De hecho, en la mayoría de los casos, se requiere que un desarrollador full stack tenga un nivel decente de conocimiento del conjunto de tecnologías necesarias para completar con éxito el proyecto. Por lo tanto, en este caso, "pila" significa una colección de módulos y componentes de software combinados para lograr la funcionalidad requerida. Tanto el sueco como el Reaper.  ¿Quién es un desarrollador Full Stack y cómo convertirse en uno?  - 3

¿Por qué este tema es tan controvertido?

El debate sobre qué debería ser realmente un desarrollador Full Stack y si tal bestia existe en cantidades suficientes para separar a estos especialistas en un grupo separado, se ha prolongado durante bastante tiempo. Como señalan los programadores experimentados, estalló con renovado vigor después de que representantes de Facebook, en los albores de su formación en la década de 2000, durante un discurso en una de las conferencias especializadas para desarrolladores, declararon que contratan única y exclusivamente desarrolladores Full Stack. “Si las definiciones tradicionales de desarrollador Full Stack te confunden, entonces todo es correcto. Esto se debe a que un desarrollador Full Stack es algo efímero. No existe ningún modelo científico que describa qué es un “full stack”. No existe una forma clara de medir el nivel de un desarrollador full stack en comparación con otros desarrolladores similares. El único consenso respecto al Full Stack es que nadie se pone de acuerdo en una definición única de la esencia de este fenómeno. Por eso todo lo que lees sobre este tema no es más que una opinión subjetiva”, afirmó Ryland Goldstein, un experimentado desarrollador y arquitecto de software. Tanto el sueco como el Reaper.  ¿Quién es un desarrollador Full Stack y cómo convertirse en uno?  - 4

Cuatro pilares del desarrollo Full Stack

Sin embargo, aunque muchos expertos sostienen que un desarrollador Full Stack es un concepto controvertido, no hay menos vacantes, sino todo lo contrario. Por lo tanto, veamos qué conocimientos en qué áreas, por regla general, es necesario tener para postularse para este tipo de puesto.
  1. Desarrollo front-end.

    Normalmente, el front-end se refiere a tecnologías de desarrollo web y lenguajes de programación como HTML, CSS y JavaScript. También incluye marcos de JavaScript como React y todas las demás tecnologías relacionadas con el lado "cliente" del producto.

    Dónde empezar a estudiar:

    Puede comenzar con los marcos Create React App o Gatsby , con los que es bastante fácil crear una aplicación React completa. Es una buena idea aprender sobre los preprocesadores de CSS, las herramientas CSS básicas como CSS-in-JS y herramientas como Sass .

  2. Desarrollo back-end.

    El backend incluye todo el código que se ejecuta en los servidores, incluidas las aplicaciones y API que hacen que el sitio funcione. Los principales lenguajes de programación para el backend son Java, Python, Ruby y otros. Aparte de esto, el desarrollo backend también incluye la gestión de bases de datos, lo que requiere conocimientos de SQL.

    Dónde empezar a estudiar:

    En primer lugar, se recomienda comenzar profundizando en los conocimientos de JavaScript, como una especie de puente entre el frontend y el backend en muchos casos. En particular, es una buena idea aprender NodeJS , una plataforma de software basada en el motor V8 que convierte JavaScript de un lenguaje altamente especializado a un lenguaje de propósito general.

    Además, para tener las calificaciones más completas en el backend, se recomienda, además de Java, dominar gradualmente lenguajes de programación como Python (principalmente), PHP y Ruby.

  3. Gestión de proyectos.

    En resumen, se requiere que un gerente de proyecto administre un proyecto, que involucra muchas tareas, incluida la interacción con clientes, colegas, contratistas externos, etc. En definitiva, todo lo necesario para la ejecución exitosa del proyecto. Esto también incluye la planificación, la toma de decisiones estratégicas sobre el trabajo en el producto, etc.

    Dónde empezar a estudiar:

    Para desarrollarse con éxito como gestor de proyectos, no está de más estudiar las herramientas más populares en este ámbito. Los principales se pueden llamar: GanttPRO (un servicio para planificar y gestionar proyectos mediante un diagrama de Gantt), Jira Software (un sistema popular para planificar y rastrear proyectos ágiles), LiquidPlanner (una herramienta para la gestión de proyectos en tiempo real), Basecamp ( otro sistema de gestión de proyectos y colaboración), etc.

  4. DevOps.

    Y por último, el cuarto pilar del desarrollo full stack es el conocimiento de DevOps. Las responsabilidades de DevOps pueden variar mucho según el proyecto, pero, por regla general, incluyen todo lo relacionado con la ejecución del código de software en producción, incluida, por ejemplo, la configuración de los servidores en los que se ejecutará la aplicación y garantizar que los especialistas del equipo trabajen bien junto con ellos. técnicos las soluciones que utilizan.

    Dónde empezar a estudiar:

    El campo DevOps también incluye muchas herramientas diferentes. Estas son las que tienen sentido para empezar: herramientas de administración de código fuente ( GitLab , GitHub , Bitbucket ), herramientas de CI/CD (Ansible, Jenkins, Chef), herramientas de comunicación y colaboración (Slack y Microsoft Teams), así como Servicios de computación en la nube y almacenamiento de datos (AWS, Azure y GCP).

    Tanto el sueco como el Reaper.  ¿Quién es un desarrollador Full Stack y cómo convertirse en uno?  - 5

    Además de los cuatro componentes básicos mencionados anteriormente de un "full stack", no estaría realmente completo si no incluyera también desarrollo móvil, bases de datos y automatización de control de calidad; un verdadero desarrollador Full Stack también comprende estas tecnologías.

Sueldos para Desarrollador Full Stack

En cuanto a los salarios de los desarrolladores full stack, no son muy superiores de media a los de sus compañeros con una especialización más específica en desarrollo. En Estados Unidos, el salario medio de los desarrolladores full-stack es de casi 75.000 dólares al año, según PayScale . Al mismo tiempo, el salario mínimo (para programadores en puestos full-stack) es de unos 46.000 dólares al año, y el máximo es de unos 114.000 dólares al año. En cuanto a los países de la ex URSS, en Ucrania, según el recurso Work.ua , el salario medio de los desarrolladores full stack es de 35.000 jrivnia (unos 1.300 dólares) al mes, mientras que en Kiev es de 45.000 (unos 1.650 dólares). En Rusia, según estos datos, los salarios de los desarrolladores full-stack oscilan, en promedio, entre 40.000 rublos (530 dólares) y 150.000 rublos. ($2000). Si hablamos del promedio mundial, entonces los especialistas que trabajan en el puesto que estamos considerando hoy ganan alrededor de 45 mil dólares al año. Y en Europa, los desarrolladores full stack reciben los salarios más altos en Dinamarca y Suecia. Tanto el sueco como el Reaper.  ¿Quién es un desarrollador Full Stack y cómo convertirse en uno?  - 6

¿Cómo convertirse en desarrollador Full Stack?

Ahora repasemos brevemente las habilidades, capacidades y tecnologías que necesitas dominar para poder llamarte un desarrollador full stack con total confianza y sin una pizca de ironía.
  1. Lenguajes de programación.

    Un desarrollador full stack debe dominar varios lenguajes de programación. En primer lugar, por supuesto, están los principales: Java, PHP, C#, Python, Ruby, Perl, etc. En una palabra, aquellos lenguajes más populares en los que probablemente se escribirán los principales procesos comerciales del producto. Por supuesto, será extremadamente difícil aprender perfectamente toda una gama de estos idiomas. Pero es necesario al menos dominar la gramática del idioma que desempeñará un papel importante en el desarrollo, y también tener un buen conocimiento de cómo estructurar, diseñar, implementar y probar un proyecto basado en uno o más idiomas.

  2. Frameworks y bibliotecas de código.

    Bueno, un buen conocimiento de los principales lenguajes de programación en la mayoría de los casos incluye la capacidad de utilizar frameworks y bibliotecas populares, como Java Spring, Hibernate, Python Django, PHP thinkphp, MyBatis y otros.

  3. Tecnologías front-end.

    Важность знания фронтенд-технологий для фуллстек-разработчиков также велика, и со временем возрастает. Сегодня, когда удобство и общая “обертка” продукта становятся не менее значимыми, чем функционал, значительная часть общего успеха проекта ложится на плечи фронтненда. Для Full stack надо Cómo минимум знать базовые фронтенд-технологии, то есть HTML5, CSS3 и JavaScript, а также владеть основными фронтенд-фреймворками и библиотеками, а именно JQuery, LESS, SASS, AngularJS и ранее упомянутым React.

  4. Базы данных.

    Базы данных являются еще одной важной составляющей “полного стека,” ведь любому продукту o сервису нужно хранить где-то информацию. Соответственно, фуллстек-девелоперу положено знать хотя бы парочку наиболее популярных систем баз данных и то, Cómo с ними работать. Наиболее популярные на сегодняшний день системы баз данных — это MySQL, MongoDB, Redis, Oracle, SQLServer и другие. Среди них, MongoDB наиболее популярна в качестве базы данных для различных интернет-проектов, MySQL и Oracle — для бэкенда в сфере корпоративных продуктов, а Redis часто используется для кэширования и повышения производительности системы.

  5. Менеджмент и soft skills.

    А вот чтобы добиться хороших результатов в данной сфере, просто выучить Cómoую-нибудь технологию o язык программирования будет недостаточно. Успешное управление проектами включает в себя множество составляющих, среди которых тайм-менеджмент, планирование, хорошие коммуникационные навыки и многое другое. А приобретается все это преимущественно через практику.

  6. Базовые знания дизайна.

    И наконец, знания дизайна, а именно UX/UI-дизайн, пусть и на базовом уровне, также входят в компетенцию full stack девелопера.

    Кстати, вот неплохо составленный роадмап, призванный графически отобразить все разнообразие вышеперечисленных технологий.

Выводы и перспективы

Como puede concluir de todo lo anterior, para convertirse en un desarrollador completo y tal vez incluso en un desarrollador full-stack estándar, tendrá que dedicar mucho tiempo y esfuerzo. Sin embargo, la práctica constante y regular te permite dominar disciplinas mucho más complejas con el tiempo. Lo principal es entender hacia dónde ir, trabajar las habilidades clave y no dejar de aprender por cuenta propia. Pero si es necesario hacer tales esfuerzos para convertirse en un desarrollador Full Stack exitoso es otra cuestión. Si hablamos de las ventajas y desventajas de dicho trabajo, las desventajas son obvias: es necesario estudiar mucho y comprender muchas cosas diferentes. Las ventajas son más complicadas. Un desarrollador full stack suele tener la oportunidad de tener un mayor impacto en el proyecto en su conjunto, en comparación con programadores altamente especializados. Para la mayoría, esto aumenta la satisfacción laboral y, nuevamente, el ChSV florece y huele. Mientras que comprender toda la gama de tecnologías y habilidades que se requieren para un desarrollo exitoso a veces abre posibilidades verdaderamente ilimitadas. Se cree que los desarrolladores full stack suelen convertirse en empresarios de TI exitosos. Y, en general, una persona con tal conjunto de habilidades ciertamente no se quedará sin trabajo , independientemente de las crisis.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION