To be a full stack and not to be

    I am exactly the 40+ year old single-stack that was mentioned in the sensational article . When I see a task where the backender mentions dTo, to which you need to write a binding at the front ... I plan to lose my temper. Firstly, I work well when I am angry. And here is such a case. And secondly (and this is important), I do not want to know what DeTeO is, where it lies and how to work with it. I need only the path, method, parameters and response set. In terms of HTTP / REST. I do not want to get into the back code. I don’t even want to guess that based on the name of the dTo class, you can easily calculate the path.

    This is a matter of respect. I do not go into the backing kitchen. And when I set the task on the back, I clearly paint the interface (again in terms of REST) ​​and briefly describe why I need it and how I'm going to use it. How it is implemented on the back is not my business, how I implement the work of the front and where I put the buttons - not them.

    Do you already understand what will be discussed in the article? So - a little about that. I work as a single. But actually, I'm multi-stack. Moreover, he worked and gave the result of the senior and team lead in the front, back, full stack, system and even business analysis. And I'm glad that I have such a background.

    What is good in it, and how did I get to that under the cut.


    In many articles I immediately fake intrigue. I put the conclusions at the beginning of the article, and then I open the topic, with explanations, examples, jokes and trolling. Especially when the conclusions are contradictory, and the explanations are shaky. I see no reason not to save someone time here.

    I believe that, if possible, it is worth working in several areas. Especially in youth, when brains are not beaten, and there is no responsibility to family and children. Moreover, when you change stasis, you almost do not lose your salary, but in the long run you only win.

    PS I write mainly about seniors, but everything can be lowered a notch (I have little experience in middle).

    PPS I use the terms technology and platform (as synonyms) for a programming language and / or framework. This is not accidental in the context of the article. "Deep knowledge of the language" is often nothing in front of a deep and practical knowledge of libraries (perhaps if you do not take LISP / Hackel or C ++ with perversions). So let's say Python + Hadoop, Python + CV and Python + ML - these are different technologies / platforms, for my taste. Of course, often people with knowledge in computer vision, at least, are interested in machine learning, or even distributed computing. But ... to become a cool specialist on these three platforms, it is not enough to be a specialist on one.

    • Knowledge becomes obsolete
    • Learning habit
    • Diversification
    • hype
    • The whole helps the particulars


    Technology life time

    Any technology lives on average 5 years * ( * Author's fantasies ). Then either it is replaced by something else. Or the technology is moving to version 2.0, declaratively ideologically compatible with the previous one, and not really ...

    In fact, you have to learn again. Moreover: you have to break yourself, abandon comfortable developments and familiar logic. It hurts, is difficult, and infuriates. When a simple task (in version 1.0), in version 2.0 it requires hellish crutches and tons of code. Then, of course, you find that the problem could be solved more than simply. Easier than in 1.0. Just not as used to it.

    In any case, there is a five-year cycle, during which knowledge and best practices are depreciated. Therefore, in the development of constantly have to learn. To run, only to stay in place, like "Alice in Wonderland." Stopped, behind and the demand falls.

    And what a shame that you have to learn jerky. You sit by yourself, code without a break, develop techniques, learn subtle features and “standard hacks”. And there ... time! A new version. And half of the knowledge is no longer needed by potential employers. This means that it will be difficult to build a conversation with your employer, starting with: "there is such a situation on the market ..."

    For it will be a pure bluff. Indeed, at the current work, they continue to successfully and actively use the once-hype platform. Which gradually becomes the shit of a mammoth. And you become more and more cool specialist ... in mammoth shit. With prospects only in raking it, which is becoming less and less in the world (but not in your current job).

    Sooner or later, for one reason or another, you change work. And then you have to talk with people who have long been on version 2.0. And to look a little ingratiating, since s / n you want to seigneur, but you understand that so far it’s not even middle. And well, if you understand.

    Yes, according to technology 2.0, by the time the guides were viewed, there were even attempts to code something. But if you are a good and responsible specialist, then this was not so much time. Because at work, there are tasks, but at home ... already exhausted at work ...

    Accordingly, you will be in pain from the new rake. A potential employer problems from crutches. With which you will cunningly wrap a rake. And employers, such bastards, understand everything perfectly. And do not mind sharing with you the costs of your "very fast training", "reasonably" understating the salary.

    Yes, everyone wants to hire a ready-made specialist, whose period of “roll-in” will take a couple of days (ideally those couple of days that take formalities and setting up a workplace). They want to hire, but they can’t. Not many orphaned good ones run around the market. Well, sometimes they run, but they don’t give them much to run, they immediately slam the offers.

    Consequently, employers are prepared to tolerate unpredictable delays from a rake and possible pain from crutches. And we are ready to take on the senior positions of the current middles with the expectation that they will grow rapidly. Especially if these middles were already seniors and showed results. Therefore, the interviews are often not based on technology, but because they used to do what problems were and how they solved * (* The author thought so at the time of the beginning of work on the article, then he went through interviews with “write sorting on a piece of paper” and now is thoughtful ).

    And at this point, you can make a tricky feint with your ear. Take and do not go to work on platform 2.0. You can search (and find a job!) On a completely different platform.

    Yah! Bullshit, you say. This does not happen. Hmm ... I have done this many times. And, unlike the heroes of the famous television show, I did it.

    Yes, sometimes, you have to sacrifice a salary or a possible increase to it. Yes, you need to spend time studying technology and try at least something to do. You will have to run around interviews and get a pack of failures. But sooner or later you find work ... By the way, several times it was that those who first refused me - then repeatedly called back and lured me with different goodies.

    Now the question is - why change the platform? I’ll leave the most delicious at the end of the article, but there is something to say.

    What lies on the surface:

    • hopeless obsolescence of technology or the exit of technology from the “hype zone”
    • commonplace boredom and purity

    Just after some time, the technology that brought reliable bread with butter and caviar can be blown away. It’s so powerful that it’s not easy for her to earn bread. And then do not deflate, but actually die. And often this is shown to us at the institute, arranging training for necroplatforms. In 96, I found Clipper and Supercalc (I began to write what it is, but after writing a huge paragraph, I erased it - the article was not about archeology, but back in 96, both of these products had to be taught to archaeologists). And we, instead of learning a lesson (that nothing lasts forever in IT), grumbled at the shitty mammoth teachers.

    And even if the technology is far from death, it can simply leave the “hype zone”. That is, the market can massively abandon technology and switch to something else. I won’t even give examples - you yourself can recall their mass, even if in IT it’s only a couple of years.

    If the technology "died", you lose your salary and it becomes difficult to find a job.

    If, however, antihaypanula is possibly lost in your salary, but you are “in difficulty” finding a job. But those who are used to being torn to pieces by employers are very uncomfortable and depressed in such a situation (I know this firsthand - it’s really hard, especially if the family hangs in their arms).

    There is only one way out - to choose the most interesting platform from the “hype pool” and dive into it with your head. And this is less difficult than trying to squeeze profit out of rapidly aging knowledge and skills (my experience says so). And, most funny, it's interesting. You have to strain your brains: read, understand, form tools and solutions for your tasks. Me from this often just rushing is not childish. And, mind you, this quest is for employer money.

    Yes, sometimes it happens that a new technology does not enter at all. Constantly stuck in the barriers and limitations of technology. But studying a new one, in at least 2 out of 3 cases, is much more interesting than “riveting molds”.

    The fact is that in the work where you have been for a long time, where you have been loved and respected, there is one problem - gauge. You built it yourself and have a lot of git from it. You know how the system works, methods and tools have been developed that allow it to expand, if not infinitely, but precisely in the horizon of the year. You know what the business plans, you know what new systems will be made based on your developments (the business loves ready-made quick solutions) and ...
    And it's ... boring. Because the track. By which the business rushes into financial distances, and you just provide the forward movement of the locomotive and, sometimes, overhaul ... of the station sideboard.

    And even if you change jobs, but don’t change technology, then ... So you come to a new place where people are trying to make a mixture of a funicular with an armadillo. And here you are: let's not hang rails on sequoias (especially since not all sequoias have grown yet). It is better to use sleepers with a standard size A1 * ( * real standard size ) and rails of the MT-LB-70RX * brand ( * a random set of letters and numbers ). You can quickly make a narrow road for the prototype, then, if anything, we rewrite the canvas.

    Everyone is amazed, inspired, applauded. They appoint you the main rock star and go sawing sequoias onto the sleepers of the specified size. And you ... already at this stage it becomes boring. You went to make a funicular, but you don’t need it to transport coal and sticks. And again you are building the usual rut, perhaps in a slightly different landscape.

    In fact, the developed solutions are very cool. For business. The employer suddenly gets what he wetly dreamed about for a long time. And showers you with, if not goodies, then immense respect. Yes, this is also something that you should feel in life. But, again, boredom and ... a limited horizon for the use of "solid developments." The business is ready to use very outdated solutions if they give a quick profit. But also for the time being.
    When I got into a long track, I noticed a sharp decrease in productivity and brain activity. They love me, value me ... and I have to force myself to work with a creak.

    In these cases, it makes sense again to change the work and / or platform. Of course, there are other ways to get out of this state, without extreme. But, I’m not an enemy of my own reasoning, although ...

    Although ... well, in a contradiction to myself. Working in a rut, somewhat annoying me personally, because I used to think quickly and make decisions (albeit not always the right ones). I like to solve problems. Find cool or tricky compromise solutions, or even with a show off to offer to hammer crutches (stipulating that it’s actually impossible to do this). But to implement the solution is already boring.

    But this is my mindset. The team is working with me guys who are dragging on what they are doing, and not on how. It’s fun to see a new feature in the system and be proud that it appeared thanks to them. I also suffer from this enjoy, although to a lesser extent.
    Therefore ... I learned to focus on the delta done, which gives motivation. I specially take the time to just play around with the system (not on prod, honestly, honestly). See what appeared, what it cost me (at the same time to find several places that it would be time to already grind a file). Hobbies also help work in a rut. It gives drive, and you get positive emotions from closed tasks.

    However, when working in a rut with rock stars (I’m immodest), performance decreases noticeably, simply because you cannot completely focus on work for successful work (in a rut). Need parallel motivation. And the authorities begin to squint: how so? Some features take the same amount of time as the prototype that immediately went to the prod. This should be treated with understanding or, again ... thinking about changing jobs.

    Habit to study and curiosity

    The developer has to learn constantly. Yes, this applies to any profession. I remember the same thing the dentist told me. But the dentist is unlikely to encounter a situation where, within a couple of years, 80% of the clinics suddenly switch to a quasiper portalator instead of a drill. And for the place of the remaining drill (do not throw it away), cunning employers will pay pennies.

    In IT, the speed of change is off scale. Yes there are fundamental skills: variables, cycles, classes, structures, transformations of structures, mathematical methods, patterns. But, damn it, quantum computers are on their way and maybe everything that I have in my luggage is already rapidly turning into a superposition of pumpkins.

    The brain is the only organ that can develop at any age. And in terms of speed of development (and, unfortunately, degradation), makes any biceps like a Tu-160 sparrow.

    And the greater the load, the better the shape (to a certain limit, of course). Learning new things is just the kind of load that is most favorable to the brain. To compare: this is how to carry bags of potatoes in the country or "weight" in the simulator. The loads are comparable in volume, but not in terms of “taste”. Well, if you're not a gardener, of course.

    And the more you study, the better it turns out. Plus, during total training it is not possible to work to the fullest - at some point there is not enough equipment and you have to change the "plowing" for guides. This just gives the brain a rest from not at all useful monotonous loads, especially in emergency mode. I, in analyzing my code written in the 60-80 hour working week mode, was in some surprise. From the fact that I did not use not only new, but in general any instruments known to me that did not have a powerful experience. There were no brain resources not only for training, but at least for remembering. Well, except for those things without which it was impossible to advance at all.

    As many university professors say: higher education provides two things - terminology to talk with specialists and ... the ability to learn. But the latter, not forever, but for now use it.

    Yes, in principle, a deep specialist can be paid more than a wide one, but there are few places with a mega salary for "narrow" ones. But the "broad" easily find work, because there is a choice and the toad does not strangle if the salary is "just a little higher than the market."

    Diversification of a loved one

    Owning multiple platforms is much easier to build a career more flexibly. This is not only an opportunity to more quickly change the employer. All sorts of “internal startups” often arise within the framework of your team or your department / management. This can be both an initiative of the developers themselves, and the emergence of resources to finally make a pink and blue business wish.

    And this is not only a chance to change stasis, but also to do it without interruption from production. And perhaps get a salary / career growth or share in the business. Just because there was no back / front / data scientist in the team, you were interested in trying, and people were glad that at least someone would try.

    I mentioned before about a rake and crutches. The value and growth of a specialist is the possession of a tool. Without walking the rake, there will be no growth, even if you miscalculate yourself with clever books and guides.

    And last but not least

    In doing part, it is often useful to represent the whole. If you have experience working with the back-end, then working in front you better imagine what you can get / give to the server. What will be easily done for you, and what will require serious efforts. A back-end with experience in the front better understands what data and in what form the front-end expects from it.

    In addition, you better understand the system as a whole and understand how it will develop further. Which things are critical and which are not. What can and should be done "softly", and where it is better to hardcode and not steamed.

    It also helps in the "trade" of resources. When you imagine how much “refinement” costs at the other end of the interface and what side effects may occur, it’s easier to negotiate with your colleagues about “optional” modifications for them. Even against the background of the hands of colleagues.
    Even if the experience is not so diverse, then owning “neighboring” technologies, you often find interesting solutions in your current one.

    Plus a longed for opportunity.

    Ability to work full stack

    ABOUT! Fullstack is cool. That sounds Immediately imagine how the world falls at your feet, the turn of employers goes beyond the horizon, the girls smile on the street, and in a rocking chair you take 30kg more weight. In fact, a little bit wrong.

    The main full-stack niche is small firms and small projects. Yes, often small in volume, but not in importance. Where are you king and god of all code. He made the front himself, made the middle himself and filmed the database himself. And here two options are possible:

    • you were taken to the growth of the system
    • everything suits the employer

    Both that and another has prospects. In the first case, if the business tramples, then most likely you will become a team leader. Although the situations are different, a couple of my colleagues were looking for Padawans, and they found bosses. But, most likely, the person who has the maximum knowledge of the system will remain the team lead if he has at least some leadership and organizational skills. I see - that's growth.

    In the second case, you can gash a frog and vegetate for support. Work do not hit the speed bump, but the authorities are not aware that salaries in IT are constantly growing. And if she is in the know, she will pretend that she is not in the know. But, if the system is really the cornerstone for the business, and the business is adequate, then in order not to lose the key (and the only specialist) they can offer you ... It’s hard to refuse. Options for increasing motivation:

    • loyal semi-home work schedule
    • s / n above market
    • share in income
    • cut off your fingers if you decide to leave

    But the latter is rare, although I heard first-hand such a situation. But, in the end, they didn’t cut their fingers, they scared only. Boring.

    Actually, the full-stack operation can bring many, many rules, but ...

    Bit bitterness

    It's time for the cherry on the cake. But in my cherry, hydrocyanic acid is slightly more than normal.

    And here is the thing. Context switching. What we really like to talk about when we fly in time in our tasks. In all two tasks taken. But it actually exists. And most of all hits the full stacks.

    The highest salaries, the most interesting work and fast career growth at the forefront. When you step onto the brink of the unknown and start doing something that nobody seems to have done yet (well, or did, but did not write about it on the Internet). When a business wants something, it has money for it, but does not know how it should look and sometimes even how it works. Or when you have conflicting requirements for the interface and / or system. And in order to advance, you need to find some non-standard moves and solutions.

    In such a situation, sooner or later you start to beat against the wall. Those conflicting requirements. Speed ​​versus flexibility. Clarity versus sufficiency. Here either make a crutch on a crutch in the hope of someday coming and raking. Or go deep into a creative search, try different options and wait for an insight. But in reality, the balance of crutches and insights steers. But if crutches win with a crushing score, then the project becomes stillborn. Therefore, insights are so important.

    But they usually come when you are deeply immersed in the topic. With all the context. You do not have to sit at the monitor or over sheets of paper all the time. If you are deeply immersed, then a fairy freebie often comesall the work goes on the background, and you can just walk, ride a bike, play hockey, have sex, be in a binge, ... And click! And here it is - a solution that is so simple and obvious.

    But the more context you switch, the less insights. Therefore, the fate of a full stack is either strong average products, or distortions in one of the parts. A brilliant front and middle back, flying back and jambs at the front. Either both fires, but the deadlines are flying.
    Plus the damned Buridan donkeys. Who walk around you and shove your arm, either under the right or under the left: let's do it better at the front, but no, no, it will be better on the back. Would beat.

    But multi-stacking at the forefront often gives breakthroughs. You have less fog of war, because you can imagine the problems of other parts of the system, voice them ... and leave professionals to deal with them. Plus, some decisions from front-back-middle practices turn out to be quite transportable.


    I do not insist on anything * ( * blatant lie ). But for me, the experience and importance of full-stacking is somewhat overrated. And multi-stacking, on the contrary, is fatally underestimated. But mastering several aspects of development is a big plus. They will not pay extra for this, and in interviews this will not always give a serious advantage. But work becomes more fun and easier. In addition, you can always wipe your nose to the dumbing colleagues backenders / frontenders in a good friendly conversation with a beer or borsch. And yes, when I consider a resume, I consider the experience in several stacks to be a plus (if it is serious) and I advise you of the same.

    I liked to change technology, learn something new. And this almost does not affect the salary.

    Yes, and in the article I run over a little full-stacks. In fact, when I started writing the article (more precisely a month after I returned to the first drafts) I had a wonderful full-stack pre-offerer. Beautiful to everyone except s / n, on which we have not agreed. And I was so hoping to write about full stacks of filth, and at the end of the article say that I am now full stack. But, alas, the frontends steer * ( * according to the results of my megalomania and the current main stack ).

    Also popular now: