8 ms·
Understanding how to, for example, efficiently organize a database is a very different skill set from, for example, making a response, accessible CSS/HTML5 desi
by murgindrag 6y ago
Understanding how to, for example, efficiently organize a database is a very different skill set from, for example, making a response, accessible CSS/HTML5 design. The core skill set is only vaguely similar. Doing back-end well requires in-depth knowledge of algorithms, networks, systems, and computer architectures. Doing front-end well requires in-depth knowledge of human beings.
I think the problem here, though, is trying to overgeneralize. I've worked on projects where you want to split things vertically (apps / plugins / etc. which have isolated functionality and handle back+front end), and horizontally (front-end / back-end split).
That comes back to what the system does, as well as the make-up of the team (full stack developers will do different things well than teams of specialists).
The danger comes in when you try to mix pieces of the two. I had a system with a simple, elegant architecture with a vertical abstraction. A junior engineering team came in, who had only seen horizontal abstractions. They didn't understand it. They didn't get functional code either (they had only seen OO). They decided it was all very confusing spaghetti code, broke all the vertical abstractions, put in half-done horizontal splits, and the system became unmaintainable.... You can blame that on junior team from the high-level descriptions, but the deeper problem for that system was mixing abstractions and programming models.
- Silhouette 6y agoIt is becoming clear to me that much of the perceived difference of opinion here is just because of terminology. I was thinking of "development" as meaning specifically the programming side of things. This is quite distinct from the other skills you mentioned like responsive design or database design. Of course someone might have both front-end programming and user interface design responsibilities on the same project, but I would no more assume that than I would assume the same person would have both front- and back-end programming roles, and the skills for the latter combination are much more closely related. My point here is just that everyone has a different mix of skills and trying to pigeonhole people or restrict anything to only certain combinations is not necessarily either realistic or helpful.
- jasode 6y ago>, I've never really understood it. It's just programming, like any other software project. [...] But the fundamentals of programming are still much the same whatever you're building. It doesn't matter if the underlying programming fundamentals are the same because the human brain still has preferences on what it wants to work on. The mistake is applying some "umbrella term" (i.e. "programming") for an activity and thinking that will automatically make all sub categories attract the same interest level. It doesn't work that way. This same phenomenon happens in other intellectual activities such as mathematics, writing, painting, etc: One mathematician might prefer to study algebraic topology while another mathematician prefers to work on number theory. Thus, saying, "I don't get it -- it's all _math_ so why should one person have more interest in one branch vs another?!?" ... does not remove the preference. One writer may prefer to write political analysis essays and never writes fiction -- but another writer prefers to write fiction and never opinion pieces on current events. Therefore, saying, "I don't get the fiction/non-fiction dichotomy because both activities are just the same task of manipulating _words_?!?" ... doesn't make a preferred interest disappear. Yes, some authors write both fiction and non-fiction but the existence of them still doesn't remove the preference of other authors who specialize in just one. Even within sub-category of fiction, you get sub-specialization of "mystery novels" instead of "romance novels". Likewise, saying "painting is painting" does not change the fact that an artist might prefer to always paint landscapes and never horses or people. >It is becoming clear to me that much of the perceived difference of opinion here is just because of terminology. I was thinking of "development" as meaning specifically the programming side of things. [...] and trying to pigeonhole people or restrict anything to only certain combinations is not necessarily either realistic or helpful. Some people naturally just want to pigeonhole themselves. I've done frontend work on old DOS machines (text-based UI), raw Win32 API, VB/C# GUI forms, Javascript/HTML -- and I don't like any of it. I prefer to program the backend algorithms. Yes, coding a loop to "iterate through all window controls to enlarge them by 10% in the GUI" has something in common with "iterate through all nodes of a graph to optimize a path" ... because they're both "loops" ... but they have very different levels of intellectual satisfaction. I won't argue with you if you feel that they should feel exactly the same because they're both "programming" but I can't help it that I don't derive the same enjoyment. If I was employed by Google, I'd enjoy working on the backend ranking algorithms. To a lesser degree, I'd be ok with working on the spider crawlers. But I'd quit if they assigned me to work on the web frontend where users type in queries. But I'm also glad there are developers who prefer to work on the frontend instead of the backend because it allows people like me to stay with my preference.
- pyrale 6y agoIf you ask me, the problem seems to be setting up a team of juniors without training or supervision.
- speby 6y agoI disagree here. I think the comment by Silhouette is still very applicable and the context is within the realm of more senior folks. Understanding how to efficiently organize a database and doing the necessary work on a front-end web app to make it responsive, have a coherent SASS/CSS framework, etc., are actually skills I would generally expect much more senior developers to have if they have been doing web development for many years. Yes, I have seen "senior engineers" who tend to be more biased in doing back-end or front-end work, and in some cases, those same people actually prefer one or the other, too, but to expect them to be ABLE to work efficiently up, down, and around the entire stack vertically and horizontally is not at all unreasonable. And yes, you have to know "a lot" to get there but that's what years and years of experience gives you if you have successfully built working software for a long time.
- murgindrag 6y agoDoing front-end well involves being able to do a lot reasoning about how human beings will interact with the system, graphic design, and similar sort of skills. It's not just the work of making something responsive or organizing SASS/CSS. You're trying to make a coherent experience for a user. I'd expect senior folks to be able to not get confused by an HTML tag, of course, and to be able to build a good end-to-end system, but the really good front-end devs I've worked with think through really subtle details of interaction design -- how long a slider slides, subtle changes to colors during mouse-overs and other actions, and just thousands of details that make a world of difference in how the product feels. Conversely, anyone who's coded for more than a few years should be able to do a database query. But a really senior back-end dev will be able to think through how to, for example, make an architecture capable of streaming through thousands of events per second with 100ms latency, how to shard a system to work in data centers around the world to maintain data coherence while minimizing user latency, or hundreds of similar complex algorithmic tasks. There are plenty of full stack people who can make an app responsive, have a coherent SASS/CSS framework, and efficiently organize a typical database (I can do all of that too, for that matter), but doing either side well takes many years of experience on its own. There are times to go with a generalist. And there are times to go with a specialist.
- mercer 6y ago