Fullstack - pourquoi est-ce cool ou comment profiter du travail

Récemment, de sérieuses batailles ont éclaté à Habré dans les commentaires sur l'article de Fulsteki - ce sont des MIDL éternels. Ne suivez pas ce chemin si vous ne voulez pas souffrir

Je vais essayer d'exprimer mon point de vue que la pile complète est vraiment cool, et pourquoi il est bon de suivre cette voie.

Peut-être que le texte ci-dessous aidera quelqu'un à s'engager sur cette voie, et peut-être vice versa, en protégera les esprits fragiles. En général, bienvenue au chat.

** AHTUNG! Tout ce qui suit n'est pas la vérité ultime et est ma vision subjective (de ce monde).


Pour commencer, définissons les termes qui seront discutés ci-dessous pour être dans le même champ d'information, car le concept de fullstack est différent pour tout le monde (tout comme la division en tableaux de classement Junior / Moyen / Senior et autres).

L'opinion la plus courante est que fullstack est un développeur qui, en une seule personne, peut travailler seul sur un projet, de l'arrière vers l'avant.

Certains d'entre vous peuvent dire: «Eh bien, dans mon équipe, le milieu peut», ce qui (pour le dire légèrement) est incorrect dans la plupart des cas. Si le développeur frontal peut corriger / ajouter quelque chose dans le code de support, approfondir les requêtes de base de données, ce n'est toujours pas une pile complète.
Après tout, le développement de projet n'est pas seulement un code avant et arrière, il construit également / configure / supporte l'infrastructure pour le produit résultant. Il ne suffit pas d'écrire du code, il faut encore le faire travailler sur l'objet. Et l'objet peut être un VPS de 5 dollars avec LAMP par défaut, et des réseaux cloud comme AWS / Azure, ou même votre propre infrastructure, où vit du matériel bien réel, des serveurs / postes de travail aux routeurs.

Par conséquent, nous ne parlons pas de «fullstack-dev», mais plutôt de «fullstack-in general». Ce qui peut faire passer le projet d'une seule personne du stade des négociations au stade de la signature de l'acte d'achèvement.

Je ne plierai pas mes doigts, énumérant ce qu'un spécialiste fullstack devrait et ne devrait pas savoir, car c'est une liste extrêmement vague. Au final, quelqu'un parvient à soumettre et à promouvoir des «projets d'un seul outil», disons en Java avec NoSQL, mais aujourd'hui nous n'en parlerons pas.

Alors, comment devenir développeur fullstack, avez-vous besoin de devenir fullstack ou est-il préférable d'aller dans le sens d'un?

Passez brièvement en revue les points négatifs qui se trouvent à la surface.

Inconvénients


Probablement le moins évident - acceptez comme un fait que vous serez toujours ( toujours ) inférieur aux développeurs hautement spécialisés dans tous les domaines - de la possession des outils et des technologies les plus modernes à la qualité du code. Si vous êtes ambitieux, vous voulez toujours être à la pointe du progrès, vous voulez plier les doigts et regarder les autres comme de la merde - le fullstack n'est pas votre chemin.

Trouver un emploi pour fullstack est beaucoup plus facile que pour un développeur d'une technologie. Mais trouver un emploi bien rémunéré est encore plus difficile. Paradoxe, hein? Cependant, dans la grande majorité des cas, c'est le cas (à moins bien sûr que nous voulions utiliser la pile complète comme pile complète, et non en tant que «programmeur Java»). Lorsque les gens paient beaucoup dès les premiers jours / mois de travail, ils n'ont généralement pas besoin "à la fois d'une moissonneuse et d'une moissonneuse, et d'un mec" - là, vous avez besoin d'un autre équipement bien huilé dans le mécanisme général qui fera exactement une tâche et le fera bien comme l'a dit le timlid . Bien sûr, il y a des exceptions, mais il n'y en a pas autant que nous le souhaiterions.

Travailler dans un seul casque implique la finitude des ressources. C'est-à-dire vous ne pouvez pas implémenter un produit logiciel vraiment volumineux. Même s'il y a suffisamment de connaissances, il n'y aura pas assez de temps. Vous ne pourrez pas sortir un jeu tueur (les petits développements indépendants sont bons, mais ce n'est pas à propos d'eux), le système d'exploitation ou Mega-Office-XXL. Souvent, les gens s'épuisent s'ils ont entrepris un projet trop important sans calculer leur force. Si vous aimez faire des jeux ou participer à de grands projets (généralement internationaux) ou à l'extrême, obtenez un bon salaire juste après une université (2-3 ans de travail actif) dans un domaine donné - vous n'êtes pas non plus ici.

Vous devez étudier tout le temps. Constamment. Beaucoup. Pour différentes choses. Si vous vous souvenez des années d'étude avec un frisson, les conférences et les webinaires suscitent votre aversion, si vous n'êtes pas prêt à passer des heures à lire des mégatonnes d'ordures informatives, à la recherche de particules utiles, si vous êtes ennuyé par les technologies que vous devez être en mesure de gérer , quels que soient vos désirs et vos préférences - vous n'avez pas besoin du chemin fullstack. Vous devez comprendre (et accepter) qu'un peu de Zen est nécessaire ici. Vous n'avez qu'à vous éloigner de ce qui se passe, ce qui n'est pas le cas de tout le monde.

N'oubliez jamais qu'une personne, en fait, est un bétail à tâche unique, mais vous devrez constamment émuler des modes multitâches (différents langages, différents environnements de développement, différentes approches, mais les concepts de «écrire du code» et de «déployer l'infrastructure» sont différents). Croyez-moi, au début, c'est très difficile et conduit à une faible vitesse et beaucoup d'erreurs.

Et enfin, il y a toujours un risque d'être pris en otage par la situation et de cesser de se développer si le lieu de travail ne comporte pas d'échelles de carrière. Et plusieurs milliers de travailleurs potentiellement excellents sont malheureusement assis dans de petits bureaux, ne faisant absolument rien de ce qu'ils voulaient il y a 10 ans. Oui, ils peuvent le faire dans Windows Server, dans * nix, peut-être en Java et Python, ils prennent en charge certains métiers en C #, il y a longtemps le "portail d'entreprise" a été écrit en PHP + JS, mais il n'y a plus de tâches, tout est débogué au bureau, tout fonctionne.
Et cela vaut la peine de franchir la frontière dans 35-40 ans, lorsque le conservatisme intégré aux personnes est inclus, multiplié par ce marécage confortable, qui mène finalement à une sorte de «valise sans poignée». Et briser ce cercle vicieux devient chaque année plus difficile. Méfiez-vous d'une telle condition, car une barbe et un pull poussent encore plus vite que celui de spécialistes étroits qui écrivent la même chose depuis 10 ans.

Peut-être assez de films d'horreur pour aujourd'hui, parlons des pros


Tu peux tout faire. Enfin ou presque. D'un site Web d'entreprise à une application mobile. Après tout, vous n'êtes pas limité à 1-2 technologies. Vous pouvez même construire votre micro-empire sur un seul intranet.

Si vous travaillez en fullstack depuis longtemps (et surtout - avec succès), vous pouvez très facilement diriger l'équipe de développement. Devenez architecte. Ceux qui sont à l'avant-garde de tout projet majeur.

Si vous êtes un introverti maussade, aimez les voitures et n’aimez pas les gens - gagnez de l’argent sur un site distant. Menant tranquillement plusieurs projets, vous pouvez gagner beaucoup d'argent sans dépenser les nerfs pour communiquer avec l'équipe.

Si vous aimez communiquer avec les gens, vous avez une langue suspendue (ou entraînée) (ou vous êtes juste un introverti rusé avec de la volonté) - vous pouvez gagner plus d'argent en pénétrant l'âme du client.

Il faut comprendre que vous ne serez jamais laissé sans travail. Si vous êtes le fullstack correct, vous devez tirer sur le milieu dans n'importe quelle technologie. Et même sur le «middle middle» (c'est à ce moment que Google ne prendra pas de chef d'équipe dans la rue, mais dans un projet plus ou moins sérieux - c'est facile).

Et enfin, quelques conseils simples et évidents (hélas, pas pour tout le monde et pas toujours). Je me concentrerai consciemment sur la base du code, pas sur l'infrastructure, afin de ne pas ennuyer les lecteurs.

Astuce un. Ne laissez pas votre fierté l'emporter sur vous . C'est très important. Tenez pour acquis qu'il y a des gens qui font mieux que vous. Apprenez d'eux, si possible. L'approche «vous êtes tous de la merde, mais je suis un fullstack, je peux tout faire» est erronée à la racine, et frappe souvent non seulement la vanité, mais aussi le portefeuille. Si vous vous aimez et que vous aimez l'argent - suivez ces conseils.

Astuce deux. Une ou deux fois en quelques années, ce serait bien de travailler dans une équipe de spécialistes étroits. Cela améliore considérablement les compétences, car la technologie ne s'arrête pas, mais se précipite à la vitesse d'une locomotive, et des spécialistes étroits essaient d'être à la mode. S'il y a une telle opportunité - ne la manquez pas, apprenez beaucoup, trouvez beaucoup de goulots d'étranglement dans vos anciens projets et ne les autorisez pas dans les nouveaux.

Astuce trois. Ne cherchez pas à apprendre TOUS les YaP. Premièrement, c'est tout simplement impossible, et deuxièmement, ce n'est pas nécessaire. Utilisez dans vos projets des technologies bien étudiées, celles dont vous êtes vraiment «Signor». Vous devez étudier de nouveaux matériaux nucléaires (au moins pour le développement général), mais vous ne devez les appliquer dans de vrais projets qu'après qu'ils vous soient vraiment apparus. Aussi directement que les langages et comment, avec quelle qualité ils peuvent être utilisés, quels avantages peut-on retirer du passage, par exemple, de Java à Kotlin ou Scala. Si vous ne comprenez pas les avantages, alors soit la langue n'a pas encore mûri, soit (très probablement) vous-même. L'approche "donnez deux semaines pour lire le speck et j'écrirai sur cette merde" est une mauvaise approche.

Astuce quatre. Si vous regardez le code de votre développement il y a 1 à 3 ans et que vous ne voulez pas le corriger, vous avez probablement une crise, comme celle d'un développeur (ou un code idéal à tous égards, ce qui ne se produit pas). Essayez le conseil n ° 2.

Astuce cinq. Dès le début du parcours, développez une clientèle. Renforcez votre autorité. Vous et vos développements devez savoir. Peu importe que vous travailliez dans l'entreprise ou que vous soyez indépendant sur un site distant. Si vous n'avez aucune difficulté à communiquer avec les gens, assurez-vous de passer du temps à communiquer avec le client. Et doublement nécessaire - pour communiquer directement avec ceux qui doivent travailler avec votre produit. Vous serez ainsi beaucoup mieux à même de réfléchir à l'architecture du futur projet.

Astuce sept. Mesurer les outils et les tâches. Ne tirez pas avec un canon sur des moineaux. Pas besoin de déployer une infrastructure locale avec blackjack et filles à faible responsabilité sociale pour un "site d'entreprise" d'une page, juste parce que. que vous pouvez le personnaliser. Et vous n'avez pas non plus besoin de faire glisser les frameworks JS de 5 Mo sur ce site (simplement parce que vous le pouvez).

Pas besoin de faire glisser de l'arrière vers l'avant ce que l'endroit est à l'arrière. Au contraire, ne le faites pas. N'oubliez pas que si vous avez soudainement trop de béquilles sur un projet dont les spécifications techniques n'ont pas été modifiées 100 500 fois au cours du développement, cela signifie que vous avez mal conçu l'architecture. Si possible, corrigez-le, sinon, assurez-vous d'en tenir compte dans les tâches suivantes.

Conseil du huitième. Fixez correctement les priorités. N'oubliez pas que votre tâche consiste à rendre le produit, tout d'abord, pratique et aussi fiable que possible. Même si vous avez un sens de la beauté hypertrophié, la beauté doit être apportée en dernier.

Ouf Peut-être que cela suffit pour commencer.

Merci à tous pour votre attention.

Oh oui, j'ai presque oublié ... Laissons srach commencer!

Source: https://habr.com/ru/post/fr430430/


All Articles