Recientemente, estallaron serias batallas en Habré en los comentarios sobre el artículo de
Fulsteki: estas son eternas MIDL. No sigas este camino si no quieres sufrirTrataré de expresar mi punto de vista de que la pila completa es realmente genial, y por qué es bueno seguir este camino.
Quizás el texto a continuación ayude a alguien a embarcarse en este camino, y tal vez viceversa, protegerá las mentes frágiles de él. En general, bienvenido a cat.
** AHTUNG! Todo lo siguiente no es la verdad última y es mi visión subjetiva (de este mundo).
Para comenzar, definamos los términos que se discutirán a continuación para estar en el mismo campo de información, porque El concepto de fullstack es diferente para todos (al igual que la división en Junior / Middle / Senior y otras tablas de clasificación).
La opinión más común es que FullStack es un desarrollador que, en una persona, puede trabajar en un proyecto completamente solo, de atrás hacia adelante.
Algunos de ustedes pueden decir: "Bueno, en mi equipo, el medio puede", lo que (por decirlo suavemente) es incorrecto en la mayoría de los casos. Si el desarrollador front-end puede corregir / agregar algo en el código de respaldo, profundizar en las consultas de la base de datos, esto todavía no es una pila completa.
Después de todo, el desarrollo del proyecto no es solo un código anterior y posterior, sino que también está construyendo / configurando / soportando infraestructura para el producto resultante. No es suficiente escribir código, aún debe hacerse para que funcione en el objeto. Y el objeto puede ser un VPS de 5 dólares con LAMP por defecto, y redes en la nube como AWS / Azure, o incluso su propia infraestructura, donde vive hardware bastante real, desde servidores / estaciones de trabajo hasta enrutadores.
Por lo tanto, no estamos hablando de "fullstack-dev", sino de "fullstack-en general". Lo que puede llevar a una persona el proyecto desde la etapa de negociaciones, a la etapa de firmar el acto de finalización.
No doblaré los dedos, enumerando lo que un especialista de fullstack debería y no debería saber, porque Esta es una lista extremadamente vaga. Al final, alguien logra enviar y promover "proyectos de una herramienta", digamos en Java con NoSQL, pero hoy no hablaremos de esto.
Entonces,
¿cómo convertirse en un desarrollador fullstack, necesita convertirse en un fullstack o es mejor moverse en la dirección de uno?
Repase brevemente las desventajas positivas que se encuentran en la superficie.
Contras
Probablemente el inconveniente más obvio: acepte como un hecho que siempre (
siempre ) será inferior a los desarrolladores altamente especializados en todo, desde poseer las herramientas y tecnologías más modernas hasta la calidad del código. Si eres ambicioso, siempre quieres estar a la vanguardia del progreso, quieres doblar los dedos
y mirar a los demás como una mierda : el fullstack no es tu camino.
Encontrar un trabajo para fullstack es mucho más fácil que para un desarrollador de una tecnología. Pero encontrar un trabajo bien
remunerado es aún más difícil. Paradoja, ¿eh? Sin embargo, en la gran mayoría de los casos, este es el caso (a menos, por supuesto, que queramos utilizar la pila completa como pila completa, y no como un "programador de Java"). Cuando las personas pagan mucho desde los primeros días / meses de trabajo, por lo general no necesitan "un shvets y un segador, y un tipo"; allí se necesita un equipo más bien engrasado en un mecanismo común que hará exactamente una tarea y lo hará bien,
como dijo el tímido . Por supuesto, hay excepciones, pero no hay tantas como nos gustaría.
El trabajo en un casco implica la finitud de los recursos. Es decir no puede implementar un producto de software realmente grande. Incluso si hay suficiente conocimiento, no habrá suficiente tiempo. No podrás lanzar un juego asesino (los pequeños desarrollos independientes son buenos, pero no se trata de ellos), el sistema operativo o Mega-Office-XXL. A menudo, las personas se agotan si han emprendido un proyecto demasiado grande sin calcular su fuerza. Si te gusta hacer juegos, o participar en grandes proyectos (generalmente internacionales), o al extremo, obtén un buen salario justo después de una universidad (2-3 años de trabajo activo) en cualquier campo, tampoco estás aquí.
Tienes que estudiar todo el tiempo. Constantemente Mucho A diferentes cosas. Si recuerda los años de estudio con un estremecimiento, las conferencias y los seminarios web despiertan su disgusto, si no está listo para pasar horas leyendo megatones de basura informativa, buscando partículas útiles, si le molestan las tecnologías que
debe poder administrar , independientemente de sus deseos y preferencias - No necesita la ruta de pila completa. Debe comprender (y aceptar) que se necesita algo de Zen aquí. Solo tienes que alejarte de lo que está sucediendo, que no está con todos.
Nunca olvides que una persona, de hecho, es un ganado de una sola tarea, pero tendrás que emular constantemente modos multitarea (diferentes idiomas, diferentes entornos de desarrollo, diferentes enfoques, pero los conceptos de "escribir código" e "implementar infraestructura" son diferentes). Créeme, al principio es muy difícil y conduce a baja velocidad y muchos errores.
Y finalmente, siempre existe el riesgo de ser rehén por la situación y dejar de desarrollarse si el lugar de trabajo no involucra escalas profesionales. Y muchos miles de trabajadores potencialmente excelentes están tristemente sentados en escritorios pequeños, sin hacer absolutamente nada de lo que querían hace 10 años. Sí, pueden hacerlo en Windows Server, en * nix, tal vez en Java y Python, admiten algunas manualidades en C #, hace mucho tiempo el "portal corporativo" estaba escrito en PHP + JS, pero no hay más tareas, todo está depurado en la oficina, Todo funciona.
Y vale la pena cruzar la frontera en 35-40 años, cuando se incluye el conservadurismo integrado en las personas, multiplicado por este pantano acogedor, que en última instancia conduce a una especie de "maleta sin asa". Y romper este círculo vicioso se vuelve más difícil cada año. Tenga cuidado con tal condición, porque una barba y un suéter crecen aún más rápido que los de especialistas limitados que han estado escribiendo lo mismo durante 10 años.
Tal vez suficientes películas de terror para hoy, hablemos de los profesionales.
Puedes hacer cualquier cosa. Bueno o casi. De un sitio web corporativo a una aplicación móvil. Después de todo, no está limitado a 1-2 tecnologías. Incluso puedes construir tu micro-imperio en una única intranet.
Si ha estado trabajando fullstack durante mucho tiempo (y lo más importante, con éxito), puede liderar fácilmente el equipo de desarrollo. Conviértete en arquitecto. Aquellos que están a la vanguardia de cualquier proyecto importante.
Si eres un introvertido hosco, te encantan los autos y no te gustan las personas: gana dinero en un sitio remoto. Liderando tranquilamente varios proyectos, puede ganar un buen dinero sin gastar los nervios para comunicarse con el equipo.
Si te gusta comunicarte con la gente, tienes un idioma suspendido (o entrenado) (o simplemente eres un astuto introvertido con fuerza de voluntad): puedes ganar más dinero penetrando en el alma del cliente.
Debe entenderse que nunca se quedará sin trabajo en absoluto. Si eres el fullstack correcto, entonces debes usar el medio en cualquier tecnología. E incluso en la "parte media de alto nivel" (esto es cuando Google no tomará el liderazgo de un equipo desde la calle, pero en un proyecto más o menos serio, es fácil).
Y finalmente, algunos consejos simples y obvios (por desgracia, no para todos y no siempre). Me concentraré conscientemente en la base del código, no en la infraestructura, para no aburrir a los lectores.
Consejo uno.
No dejes que tu orgullo prevalezca sobre ti . Esto es muy importante Dé por sentado que hay personas que hacen algo mejor que usted. Aprende de ellos, si es posible. El enfoque "todos ustedes son una mierda, pero yo soy todo un montón, puedo hacer todo" es erróneo en la raíz, y a menudo no solo afecta a la vanidad, sino también a la billetera. Si te amas a ti mismo y al dinero, sigue este consejo.
Consejo dos. Una o dos veces en unos pocos años, sería bueno trabajar en un equipo de especialistas limitados. Esto mejora enormemente la habilidad, porque la tecnología no se detiene, sino que se apresura a la velocidad de una locomotora, y los especialistas estrechos intentan estar a la moda. Si existe esa oportunidad, no la pierda, aprenda mucho, encuentre muchos cuellos de botella en sus proyectos antiguos y no los permita en proyectos nuevos.
Consejo tres. No busque aprender TODO YaP. En primer lugar, es simplemente imposible, y en segundo lugar, no es necesario. Utilice en sus proyectos tecnologías bien estudiadas, aquellas en las que realmente sea "Signor". Debes estudiar nuevos materiales nucleares (al menos para el desarrollo general), pero debes aplicarlos en proyectos reales solo después de que te resulten realmente claros. Tan directamente como los idiomas y cómo, con qué calidad se pueden usar, qué beneficios se pueden obtener al cambiar, por ejemplo, de Java a Kotlin o Scala. Si no comprende los beneficios, entonces el idioma aún no ha madurado o (lo más probable) usted mismo. El enfoque "dar dos semanas para leer mota y escribiré sobre esta mierda" es un mal enfoque.
Consejo cuatro. Si observa el código de su desarrollo hace 1 a 3 años y no desea solucionarlo, lo más probable es que tenga una crisis, como la de un desarrollador (o un código ideal en todos los aspectos, lo que no sucede). Prueba el consejo n. ° 2
Consejo cinco. Desde el comienzo del camino, desarrolle una base de clientes. Construye tu autoridad. Usted y sus desarrollos deberían saberlo. No importa si trabaja en la empresa o es independiente en un sitio remoto. Si no tiene dificultades para comunicarse con las personas, asegúrese de pasar tiempo comunicándose con el cliente. Y doblemente necesario: comunicarse directamente con quienes tienen que trabajar con su producto. Por lo tanto, podrá pensar mejor en la arquitectura del futuro proyecto.
Consejo siete. Medir herramientas y tareas. No dispares desde un cañón a los gorriones. No es necesario implementar una infraestructura local
con blackjack y chicas con baja responsabilidad social para un "sitio corporativo" de una página, solo porque sí. que puedes personalizarlo. Y tampoco necesita arrastrar marcos JS de 5 MB a este sitio (solo porque puede hacerlo).
No es necesario arrastrar de atrás hacia adelante cuál es el lugar en la parte posterior. Por el contrario, no lo hagas. Recuerde, si de repente tiene demasiadas muletas en un proyecto cuyas especificaciones técnicas no se han cambiado 100.500 veces durante el desarrollo, significa que ha diseñado mal la arquitectura. Si es posible, corríjalo, de lo contrario, asegúrese de considerar esto en las siguientes tareas.
Consejo de la octava. Establecer prioridades correctamente. Recuerde que su tarea es hacer que el producto, en primer lugar, sea
conveniente y lo más
confiable posible. Incluso si tiene un sentido de belleza hipertrofiado, la belleza debe ser la última.
Uf Quizás esto sea suficiente para comenzar.
Gracias a todos por su atención.
Oh sí, casi lo olvido ... ¡Que comience el srach!