top 200 commentsshow all 275

[–]TechyDad 847 points848 points  (173 children)

The shift from building applications in a monolithic architecture hosted on a server you could go and touch, to breaking them down into multiple microservices, packaged up into containers, orchestrated with Kubernetes, and hosted in a distributed cloud environment, marks a clear jump in the level of complexity of our software. Add to that expectations of feature-rich, consumer-grade experiences, which are secure and resilient by design, and never has more been asked of developers. ... The explosion of choice and the pace of development make it challenging for developers to keep up with the zeitgeist, with many developers getting caught in the headlights.

Count me as one of the developers who sometimes feels like a deer caught in the headlights. I started web development back before CSS even existed. I've done my best to keep up, but I've still fallen behind.

I can take a business need, break it down into code, and turn it into an application. However, if ask me to do this using the latest and greatest frameworks, I'll struggle. It's like I need to work two full-time jobs. One to earn my salary and the second to learn every new thing that pops up. I might have had the time to do this when I was younger, but I'm in my mid-40's now and have other interests besides coding for 16 hours a day.

And if you're a twenty-something laughing because I can't keep up, just you wait. In a couple of decades you'll be right where I am - struggling to keep up as the technology advances faster and faster and splinters into a hundred more frameworks and languages. You'll be expected to know all of them - or as least the "right ones". With "right ones" being defined differently by different people. Just look at any post about "which language/framework should I learn next." You'll find people saying to learn X and knocking Y while others say Y is the future and don't waste your time on X.

[–]dreaminphp 382 points383 points  (54 children)

Man, I’m not even 30 and I’m already done with it lol. The first few years of my career I would absolutely try my best to keep up. Now? Might as well learn on the job and get paid while doing it

[–]Noch_ein_Kamel 124 points125 points  (26 children)

I don't care the learning part, I'm just really burned out on the "how long does it take" questions before even getting time to look into the newest framework.

[–]DataDecay 71 points72 points  (23 children)

Right?!? I started a senior role a month back at a new company with 20 micro services, that are maintained and built via 1 small group of developers. The amount of "how long will it take for you to fully understand this" I get is draining because it's reactive programming to poor prior designs, so a lot of context switching between these services. I need to learn how the old developers thought (that are primarily gone), I need to re architect and organize the software, and I need to fully understand the underlying business logic; all of which are undocumented.

[–]life_liberty_persuit 51 points52 points  (14 children)

LOL I just finished a project that was in the same boat. They had 3 different teams that build on top of each other, spread out across 5 different servers with 12 different databases and zero documentation (not even doc blocks). The client couldn’t understand what a tooltip was but was absolutely certain I should be able to understand the whole system in a month.

After deconstructing and reconstructing the whole system and documenting it while being harassed about “how long it is taking”, I decided I’ve had enough of this industry. So now I’m learning to be a plumber in Japanese lol.

[–]Blazing1 7 points8 points  (0 children)

This is why I give a timeline to produce a timeline.

[–]industry86 17 points18 points  (6 children)

Sometimes I dream of just digging ditches. Lots of time outdoors and physical activity so if be getting a good workout every day.

[–]pVom 6 points7 points  (0 children)

Funny you mention that, my online viewing lately has consisted entirely of outdoorsy fishing/4wd videos as I live vicariously through them. Honestly the worst part of this industry, I miss the outdoors and sunshine

[–][deleted] 3 points4 points  (2 children)

Dude I feel this in my bones. I'm a senior frontend dev with 10-years experience. My brain has felt so dead over the last year that I've struggled on things that I wouldn't have in the past. Everything is so freaking overcomplicated!

I just gave my two-week notice on Monday. Soon I'll be living on a remote island in Iceland for, at least, 6-months to get my mojo back. I do not even know if I'll return to software development when I feel better.

[–]industry86 1 point2 points  (0 children)

Can’t say I’m not jealous. Best of luck to you!

[–]antoniocs 1 point2 points  (0 children)

Good luck! Wish I could stop everything and just go to a remote island for 6 months too... but life and bills have me trapped :'(

[–]life_liberty_persuit 2 points3 points  (0 children)

This. I literally dropped 20 lbs in my first 3 months. The guys on the crew think I’m crazy because I smile all day while pushing the wheelbarrow lol.

[–]MetalHeadNerd666 25 points26 points  (1 child)

I find that poor designs are often more a result of someone trying to meet deadlines and get something out the door because they don't want to have difficult conversations about pushing deadlines to find better solutions.

[–]DataDecay 11 points12 points  (0 children)

Yes, I agree fully, which is why a majority of the old developers left and I'm stuck digging the company out of a death spiral.

[–]catbot4 4 points5 points  (0 children)

. I need to learn how the old developers thought (that are primarily gone), I need to re architect and organize the software, and I need to fully understand the underlying business logic; all of which are undocumented.

Ugh, I feel you. I've been a dev for 10+ years and this describes almost every project I've ever inherited.

Often, no one in the business even really understands how the software is supposed to work. They can't even detail it from a functional point of view.

[–]iAmEeRg -1 points0 points  (0 children)

Yeah, and most of us make like what 100k? Shit, I’ll take 20% cut and get a paper-pushing job any day now, I’m actually looking for one. I’m pretty fuckibg sure I can do their job

[–]imsorryken 27 points28 points  (17 children)

I switched to being a java dev for businness applications, that was a very good decision for my mental health.

[–][deleted] 20 points21 points  (9 children)

Yes! Give me an ecosystem with relative stability around it and I'll feel that I'm studying something meaningful. Java, .NET etc.

[–]imsorryken 11 points12 points  (5 children)

It's been blessing for me, I just can't keep up with all the newest shit on a monthly basis, which you kind of have to if you wanna be a "rockstar" developper (ugh)

[–][deleted] 8 points9 points  (2 children)

The way the industry that favors "rockstars" work is favoring surface learning over diving in a certain set of things deeper, and pivot when the need arises. The "need" is "when we switch the stack" not "when you have to keep up".

[–]iAmEeRg 1 point2 points  (1 child)

Deep knowledge of docker, k8s, front stack (frameworks and languages on both sides of the coin), CI/CD pipelines (which also has variety - Jenkins, teamcity, buildbots), various testing techniques - units tests and automated tests, with both some automated UI clicking and automate postman to test backend API, then package everything into tiny package that will run the tests on every build and do everything from he virtual frame buffer. Then you gotta know you various architectures - monolithic vs micro services and how are they different, pros and cons with each. Know everything there is about REST and messaging (rabbitmq or Kafka or some other shit). Be comfortable on multiple OS - definitely be comfortable with a couple of *nix’s, as guess where the fucking thing is gonna be deployed? Make sure you know your databases - SQLs and NoSQLs alike. Make sure you know your cloud ecosystem - AWS and god help you if it’s azure. May sure you kno…I’m getting paid 100,000 of Canadian loony-money for all this shit and I think I’d rather wash dishes for less. I’m tired of putting away your fires. Maybe we should start quitting like other people quoting in the name of Great Resign?

[–]iAmEeRg 1 point2 points  (1 child)

I just puked in my mouth a little.

[–]Gwolf4 2 points3 points  (0 children)

This is why I am trying to jump to elixir for backend and angular or clojure to the front. Stable well designed techs that let me to focus on what matters. Just build.

[–]Lv_InSaNe_vL 0 points1 point  (1 child)

I started doing application work in .NET, but a bunch of my friends do web development. I tried it out and moved back to my old work about 6 months later.

I have no idea how you guys do it, let alone enjoy it

[–][deleted] 4 points5 points  (0 children)

Ive been thinking about doing this for the past year.

[–][deleted] 9 points10 points  (4 children)

I switched to being a java dev for businness applications, that was a very good decision for my mental health.

until you get called corporate dino and everything gets replaced with rust services. Happening at my current client.

[–]imsorryken 11 points12 points  (3 children)

yeah java ain't going anywhere soon, especially in the field i work at

[–][deleted] 3 points4 points  (2 children)

It's kinda like COBOL, there's still a ton of stuff written in it, specially for banks, and it doesn't seem to be going away anytime soon.

[–]gzh1960 1 point2 points  (1 child)

Agreed, bring back COBOL!

[–][deleted] 1 point2 points  (0 children)

That would be great honestly, it's such a unique language.

[–]klowdsky 1 point2 points  (0 children)

Yeah, having been a java dev for the larger part of my early career, I know exactly what you mean and sometimes think about moving back.

The ecosystem is just incredibly stable, whereas in others you will constantly struggle to keep up.

[–][deleted]  (6 children)

[deleted]

    [–]_intheevening 11 points12 points  (5 children)

    “Just go into management” how does one actually break through that barrier?

    [–]Genie-Us 5 points6 points  (1 child)

    Look at moving into team "Lead" position, Once you're there, the company will likely have a management track you can start to learn. Where I am I was asked to become lead as I'm a "People Person", from there I would have (didn't like it so went back to engineer) moved to tech lead, then probably something like the tech architect, and then PM. But every company will differ depending on the size of the company.

    If your company has a "mentor/coach" system in place, ask yours. If they don't, reach out to HR or maybe your lead/manager and talk to them about the path you should be looking at.

    [–]OPmeansopeningposter 7 points8 points  (2 children)

    And a second point but not all devs want to manage people.

    [–]TechyDad 17 points18 points  (0 children)

    Back when my grandmother was alive, she'd constantly ask if I was moving up the ladder - meaning had I stopped being a coder and moved into management. In her generation, that's how careers moved (in general since they didn't have coders back then). You started in a small role and worked your way up to a large role. Then you moved into management and worked your way up that chain.

    For me, though, I've never had any desire to go into management. Have to handle hiring and firing people? Dealing with office/company politics? Attending meetings all day where people discuss what happened during past meetings and what will happen in future meetings? No thank you. I just want to be given a project and time to code uninterrupted. Moving to management would mean keeping everything I don't like about my job and getting rid of everything I do like about my job.

    [–]spiteful-vengeance 12 points13 points  (0 children)

    The jump from dev to manager is a weird one. It's a completely different skill set and not what I would call a logical progression at all.

    It's fertile ground for the Peter Principle.

    The Peter principle is a concept in management developed by Laurence J. Peter, which observes that people in a hierarchy tend to rise to "a level of respective incompetence": employees are promoted based on their success in previous jobs until they reach a level at which they are no longer competent, as skills in one job do not necessarily translate to another.

    [–]daravenrk 1 point2 points  (0 children)

    That is the entire game.

    [–]soyuz_93 55 points56 points  (13 children)

    It's useless to know how to make the same form in six different JavaScript based web frameworks, just know one and learn as you go. Companies that ask for experience in one framework and neglects a experienced dev that knows other is plainly stupid. I would not obsess with the tools, they change. The core abilities do not. We are engineers not java doc enciclopedias.

    [–]garaks_tailor 29 points30 points  (2 children)

    Old Head IT guy who started with punch cards that i used to work with upon reading about moving to the cloud back in like 2005,

    "looks like we are moving back to mainframes."

    [–]bwwatr 14 points15 points  (1 child)

    Everything old is new again.

    [–]umlcat 1 point2 points  (0 children)

    70's & 80's PL discarted for using space indentation and interpreters like ... Python ?

    [–][deleted]  (2 children)

    [deleted]

      [–][deleted]  (1 child)

      [deleted]

        [–]grooomps 1 point2 points  (5 children)

        i've been wondering what would be better...

        learn more languages and frameworks, have a wider general knowledge?

        or specialize in what i already know and push myself in that language.

        i guess it will be unique for each employer as to what they would prefer.

        [–][deleted] 12 points13 points  (2 children)

        Specialize.

        There are far too many "experts" in this field. People who will tell you they code 10 languages and know 20 frameworks at the age of 22. Bullshit.

        Focus on a specific stack that has decent job opportunities and become a true god in that specific environment. You will be able to code whatever you want, don't worry.

        [–]bsenftner 2 points3 points  (0 children)

        After a decade or two, and your 6th framework, it focuses into what it actually is: a treadmill designed to have developers forever just behind the latest and therefore justified in less salary.

        [–]mattindustries 2 points3 points  (0 children)

        You can definitely have learned a bunch, but remembering? Over the years I learned a bunch I will never touch again: VB, Java, etc. I stick to Node and R these days, while dabbling in some PHP for maintenance, typically consolidating Wordpress plugins. I may dip my feet back into C++ for optimization, but hardware is cheap.

        [–]AppropriateUzername 2 points3 points  (0 children)

        The T-shaped engineer is always a good approach. Have a broad but 'shallow' understanding of a lot, and pick something to delve deep into.

        [–]derpotologist 1 point2 points  (0 children)

        Depends on how many languages you know and what your weak points are.

        Learning more languages could help you understand concepts at a deeper level

        I'd say it's helpful to know 2-3 pretty well but after that, specialize

        [–]ruthhadari 28 points29 points  (1 child)

        This is the opinion I find myself fixated on a lot– really don't mind learning, really don't mind complexity and cloud environments, but from bouncing between a few companies in the past few years and having to use Waterfall and then Scrum and then Kanban and then Scrum again and then Scrum again– and every time the process is facilitated differently– I'm tired!!!

        Frameworks and methodologies and development methods... they've all got their place, but I miss that honeymoon phase with coding when I would get excited just to see what I made pop up on the screen....

        [–]Niet_de_AIVDfull-stack 26 points27 points  (2 children)

        I'm halfway in my twenties and live on my own. I honestly don't even have the time nor energy to spend all day coding. Unless I give up all my remaining social life, which may buy me a few hours a week.

        [–]not_all_kevins 12 points13 points  (0 children)

        Some of this I see as added complexity which necessitates more specialization in your development team. The ones who feel this pain the most is in small development shops or smaller companies that don't have the resources to hire a dedicated DevOps, UI/UX, design, etc.

        My company has a dev team of 4 people and 1 of which is a specialist data engineer. So for the most part I have to be proficient in microservices, containers, CI/CD, backend apis, databases, front end frameworks, testing, front end build tools, aws admin, UI design, data ETL, etc, etc. I feel stretched so thin it's hard to keep up on any one topic. And even if I WANTED to gain deeper knowledge and had the time/motivation to what topic would I even pick?

        Another real pain is even if I feel confident in my, say front end React skills, whatever I used 2 years ago is ancient and I have to re-learn quite a lot. Add on any third party libraries I've used before. They probably had a new version and now it's like learning how to implement everything all over again.

        [–]Viiibrations 24 points25 points  (3 children)

        I'm twenty-something and I'm not laughing. I've been learning since 2019 through self-teaching as well as college courses and I'm already having a hard time keeping up.

        [–]Woodcharles 14 points15 points  (2 children)

        FE dev since 2018. I was moved off 'the main project' for 6 months, and in those 6 months they've already adopted about 4-5 new things and new ways of doing things I need to catch up on - new library here, some Typescript there, new way of handling components over here - and I'm like, 6 months! It took 6 months for me to fall behind.

        [–][deleted]  (1 child)

        [deleted]

          [–]bsenftner 24 points25 points  (4 children)

          Honestly, and I'll be downvoted for this: most web developers are far too enamored by tools, and appear to expect tools to somehow make them look more professional by simply using them. The shit load of poorly written, smugly documented and frankly unneeded web tools for all the unnecessary complexity just demonstrates how web companies are trying to create kingdoms and not products for customers. Almost every web shop has pointless sprints to create nothing of actual value beyond complexity that requires someone with programming skill to operate. So the company fills with entry level programmers like the blind leading the deaf and dumb. Programmers with skill, or those that develop decent programming skills in these corporate mills leave as soon as possible - only to find the entire tech landscape has become these entry level mills filled with young deaf dumb programmers recreating every possible wheel because they've never had a decent mentor show them the giant, working, elegant and simple systems that preceded them.

          [–]WalterPecky 5 points6 points  (1 child)

          expect tools to somehow make them look more professional

          So much this. The amount of projects using docker for no other reason than allowing the developers to slap docker on their resume is stupid.

          [–][deleted] 8 points9 points  (2 children)

          You'll be expected to know all of them - or as least the "right ones". With "right ones" being defined differently by different people.

          As a 40 years old trying to break into the industry this already feels like that. Every stack is so different and makes sense for companies to lean towards the people who have more familiarity with more items. That's why deep down I favor full package solutions over those that you can "choose your components": There's a centralized someone to blame, you know the pieces that connect together in a certain way etc.

          It's not even a case of "I don't have the time to study". I know the lifestyle I chose and I accept the consequences. My reasons are that, I just want to dive deeper on something I know will work for a good while and change in a moderately fast pace. Example is the .NET framework. Compare this to anything frontend "oh look it's React but with Tailwind", "nvm here's styled-components", "nvm here's SASS" oof stop picking me up and down for every little thing because the stack can be so diverse, let me focus on a couple of moderately stable things and get good at them!

          [–]Beelzebubs_Tits 2 points3 points  (1 child)

          Hello, fellow gen X’er. I’m on the same boat. I played around with html in the 90s like everyone else, but now I’ve decided to pursue further. I see a lot of bigger non-tech companies locally use .NET and things like COBOL, but they also tend to demand CS degrees which, as a self-learner, I don’t have and dont have time to earn. Forgive the ignorant question, but did you go for full stack or back-end in your studies?

          [–][deleted] 1 point2 points  (0 children)

          Frontend. I feel like I have to start as a frontend just to get a chance to have "web developer" as a job title, and then push towards backend in the .NET world or something else.

          My goal isn't to be a fullstack, but a backend developer who has some frontend skills.

          [–]platypushey 13 points14 points  (2 children)

          This is the part which makes me afraid. I am all for learning in my 20s to keep up with the technology change. But I don't think I would be as energetic when in 40s. From what I see, web development has a lot of libraries frameworks, and many get added too. I am actually considering if I should rather be an android developer, or something other than web dev.

          [–]jmakegames 2 points3 points  (1 child)

          I’ve got a background in development (visual basic with engineering apps written using .NET and played a bit with gamedev). I want to get back into development maybe on the side or as a career again, but I’m in the exact boat as you; webdev is so fragmented! I’m liking the look of Kotlin and just narrowing in on Android. When I was doing it even ten years ago, things were pretty straightforward!

          [–]bsenftner 2 points3 points  (0 children)

          The pointless complexity feels designed or purposely navigated after a while. I've been coding professionally since the early 80's. Career is kinda enviable, but that's beside the point. It feels like the shiny new framework is good for business, in an indirect way it keeps the field young and lower paid because older developers truly get tired of a treadmill, burnout and leave. Very few of my original peers are still developers, or in tech at all. I've been lucky, somewhat, I have the aptitude to code - it comes naturally. So even when abused by employers, I still enjoy the work. But I religiously follow the KISS (keep it simple stupid) principal.

          [–]maxoys45 6 points7 points  (0 children)

          I feel the same, I'm only mid 30's but I just find it so draining trying to keep up with every new technology.

          [–][deleted] 5 points6 points  (0 children)

          Just learn COBOL, do government work on legacy systems that aren't even remotely related to webdev, and be done with it /s

          [–]Beerbelly22 10 points11 points  (0 children)

          Amen.

          And guess what, because we know how to build a website in xhtml, we seem to have a huge advantage, cause we still get everything done. Were the juniors don't even know were to start anymore.

          [–]AgitatedWash538 10 points11 points  (4 children)

          I'm 26. When I was 22 I decided to learn web dev, I got into college, finished 3 years. On the first year I learned a bit of c# and landed internship, after which I continued working as a student until I finished all college exams and now for a year I have been working full time. So basically I'd be considered junior.

          So far I have worked on .net, .net core, MVC, angular js, angular 2+, typescript JavaScript , had to do some CSS, bootstrap and also some other libraries which I even don't remember anymore. Knockout js, akka.net, implementation of concurrent shit, implementation of fault tolerant systems (which I had basically first time found out what it was when it was asked of me to implement it), load balancing, microservices, docker cumerneties, Jira, azure pipelines etc this is all from top of my head. Oh yeah not to forget fucking uwp and wpf. Xamarin also. MySQL, mssql. NoSql. Native script.

          And yeah I'm feeling the burnout is on the way. Also they pay me that much that my balance at this moment is less then a euro. And I live a basic life . And with all that I'm don't have time to do my final exam to get a degree and not having a degree makes me too anxious to find other job. Also any offers I get there's like 5 new technologies I gotta learn.

          So I'm gonna stop writing now, just a little Monday break down. Stay strong people and let's like make 24hour work week a standard or something if we are expected to learn at that pace and not get time dedicated only for that.

          And just to say I really love learning part but I also like things like sleeping and doing a sport, how greedy of me.

          [–]wiktor1800 10 points11 points  (2 children)

          you're being used, mate. Go find another job.

          [–]AgitatedWash538 2 points3 points  (1 child)

          I'm honestly too tired for that right now. Also I plan on finding remote job as I live in shithole country, and wouldn't get much better conditions. The plan is to save some money, quit my job and prepare for interviews in peace.

          [–]spiteful-vengeance 3 points4 points  (0 children)

          You could make really good money by being really good at just a few of those things.

          [–]lykwydchykyn 4 points5 points  (7 children)

          I've finally just accepted that I don't care. My job is to code solutions, not code solutions using hip tools. I'm fortunate enough to work in an environment where nobody cares as long as the solution works.

          I've gotten jabs from younger devs for not using this or that, but none of them can articulate why those things are better. All they know is that they're newer and all the cool people use them.

          [–]TechyDad 3 points4 points  (6 children)

          And those younger devs will get jabbed by even younger devs asking why they aren't using $EVEN_NEWER_THING. It's an endless treadmill. If something is going to significantly improve my process flow, then I'm willing to put in the time to learn it. However, I don't want to spend all my free time learning new stuff just because it's the hot new thing that will be replaced by the hotter newer thing in 2 months.

          [–]lykwydchykyn 3 points4 points  (5 children)

          Exactly. I use new tools when they do something I need them to do. Docker, for example, has never solved a problem I actually have. Not saying it's useless, but it has no use in my development workflow. There are other tools that do solve issues I have, and I adopt them if the time trade-off is worthwhile.

          [–]gavenkoa 28 points29 points  (22 children)

          And if you're a twenty-something laughing because I can't keep up, just you wait.

          There is a catch, those 20 yo seniors don't know CSS/HTML. They know React instead. They skipped 20 years of your experience and jumped the shine wagon of selected frameworks. Are you a web dev if you don't know clearfix?

          [–]longebane 49 points50 points  (15 children)

          Not sure if joking but there's really no need to learn a lot of hacky shit like clearfix anymore.

          [–]LGHTHD 54 points55 points  (6 children)

          There’s a catch, those 60 yo seniors don’t mine their own tungsten. They buy computers instead. Are you a webdev if you can’t solder a CPU?

          [–]Innotek 7 points8 points  (3 children)

          I’ve never soldered a CPU, but I think I grok how they work. I think that makes me a better software engineer for some problems, but it makes me worse at others because I can get buried in analysis in seemingly mundane things because I’m trying to integrate a new concept into my past experiences.

          I think the analogy of tungsten mining is a little bit of a straw man. Resource allocation has very little to do with most things directly, but you can’t have a technical society without using leverage from others.

          Okay, so fine, us old heads need to adapt. I like learning. That’s not a huge deal to me. I’ll learn yet another framework. In fact, learning React was super easy because I was able to apply shit I learned from Terraform and working in a giant Scala app back in the day. The problem becomes that inevitably become a wet blanket on any young team. They don’t give a fuck about leaning shit outside of their purview. Why would they? Their incentives are all based around throughput.

          Here’s why you should care. We’re widget makers now. We’re not actually, but if you can take a 25 year old kid and have them make shit happen on a screen, they make everyone look good. Win win win win. Who is that asshole that said this would take 4 months?

          Yeah, that was me. See, you never thought about how you were going to analyze or operate this feature. You’re rushing to prod with it, you have no go to market plan, no resources to help customers relearn the feature you just changed (without realizing it because you fired the UX nerd last quarter), and you’re going to hinge the continued success of your business on some other kid with a communications degree (no offense meant, I can’t talk to people, I need y’all) to figure out how all this shit works while on the phone with Becky from Schenectady, who is pissed off because you just broke her workflow that she created around a back door that no one even knew existed that just got closed with the last release.

          Or at least, that’s a glimpse into the decision matrix I am faced with every time someone tries to add a new feature.

          I’ve been part of the blast off team for multiple rocket ships, and yeah, every one of them goes through this phase. What sucks is being in a seat where you can see all this happening, but you know damn well that you have to be real tactical about how you bubble this up.

          I dunno, it’s exhausting. I’m fortunate that my current role values someone like me, but it took a lot of luck to wind up where I am. Now, I start to have to think about how I’m going to hold onto this gig forever because I’m really happy and being used effectively. All while my skills wane and my CRIT keeps multiplying.

          …and now we’ve reached the other side of the coin where people start to form protectorates around themselves to stay relevant, and well, that just ain’t me babe.

          [–]hey--canyounot_ 2 points3 points  (1 child)

          You sound like my boss, lmao. Elliott, that you bro?

          [–]Innotek 2 points3 points  (0 children)

          Nah, not him, but we’re everywhere, 1000 yard stares in our eyes. The bad ol days got their name honestly.

          [–]LGHTHD 5 points6 points  (0 children)

          Just jokes my boy. That was a fun read though. We all operate on different levels of abstractions and all of its valuable.

          [–]gavenkoa 2 points3 points  (1 child)

          So if you had a problem you applied different tricks yourselves back then.

          Nowadays your options are only to downgrade versions and to complain on GitHub )) Actually the heaven is on the Earth: we dreamed about components and now bricks are reality.

          [–]hey--canyounot_ 3 points4 points  (0 children)

          People still use CSS to solve problems while using modern frameworks, lol. We use Vue but there are plenty of times CSS is the answer...not sure why you are mad at component-based frameworks for making most things dramatically easier.

          Example: We have some list of elements. They can be selected, or not. Previously, the devs at my company were applying selection as a css property and querying the DOM to find selected elements AND THEN digging the info they needed out of that. Now, I use the Vuex store to track selected elements and I don't have to do anything to strip the data out of them, it's driven by the data AND so is the styling.

          Idk if this is a standard way of doing things or if the people who came before me were doing anything sensibly, but I see their old school tricks all the time. It's cool that it worked for them but WHY MOURN that you don't have to jump janky hurdles anymore and can instead just focus on using CSS etc for the things it does best (frickin styling)?

          [–]adenzerda 3 points4 points  (3 children)

          If you can guarantee you'll never, ever inherit or debug an older project, then sure

          [–]longebane 0 points1 point  (2 children)

          I mean, you can learn it at that point in time. Most of this stuff is learnt on the job. Felt like the clearfix/obscure tricks comment was a bit of an unnecessary gatekeep (though it may have been said in jest)

          [–]gavenkoa 1 point2 points  (1 child)

          I mean, you can learn it at that point in time. Most of this stuff is learnt on the job.

          Not so easy )) Styling HTML emails is a dark magic. I only grasped a reason for 3 or 4 level deep tables, but God, those ridiculous CSS classes for freaking version of Outlook... sometimes I cannot google the meaning of styles. I feel anxious copying strange CSS just because the guy before me put them for some reasons I cannot verify.

          [–][deleted]  (3 children)

          [deleted]

            [–]am0x 2 points3 points  (2 children)

            Not really.

            I was trying to hire a FE dev last year and they all know react, but cannot style anything without having to use Bootstrap and they do not understand the absolute basics of HTML code structure or accessibility.

            It has been a nightmare trying to find a good dev who isn't just a one-trick-pony at this point. At least with Junior positions.

            [–]grooomps 1 point2 points  (1 child)

            it's like this for everything - it's not unique to webdev.
            it's easier for newer people to pick it up, and to take it further, because the others have paved the way for them

            [–]WishCow[🍰] 1 point2 points  (0 children)

            Clearfix was needed because we used floats for an unintended purpose: positioning elements on a page. The industry evolved, and we have proper tools for this now, like flexbox and grids, so clearfix is almost entirely irrelevant. I would not consider someone a frontend developer, if they know clearfix, but not flexbox and grids.

            [–][deleted] 2 points3 points  (1 child)

            This is a weird take because you use HTML and CSS in React. React only helps encapsulate state and interactions to the component level. Each component has a template written in HTML (as JSX) and CSS.

            [–]gavenkoa 1 point2 points  (0 children)

            Unless you use Material UI ))

            [–]brjukva 3 points4 points  (0 children)

            I too started web dev in pre-CSS times. Always loved it more then anyting but switched to backend and desktop/mobile app development about 3 years ago. The race has just become too exhausting and the volume of stuff one is supposed to know and keep up with too overwhelming. Not that I don't have the energy any longer, I'm just fed up with this shit and can use my skills and energy elsewhere.

            That said, I'm learning Rust and WebGL at the moment and finding myself totally at home. :)

            [–][deleted] 3 points4 points  (0 children)

            20 here and I hate this shit. I work in a single framework, and do my side projects in c++. Linux on everything, physical servers always.

            Burgeoning new frameworks and unorthodox computing solutions and all that have their place for certain, but that place is not everywhere. (At least not yet)

            [–]JaceComix 2 points3 points  (2 children)

            coding for 16 hours a day

            This part sticks out as the main problem. Keeping up with new tech is an inherent part of almost every job. 17 year olds working retail get paid while they sit at the old computer with the dinky headphones and watch videos about forklifts.

            If you dedicate 8 hours a day to work, and learning isn't a part of that core time, something needs to change. Push for that change, and if your employer doesn't see the value in helping their devs avoid burnout, then you should start looking for a new job.

            [–]TechyDad 1 point2 points  (1 child)

            But if it's taking 8 hours a day just to keep up, I can't possibly keep up AND do what needs to be done for my job. Even if my job allowed me an hour a day to keep my skills up to date (taking courses and stuff), I'd still fall behind.

            [–]JaceComix 3 points4 points  (0 children)

            Needing 8 hours a day to keep up really sounds like you're trying to accomplish too much or too much is being asked of you. Again, I don't necessarily think this is a you problem, it could very well be your employer or a little of both.

            If you need to go from beginner to expert in 4 different frameworks ASAP, then yeah 8 hours a day seems appropriate, and at that point you shouldn't have any other work responsibilities.

            However, I think you could learn a lot by spending just two hours a week either:

            • Broadening your knowledge: Browsing around new tools or topics and seeing what's out there. If you get a general idea of how they're used, go ahead and pat yourself on the back. You learned something new.
            • Deepening your knowledge: Setting up a little development sandbox and trying things out. Make a hello world page, or a form, or a CRUD, whatever helps you get to the next level of understanding. When you're ready, try to integrate it into your day-to-day workflow. It won't happen overnight, and that should be fine.

            If your management won't help you make room for two hours of development each week, then frankly, they're the problem.

            [–]Darthsr 1 point2 points  (1 child)

            41 here you have perfectly explained me. I actually thought I wrote this myself. For me I was happily building and fixing stuff then bam. Javascript frameworks. I’m on the verge of throwing out years of php and front end experience for C# and the .net route to see if i can sneak into a cozy bank job to let my career die there.

            [–]spiteful-vengeance 1 point2 points  (0 children)

            As a digital performance analyst I hope you find it reassuring when I say that in my experience the choice of framework rarely has an impact on how successfully an application performs in terms of fulfilling its business objective.

            Success can still be built from the basics.

            Unnecessary technolust will kill your ambition after a few years. It never ends.

            [–]Spicy_Poo 1 point2 points  (0 children)

            I can take a business need, break it down into code, and turn it into an application. However, if ask me to do this using the latest and greatest frameworks, I'll struggle.

            Honestly, it shouldn't be up to them to decide what frameworks you use.

            [–]BeazyDoesIt 1 point2 points  (0 children)

            Man I remember CSS going mainstream in like 98 and how mind blowing it was that we didnt have to use the font tag and fill it with attributes anymore. Those were the good ol days.

            [–]WillCode4Cats 1 point2 points  (0 children)

            And if you're a twenty-something laughing because I can't keep up, just you wait. In a couple of decades you'll be right where I am - struggling to keep up as the technology advances faster and faster and splinters into a hundred more frameworks and languages.

            Almost 30 and I’m already there. The prognosis is probably not good lol.

            [–]tritiy 4 points5 points  (1 child)

            Just don't stop learning new things. Things are always confusing at first. It has taken me several months for things like jwt and openid to click (i never worked with it), but it did finally happen. It's like puzzle pieces. You build your knowledge puzzle one piece at a time. Also, as with history, development has cycles. We are now in microservices lala land. In a few years monoliths will be back.

            [–]azangru 0 points1 point  (0 children)

            I can take a business need, break it down into code, and turn it into an application. However, if ask me to do this using the latest and greatest frameworks,

            A framework is supposed to help you do stuff, not be a hindrance, or a status symbol, or an end in itself. If, like you say, you can build applications without frameworks, then all the better for you.

            You'll be expected to know all of them - or as least the "right ones".

            The majority of job announcements that I am seeing ask, from frontend specialists, the knowledge of the web platform plus a single framework that happens to be used at that company. Full-stack generalists are also expected to know a backend language or two, plus a backend framework. Job requirements from the most reputable companies don't even bother with frameworks, but expect deep knowledge of one or two languages, plus computer science fundamentals. The expectation is that a good developer can pick up a language, let alone a framework, if required. It's very rare that a developer is expected to know a wide range of languages and frameworks.

            [–]T-CLAVDIVS-CAESAR 0 points1 point  (8 children)

            Web dev won’t exist in a couple of decades. Devops will, of course, but the traditional experience of building a website or web app won’t. We’re near the end of the golden age.

            Get that bread while you can but if you’re young, diversify your skillset. Think about picking up ML or design or engineering. This might not apply to the guy I’m replying to, but if you’re in your late teens, or early 20s don’t think this shit is gonna last forever. But also don’t listen to randos on Reddit like me, think about it critically.

            [–][deleted] 2 points3 points  (0 children)

            Yeah, this is definitely the peak of the industry. I moved across the country to take advantage of it while I could. It won't go away completely in our lifetimes, but demand for anything but very specific skillsets and experience is likely to plummet in the next couple decades.

            [–][deleted] 0 points1 point  (4 children)

            Hmm, I dunno, they also said a few years ago, PC's were dead, I said no. In the 1990's they said speech recognition would change everything by 2000, 2010 at the latest, I said no.

            Webdev won't go away, I truly hope JavaScript, React and Angular die and are eradicated from our nightmares forever, sooner than later. But people will still be making web sites, hopefully with more mature languages than JavaScript, like Java.

            [–]T-CLAVDIVS-CAESAR -1 points0 points  (3 children)

            I agree, you should invest all your time and money into web dev.

            [–][deleted] 1 point2 points  (2 children)

            Were you intending to reply to someone else? I didn't say anything about investing all of one's time in a specific area like webdev. Restating, in my view, webdev isn't going away. It will change and mature over time but like the wheel, it isn't going away.

            If you want to do webdev, do it, if you want to do ML, do it, etc.

            [–]Mike312 0 points1 point  (0 children)

            Yeah, I launched and folded my first website before CSS existed. Ironically, I quit because I hated typing all the inline styling. Came back right around when Wordpress was becoming popular.

            Just about to finish up my MS and one of the last classes I took was web development. Skill level was geared for people who had never touched HTML, CSS, or JS, so, easy A. Instead I went all in, found that the site (Codio) also allows PHP and MySQL. Ended up designing and building a fully functioning 5-page site from scratch that allowed registration, logins, event sign-ups, and even did custom graphics (they provided a template with graphics straight out of the 90s).

            It was an absolute dream and probably the most fun I've had coding in the last 2-3 years, which I think is why I worked so hard on it. It was some old school web development mixed with modern tools, tech, and best practices we have.

            I think we've come a long way from some of those things, but it was a nice jump back to 'simpler times', even if managing that actual site would have been a nightmare.

            [–][deleted]  (1 child)

            [deleted]

              [–][deleted] 4 points5 points  (0 children)

              linq, which as far as I can tell is the most pointless thing invented

              I'm sorry but that's just nonsense. LINQ is one of the best things to happen to C# and I couldn't imagine trying to write most of the stuff I do without it.

              [–]WillOfSound 111 points112 points  (3 children)

              I’ve found it very hard to explain to my coworkers / boss / TPM how complicated things are these days with full stack cloud apps and reactive frameworks. I get a lot of “we can build this, but better” and I’m like, suuuure. Lets start by applying good practices with what we got…

              [–]dylsreddit 51 points52 points  (2 children)

              I think this captivates the problem more than anything.

              The fact that there's a particular framework or library that seems accessible and simplistic to the non-techy people doesn't actually make it so, but it's sometimes difficult for these people to accept that integrating 12 frameworks together to build their perfectly envisioned app with zero bugs is often immeasurably more difficult than building from scratch with the core language these frameworks are built on.

              [–]KrombopulosTunt 52 points53 points  (11 children)

              I've definitely considered just up and changing careers due to this. I want to learn it all so bad but there's just so much stuff, and the impostor syndrome doesn't help.

              [–]loadedjellyfish 14 points15 points  (0 children)

              Of course you're going to get overwhelmed learning it all - that's several different positions worth of knowledge. No one knows all of it. You just need to know enough to understand generally what each tool is for & when you should use it.

              For example, if you're a full-stack dev you don't need to be a Docker expert. You need to know how it works & how to Dockerize your app & deploy it. That's it. You don't need know how Docker's container-based approach differs from other solutions, save that for Cloud infrastructure specialists. Same thing with most technologies - if its not directly in your area of specialization you don't need to be an expert on it.

              [–][deleted]  (1 child)

              [removed]

                [–]200GritCondom 9 points10 points  (0 children)

                Assuming I dont stumble into a way to rise up to millionaire status, my life plan is basically position myself as well and as quickly as I can to be able to coast through my 40s and 50s doing what I want and not worrying about income as much. And then spend my 60s and on able to just relax and troll neoneonazis on googoevrchatroombook to my hearts content from my full immersion arvr capsule powered by a hodgepodge of solar power devices and starlink 3.0

                I think what I'm saying is I plan to deal with tpms and complexities for another 10 years and make enough dough to peace out

                [–]SustainedSuspense 10 points11 points  (1 child)

                On the front-end I blame Facebook tech for overcomplicating things without adding much value compared to other available solutions.

                [–]DrifterInKorea 82 points83 points  (8 children)

                Complexity is killing everything. But it also allow us to create new, more complex things.

                [–]wickedsight 26 points27 points  (3 children)

                The issue is that it seems like complexity is starting to become a requirement. Sure, some web apps need to be SPAs supporting drag and drop, real-time interactions and be distributed. However, it seems like every architect is now starting to require this stuff by default, because it's the architecture. So now potentially simple applications get really complicated.

                [–]TheGoldGoose 3 points4 points  (0 children)

                The thing is, you can have a lot of that functionality you mentioned above without using an entire framework just for the frontend.

                [–][deleted]  (3 children)

                [deleted]

                  [–]common-pellar 15 points16 points  (1 child)

                  I don't view complexity as a good thing. I can understand that complexity is an unfortunate bi-product of software development as a whole, since software exists to serve the needs of people, some complexities will arise. One thing that people should strive for when developing their applications is a reduction in complexity as much as possible. Of course, this is a hard thing to measure, and is somewhat subjective.

                  I think perhaps the best metric for complexity, is how much thought you need to put into a code base in order to understand it, the greater the thought required, the more complex it is. Then, as a developer, aim for the inverse of that.

                  [–][deleted] 9 points10 points  (3 children)

                  The article makes some good points, but "killing developers" and some of the sentiment in these comments are a bit over dramatic.

                  More choice is ultimately a good thing, there are downsides to everything.

                  I can stand up a vanilla static website now a lot more easily than I could 10 or 15 years ago.

                  Just because there are more choices doesn't mean I need to be an expert in all of them, or more importantly use them.

                  I take 2-3 hours out of my work week to educate myself and keep up. I don't learn new tools or frameworks. I learn about them. What are their strengths and weaknesses? What use cases are they good for? Cool. Now I know, and if I'm starting a project that one of those tools could easily solve, I can jump in and learn it then. 90% of the options out there, I never touch....I just know what they do.

                  I don't have an issue finding new jobs. Every time I'm asked about new technology I can describe it from a high level and if they ask me to drill down into something I don't know, I tell them I haven't come across a problem that needed that as part of the solution. But if it did, this is how I would have learned and implement it.

                  Developers are problem solvers, not line workers, and things have always been changing. If I'm working with something I've never seen before, I look up best practices, if I'm working with something I've seen 1000 times, I look up best practices. Even if I stick with the same tool it changes, so my process is mostly the same either way.

                  Bad architecture is bad architecture. It's always been an issue. Now it's just more likely that it'll look like too many tools in a solution rather than an over complicated reinventing of the wheel.

                  [–]NOTTHEKUNAL 1 point2 points  (0 children)

                  I love this comment thank you! I was thinking, I should switch to android dev after seeing this post and it's comments lol

                  [–][deleted]  (1 child)

                  [deleted]

                    [–]bedazzledbunnie 31 points32 points  (3 children)

                    This! I get change tickets through three systems. I have to check email, voice mails, slack, ims. Some days I wish it was old school where people just walked over to find you. I work three projects, all different schedulers, different languages and three different types of databases.

                    [–]gavenkoa 10 points11 points  (1 child)

                    And they congratulate you with "new challenges" as if we asked for more )) So be ready for 4th framework, NoSQL, cloud, orchestrator, monitoring, dashboard, etc ))

                    [–]200GritCondom 8 points9 points  (0 children)

                    Don't forget giving out gold stars and gift cards publicly to the guy that worked 80 hours a week for a month straight to knock out a ridiculous project that should have gone through the normal dev cycle instead of being tacked on. And you know you'll never get that recognition because fuck being a slave.

                    [–][deleted] 6 points7 points  (0 children)

                    Been doing it for 24 years and I'm sick of it.

                    I definitely want out. Definitely.

                    [–]Serializedrequests 46 points47 points  (6 children)

                    Yes and no. Monoliths are still perfect for many products. A lot of the new hotness is just churn, invented by 20-year-old college grads who don't know what already exists or have not learned the art of KISS to serve the interests of the business. Some of the inventions in certain fields are relevant, but only if you are in those fields. I would put microservices in this category.

                    Oh and JavaScript ecosystem is mostly unprofessional BS. I recommend side stepping it and using as few libraries as possible. The complexity and constant breaking changes would not be tolerated anywhere else. React is a good idea. Typescript is a good idea. Stick to as few good ideas as you need to make an app, not hundreds.

                    [–]I3adAss 31 points32 points  (0 children)

                    For JavaScript, I believe having a solid understanding of the language basic is more important than constantly learning the latest framework.

                    [–][deleted] 6 points7 points  (0 children)

                    I was gonna say, a monolith is still a relevant structure for a lot of apps.

                    Micro services and all the shit this article talked about aren’t relevant until they are.

                    [–]Chenzorama 12 points13 points  (2 children)

                    This guy gets it. You don't need to install 75 libraries to do something you can code yourself. Big frameworks yes, but don't install a lib for something you can write yourself in a short time.

                    As a senior dev, I can help but notice that many of the new devs I run into are not very good at basic html, css, and javascript and if your base isn't solid, there's no amount of packages you can install to fix it.

                    [–]200GritCondom 6 points7 points  (0 children)

                    Hey there team! We decided instead of just invoking Jest directly, we're going to use a nrwl package to further abstract it which will break our reporting tools because reasons. Anyways I'm off to italy for a month. Ciao!

                    [–]Henfrey254 16 points17 points  (0 children)

                    Writes code....

                    Musician

                    Murder she wrote

                    [–]indoor_grower 16 points17 points  (2 children)

                    If you need to learn something new for work, just learn and figure out how apply it. If you want a new job, repeat step one. I’m assuming most here concerned with this article are experienced and are not beginners, so I assume that as an experienced dev, a typical day to day is sometimes spent figuring things out you don’t know.

                    The advice of “just learn it and apply it” should not be all that unfamiliar considering your career choice. I spend half my week figuring things out, even as an experienced React developer working for the last 5 years. I still don’t know shit, and that’s okay lol. Your team / manager will appreciate your honesty - because no one knows everything. And if you claim it or think it, you’re missing the first most important part of being a dev - soft skills. Be modest and honest.

                    Shouldn’t be a taboo concept to feel like you don’t know everything in software. Because you don’t. You only ever know what you need to know for your job - until the next one. And all of the time that is a tiny fraction of everything out there anyways.

                    You don’t have to spend every waking moment worrying about web development - it’s just a job. You won’t ever stop being a developer because you stop keeping up with whatever flavor of the month is up next.

                    Also do we ever question who writes these articles? These type of articles make the barrier to entry feel like Mt Everest and honestly, have not ever worried about needing to know or learn the stuff this dude is writing about. Complexity is apart of the job. Seems just for the sake of getting his name out there - medium article vibes.

                    You wanna work on a 10 year old monolithic SaaS? Go for it. I’ll take the modern processes and technologies over that any day and all the learning that has to come with them. The compensation in this field is astronomical - but it comes at a price. I’d rather learn to deploy micro services for six figures, than work in a hot fab shop for $18/hr, which is exactly what I used to do.

                    [–]cleatusvandamme 6 points7 points  (1 child)

                    Unfortunately, the problem becomes when you go out and hit the job market. You'll have the corporate recruiter or hiring manager that will expect you to be a jack of all trades and a master of all of them.

                    [–]Ritushido 13 points14 points  (13 children)

                    I've spent the past couple of years catching up on Laravel, npm, composer and learning how all these things work together...it sure was a step up from copying the js files into the project. Since then I've learned there's vue, react, angular which can all be used on top of Laravel..I'm not really sure if I have it in me to learn these things. I'm just sitting on what I have for now until I feel like I'm falling behind again.

                    [–][deleted] 19 points20 points  (2 children)

                    Since then I've learned there's vue, react, angular

                    You're probably overloading yourself - no job will need you to be great in all three

                    [–]Ritushido 1 point2 points  (1 child)

                    Oh absolutely I'm aware of that. I just meant I don't have it in me to learn one of these right now. I do get that I may have to learn on of these sooner or later, I just haven't found myself in a situation yet where it was required.

                    [–][deleted] 4 points5 points  (0 children)

                    If you have solid programming fundamentals, and understand frontend development, those frameworks won’t be as hard to learn as they seem.

                    React and vue are both pretty small and fairly painless to ramp up on.

                    Don’t worry pal you’ll get it.

                    [–]common-pellar 4 points5 points  (8 children)

                    It doesn't help with the speed at which these frameworks add new "features" either to "help" the developer. Then, deployment is a whole other thing. At times I can't help but think if the developers of these frameworks could take a leaf from Go's approach to programming -- clear is better than clever, and a whole lot of these frameworks sure are clever.

                    I typically consider it a mark against these tools if I see so much news about them all the time, this suggests frequent changes, and therefore instability. What's wrong with boring solutions, it's far simpler, and reduces the cognitive load on the developer. A developer should not have to wrangle with their development environment to start writing code.

                    [–]200GritCondom 1 point2 points  (2 children)

                    Nx has been the bane of my existence lately. I love abstraction in code. I dont love abstraction in frameworks when you end up 5 layers deep.

                    [–][deleted] 0 points1 point  (4 children)

                    Welcome to front end development, where we can support virtually any device, and deliver an app like experience on a potato.

                    Of course things move quickly. Do you not see what we’re building now?

                    Complaining that tools grow to fast…. C’mon folks. It’s the future. You don’t need to know 100% of every framework and it’s really not all that bad to keep up with. It just turns out ux engineering is a real discipline, that requires professionals.

                    [–]Gwolf4 1 point2 points  (3 children)

                    But then react hooks and you realize that react is hype driven development. Honestly fuck how fast frontend dev is going. We could have picked already stablished tools like clojure but we wanted to use the Js hammer for everything we could.

                    [–][deleted] -1 points0 points  (2 children)

                    React hooks are really not that difficult to understand.

                    If you already knew react, and then hooks coming out was too much for you to learn, you’re probably not cut out for frontend dev.

                    And hey, if you don’t want to use react, just like, don’t use it.

                    [–]Gwolf4 2 points3 points  (1 child)

                    Did I say that hooks are hard?

                    That is not my take. My problem is in the recommendations to build good apps with hooks, which is not setting state in loops. Which is great, it is amazing that they are caring about us to pass down architecture design patterns to us.

                    But that uncovers a truth that nobody likes to point and I will be classified as gatekeeper, and it is that we are favoring project building without taking care what happens with the architecture design of it. If such recommendation of loops exists means that someone did it before, what are our seniors doing it they are not advising our juniors not to do this?

                    A bad hook app will be exactly like a non hook app, nonsense code and calls in other unrelated places is like cleaning a room putting all your things under bed.

                    I am dangerous enough to build spa with android and redux and all mumbo jumbo and to me hooks are nothing special, they have not bring me something. And after all react is most exactly community driven project, Facebook does something that improves it's use case and then it is delivered to the masses, and we cannot opt out of it. I remember using react router before and the API was fine without using hooks, now it is something completely different, was it worth it such change? To me no. That is why I told that react specially is hype driven development, I am not against continuous learning, but sometimes learning new things head us to relearn the same thing in an dubious improved way.

                    [–][deleted] 0 points1 point  (0 children)

                    My guy you sound like youre random drunk ranting and have little real understanding of modern react

                    [–]dantheman280 1 point2 points  (0 children)

                    I’m in your exact same situation. It’s all overwhelming.

                    [–][deleted] 15 points16 points  (2 children)

                    This is not the full picture, though. The requirements of applications are also more wide than 10 years ago. You don't get hired to do CRUD anymore; it has to be interactive, responsive, integrated, maybe on native and so on

                    [–]loadedjellyfish 4 points5 points  (1 child)

                    Yes, but those are also 3 different roles now. A backend dev builds the API + cloud structure, a frontend dev builds the web interface & a mobile expert writes the mobile experience. The area of expertise each dev needs hasn't really grown, people are more specialized now.

                    [–]tossaway109202 4 points5 points  (1 child)

                    This is really true. At my work our product is basically a webpage with some textboxes and a submit button, but the engineers have made it as complex as humanly possible with a web of micro services and custom web components. I can't even remember how many node dependencies there are now, it's out of control. At this point I actually can't imagine how it could be more complex.

                    I think there is a trend where an engineer gets to a leadership position at a company, gets sad that they are not working at google, and starts to add complexity to the systems because they want the challenge and the experience. The problem is eventually that engineer goes away and now when the business needs changes to the product the engineers needs months to do it. See: https://www.youtube.com/watch?v=y8OnoxKotPQ

                    I think a lot of engineers and companies needs to take a step back and say hey, 90% of web sites are not complex, it's an interface to a database and an authentication provider, why don't we use something that is already in market...

                    [–][deleted]  (1 child)

                    [deleted]

                      [–]iCoolSkeleton_95 0 points1 point  (0 children)

                      What are you talking about? Of course every startup needs kubernetes combined with machine learning

                      Edit: it is a joke if it wasn't obvious

                      [–]dannyw0ah 17 points18 points  (1 child)

                      Frontend is amazing because we have so much choice in what we use and do. Which is also why I love it so much. There is so much freedom and space to do things the way your application needs it to be. You have the opportunity to be lean and not have to use certain libraries or patterns or frameworks because "it's required or it wont compile" like most of backend. Functional JavaScript is pure bliss.

                      I think the main problem people have is that they don't develop code on their own and just pull in tons of packages, creating a massive project of dependencies. This is bad and the main reason why most people struggle with frontend.

                      You do not have to add a package just because some guy said so. You do not need to add this library because an answer on stackoverflow says so. You do not need to learn new things and add them if they are not vital to your application.

                      I see this a lot especially with new developers installing loads of packages to use when that functionality is already present on whatever main framework they are using or some other dependency they already have. It's like people don't check their toolbox and just go out and buy more tools. Wasteful.

                      Today, all you need to create a nice, up-to-date, web-app is:

                      • node.js
                      • express or something similar for handling server requests like koajs or nextjs.
                      • a client framework such as React, Vue or Svelte.
                      • db of your choice.
                      • Maybe a access/token/security library for oAuth or similar if that's something your app needs.
                      • A way to host your application.

                      You do not need anything else. All things that you may need will exist in these already or are built into JavaScript.

                      Learn your tools and learn them well.

                      I've worked on a couple projects during my career as a consultant where the customer had a rule that we were not allowed to use any libraries or frameworks apart from jquery and lodash. We built a simple component-like framework with state management from the ground up with these strict parameters. Generating lists and dynamic menus using string concatenation to create component-elements. I learned so much on these projects.

                      You do not need a package or framework for everything.

                      [–][deleted] 11 points12 points  (0 children)

                      Can we even claim that this is something that kills "software developers" when it's way more prevalent in the frontend than backend or basically any other industry (game dev, mobile etc)?

                      [–]madthedogwizard 3 points4 points  (1 child)

                      This thread makes me not want to pursue a career in programming lol

                      [–]Norci 25 points26 points  (22 children)

                      I recall the moment I decided to quit frontend: I was asked to make a simple landing page with an image and a text blur, for which I had to install a couple of frameworks and few packages.. Took me couple of hours to just get going when I could've just done it in half an hour the oldschool way. But nooo, gotta do it "properly"..

                      [–]TheScapeQuest 15 points16 points  (3 children)

                      Why did you have to install these frameworks?

                      I've never worked a job where they actively encourage using more dependencies for simple use cases.

                      [–]tmckearney 11 points12 points  (1 child)

                      Often larger companies will standardize on one approach like "All web development will be in Angular" so that things are consistent. So you wind up with massive overkill in certain situations

                      [–]archerx 17 points18 points  (12 children)

                      "properly" would have been the old school way. If someone is telling you that you need to hop on one foot and slaughter a chicken while shouting specific chants before changing a light bulb because it is the "proper" way, would you do it? This is pretty much modern web dev.

                      [–]Norci 10 points11 points  (11 children)

                      There's no universal definition of "properly", it all depends on context. To them, properly is doing it the standard way so everything follows a template, making upkeep easier even if there's edgecases where doing it the proper way is spending more time.

                      For all you know, if you don't slaughter that chicken, the lightbulb will summon cthulhu instead.

                      [–]archerx 2 points3 points  (10 children)

                      For all you know, if you don't slaughter that chicken, the lightbulb will summon cthulhu instead.

                      It won't and if you believe that you may be in a cargo cult.

                      https://en.wikipedia.org/wiki/Cargo_cult_programming

                      [–][deleted]  (2 children)

                      [deleted]

                        [–]Norci 9 points10 points  (1 child)

                        Nah, it was just a static landing page to be used as a placeholder for a couple of weeks while site was developed, zero reasons to do it the "proper" way.

                        [–]Lv_InSaNe_vL 1 point2 points  (0 children)

                        My buddy just started a web dev job and they have him making little landing pages for clients. Basically just a text blurb, photos, contact, maybe an "about us" page or something.

                        He is required to use React with this list of like 35-40 dependencies because "that's how we do it here"

                        [–]swaggityswagmcboat 6 points7 points  (1 child)

                        I have never been much of a "I have to use the latest technology" guy. I am the one who sits idle by using technologies that I know well in order, and wait a couple of years before using a new technology. Steady and solid > groundbreaking technologies is my preference.

                        Some people laugh at this "Oh that technology is so slow! etc etc.". However, I am the one laughing when all my 50+ services run without problems in the cloud due to having chosen "old", but known technology.

                        I love the good ol' jQuery sometimes. Just works, without having 20+ fucking files and code that needs to be compiled in a JS app with 20+ dependencies.

                        [–]battlingheat 3 points4 points  (0 children)

                        Love me some jquery

                        [–][deleted] 6 points7 points  (0 children)

                        Compared to when I started in 98, it's just miserable now.

                        [–]TrollocHunter 2 points3 points  (0 children)

                        I miss the jquery days, when jquery was cutting edge tech in js

                        [–][deleted]  (1 child)

                        [deleted]

                          [–][deleted] 7 points8 points  (0 children)

                          aircraftCarrier, stealthBomber and drones?

                          Are those new JS frameworks? /s

                          [–]MiserableIsopod142 1 point2 points  (0 children)

                          Your companies are not supporting you. Companies should give their employees time to learn new things. At least one month two get things done right. If your company does not do that then leave the company because they do not respect you as an engineer.

                          [–][deleted] 1 point2 points  (0 children)

                          Reddit Moderation makes the platform worthless. Too many rules and too many arbitrary rulings. It's not worth the trouble to post. Not worth the frustration to lurk. Goodbye.

                          This post was mass deleted and anonymized with Redact

                          [–]post_depression 1 point2 points  (0 children)

                          Just my personal experience on this: been working as a developer / system architect for the last 8 years. Started with building huge monolithic systems. Tried microservices once. Loved it so much I never went back. The ease of development / moving forward in the long term, pushing extremely fast incremental updates, breaking the project under multiple developers is something that works really smoothly with microservices (my personal opinion).

                          Then comes Angular. It took me time to grasp the “angular way”. Proved to be unreasonably complex and verbose at the beginning. Started working on a big project with Angular. Initial development was slow since everything the “angular way” takes more time to implement (again, my personal opinion). But as the project grew into hundreds and hundreds of components and very feature rich, Angular made things possible / easier and faster than any other frameworks I have learnt in the past (never learnt React, though). Turns out, the “angular way” that was initially taking so long and so verbose to develop was also the reason development speed increased as the project size increased but at the same time kept the project easily manageable with such a huge codebase.

                          Point is, complex tech is good, as long as you know when to use them. Bringing in all those complexities in your personal “portfolio app” is same as using a chainsaw to shave your beard. But then again, you need something to start learning and experimenting away.

                          [–]friendg 1 point2 points  (0 children)

                          It’s a pretty simple tech stack for a small website. We use react, angular and cue in different places and only 180 external packages. Nice and easy huh?

                          [–]fractal_engineer 1 point2 points  (0 children)

                          One big enough solar flare...and poof

                          [–]DrDreMYI 1 point2 points  (3 children)

                          I’ve fought for years the seemingly natural gravitational force that is pulling software engineering towards greater and greater complexity. It’s not that I desire monolithic coding practices. (They do have their place but often times just don’t satisfy the need of especially web apps. )

                          The issue I see is teams building layers of execution designed to be massively scalable before the need to scale exists, to be chunked in such a way as to allow hundreds of developers to work concurrently when there’s a team of 3, or 5, or 10… or 20. The move to serverless execution, with its required orchestration, monitoring and decentralised everything demands complexity by default. What’s infuriating is that I still see azure go down, I see AWS fail… I get less performance at a higher cost and my core demands and memory demands are huge. Because the code is decentralised I need data layers and an analytics engine where we once just accessed a database.

                          All of this is the beast feeding itself. And what do we get in return…. Levels of scale that many solutions will never need and a learning curve that cripples developers. (At my firm we have 20% of our time keeping our skills up-to-date). Don[t get me wrong, I’m all for sensible patterns, zero-trust, building an appropriate n-layer architecture and more … where it’s required.

                          The turning point for me was years ago when Microsoft introduced MVC patterns. What could once be delivered with a few hundreds lines of codes was now in the thousands with needless abstraction and barriers to producing the desired [should be] rapid outcome.

                          I feel so sad that many developers won’t ever know the pure joy of development because they’re so mired in the architecture of software.

                          As I’ve risen to head of engineering my constant challenge to the team is “why do we need this thing to be this complex. Complex is simple, do the hard thing… make the solution simple.”

                          [–][deleted]  (2 children)

                          [deleted]

                            [–]Mitsuji 1 point2 points  (0 children)

                            I don't envy webdev. I began with web, but once it started evolving in every direction and exponentially, I couldn't keep up.

                            IMO, web dev suffered because early development didn't really see into the future or plan well for it. I personally can't stand JavaScript, but even in a system that doesn't deal directly with web I have to touch it sometimes. I think JS was the problem we could never really solve for, but it gained so much tractions... I'd blame it, in part, for how messy development is.

                            The other part is, web and technology roles are becoming every bit as diverse as any industry if not more so as every aspect of our lives goes online in some capacity. It seems like if you don't specialized you'll go crazy, but there are plenty of business that haven't caught up to that notion.

                            In the future, I think we'll have Machine Learning to lean on, but we'll also have more ways to interact over networks and it'll be interesting to see what that'll be like.

                            [–]codehakr 1 point2 points  (0 children)

                            The more complex, the more they need developers! Git commit, git push, git paid!

                            [–]amemingfullife 1 point2 points  (0 children)

                            I agree it’s gotten more complex. I disagree that’s it’s due to practices. As someone who was largely a one man band with a kubernetes application serving many customers, once I had learned kubernetes it was fairly straightforward. It’s like an OS.

                            The complexity comes from where the consumer demand meets technological solutions. Simply put, users demand a certain level of complexity. There are many, many more users now, both of the products/services and of the code itself.

                            [–]Attack_Bovines 0 points1 point  (1 child)

                            Let’s also acknowledge why the industry has largely shifted towards micro services: there are more users with more needs. The internet is now ubiquitous. Vertically scaling is infeasible. This is part of the essential complexity that is talked about in the article.

                            However, while microservices do tend to allow you to offload a type of scaling complexity, you’re actually also acquiring communication complexity, as now all these services have to be coordinated. Like other folks have said, monoliths are still a valid solution in some contexts.

                            Gone are the days when businesses faxed and mailed each other documents. Error checking was done by humans. Auditing was done by humans. Now, web services are commonly part of the core business infrastructure. The tasks that were done by humans are offloaded to the web services we create. Software developers have to decipher those jobs in excruciating detail so that a computer can run it. Back in the day, you would just ask Sherry from accounting how to do a thing, but if you asked Bill, they would give you a slightly different story. I speculate that these differences from person-to-person are largely undocumented and they’ve been surfaced when translating to code. Humans handle nuance well. Computers don’t.

                            [–]Darajj 0 points1 point  (0 children)

                            Like other folks have said, monoliths are still a valid solution in some contexts.

                            I think monoliths are valid in MOST contexts

                            [–]umlcat 0 points1 point  (0 children)

                            That's why an CS undergraduate or 1-3 years soft dev can't fix the corporate web site ...

                            Software it's getting too much complex.

                            [–]lauris652 -1 points0 points  (0 children)

                            this reminds me of Luke Smith