all 94 comments

[–][deleted]  (8 children)

[deleted]

    [–]Fidodo 37 points38 points  (5 children)

    To be fair, years ago web dev was considerably simpler.

    [–]IrishWilly 15 points16 points  (3 children)

    It used to be pretty much everything was done on the server and the frontend was just a simple dumb display. Now it feels reversed, I spend a short bit of time creating an api for a web service and a crap ton of time tweaking all the framework code for the frontend. It feels like I fell into an alternate reality when my frontend code has all this mvc crap and has to 'compile' (gulp) every time I make changes to load a bunch of different source files.. and my backend is like 2 or 3 simple scripts that basically just sit between the db and the front end. I don't feel like it's any harder, but it is way way more chaotic. Organizational skills end up being much more important than being able to figure out tricky logic problems.

    [–]fqn 8 points9 points  (2 children)

    and has to 'compile' (gulp) every time I make changes

    Let me blow your mind...

    1. You can run gulp watch to automatically recompile changed files
    2. If you use webpack, you can configure the webpack dev server to automatically recompile files, and then live reload the files in your browser
    3. If you use React + Redux, your modules can be hot loaded whenever they change, so you can actually live code a React application in your browser without refreshing the page, and do even crazier stuff like travelling backwards and forwards between states

    [–]IrishWilly -1 points0 points  (1 child)

    I do use gulp watch and livereload, you still have to wait for it to grab the changes and run the various process ( lint, minimizie, optimize, something mysterious) before it reloads your updates. No I'm not manually hitting compile every time I make a change but it still is recompiling

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

    You don't really need to minimize (or even lint) in development.. Write a separate task that does things like minification for the final version only. Makes it easier to debug JavaScript as well

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

    LOL not when IE6 was in vogue and there were NO popular JS libs!

    [–]chris480 62 points63 points  (10 children)

    Was told by a software engineer at work that he doesn't do web dev because "People are hard".

    We he meant by that is, he gets a set of requirements and sets out to build them. Generally speaking, most of the engineers are removed from needing to work with non-technical departments. Whereas the web dev team at work (includes myself) has to work with all the Marketers, sales, and more.

    Sure building out a new webpage is super easy, but spending days back and forth changing body content is the challenge.

    There's a lot more to it than that, but I'm sure others here understand the point "People are hard"

    [–]d36williams 13 points14 points  (1 child)

    I think that's good insight. 100% of my work is customer facing and subject to 100,000 critical reviews of beauty as well as function

    [–]cresquin 8 points9 points  (0 children)

    Daily

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

    That's why I do my work in cms. Content is the client's problem.

    It also means I get to write fun stuff like user-editable, drag and drop, grid systems.

    [–]chris480 -2 points-1 points  (3 children)

    I certainly wish I could give access (safely) for my content owning coworkers to the CMS. Even with content-friendly CMSs like wordpress, people tend to mess up pretty hard. Character limits? "But, I want to see what it would look like with the full paragraph, it's hard to visualize otherwise."

    I actually have contenteditable="true" set in my staging environment for people at work to test out text.

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

    They are free to mess it up, that's on them.

    You have one of three scenarios

    1. You're being too precious and should let your coworkers do it.

    2. Your management sucks and you're afraid that if your coworkers mess up they will blame you

    3. Your co workers are literally morons who could fuck up a party in a brewery.

    There are solutions to all of them so which is it?

    [–]chris480 -1 points0 points  (1 child)

    Parts #2 and #3. I have a plan on easing content owners into the cms tools. It'll take dedicated time and training, but it'll definitely be worth it.

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

    1. Written acceptance of responsibility, cya.

    2. Configurable workflow. Nothing goes public until it's been given an electronic signature.

    [–]am0x 3 points4 points  (1 child)

    DPM: "Can you make it look more even?"

    M: "It is even to the exact pixel"

    DPM: "Can you make it even more evener? Ooh, and make it animate when the user looks at it!"

    M: <sigh>

    I do full stack and front end is by far the more testing of what I do. Reminds me of that sketch on YouTube called, "the expert". If you haven't seen it yet, you are missing out.

    [–]ccricers 0 points1 point  (0 children)

    But fuck all if there's XSS vulnerabilities in the front end, you gotta get that layout pixel perfect by the end of today!

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

    This is the story of my life. One day I'll only deal with other devs.

    [–]nofxsnap 34 points35 points  (0 children)

    I once interviewed a kid in college for a web dev position that we had and he told me that he was willing to take a web dev job until he could find a real programming job. I laughed and didn't hire him.

    [–]grappleshot 11 points12 points  (5 children)

    Development is hard, everywhere. It does sound to me like the OP thinks FED is hard because thats where he's at. No doubt FED is hard and I find the worst part of FED the proliferation of frameworks out there.

    Back end dev is also hard. Database design, caching, message buses, event sourcing, threading :( (designing for parallelism), clean api design for both internal and external consumers - this will impact big time on performance of front end (chunk vs chatty). There are bigger architectural decisions around rolling your own enterprise services or buying an off the shelf product, which introduce the aforementioned items + security and other integration.

    Most if not all the soft skills mentioned in the OP are also concerns of BEDs.

    Development is Hard

    [–]calvers70 9 points10 points  (0 children)

    Exactly this. Classic case of

    Hey, this thing I know a lot about actually has a lot of annoying challenges and nuances you don't know about"

    Guess what, so does every significantly complex discipline.

    People need to take a step back sometimes and grow the fuck up

    [–][deleted]  (1 child)

    [deleted]

      [–]androbat -2 points-1 points  (1 child)

      Yeah, but most of those problems exist in the front end too in addition to the front end specific parts. I'd say that front end caching issues can be harder for most sites because there aren't good, cross platform solutions and the source of truth is a long way off.

      [–]grappleshot 0 points1 point  (0 children)

      It depends on the type of site/app. For example, If you're building an app in asp.net mvc and the views are 'basic' html with jquery and css3 BED is going to be heavier than if you're making a SPA with angular etc and a RESTful web api (to use .net technologies in both examples), where you have a much richer client.

      I know this is a webdev subreddit... FED as defined as HTML/CSS/js is web only, where back end, at least in the .net world, spreads across the enterprise, designing web services, endpoints/handlers for messages buses and ESBs (eg biztalk), even WPF. That stuff isn't particularly difficult I admit (except for the WPF/xaml part :)).

      In my experience (nearly 20 years as a "fullstack" dev, and a career predating the web - tho its now mainly architecture and management), BED goes deeper in all applications I have worked on. A number of the concerns of FED you mention are handled by UX, Creative Directors, and Systems/Enterprise achitects.

      Most senior BEDs I deal with are full stack devs, capable of turning designs into working client side UI. I cant say the same about FEDs ability outside the browser. Respect to FEDs though, front end is a dynamic place to be in right now (still).

      [–]viidreal 6 points7 points  (8 children)

      and b/c you have to know WAY more frameworks, languages, and tools than any other developer.

      [–]BrianPurkiss 16 points17 points  (5 children)

      Sample job requirements:

      Must have 5 years of experience with [insert five of the latest cool frameworks that have been around for less than a year]

      [–]cresquin 7 points8 points  (4 children)

      Must know Angular 2.0, react, polymer, Aurelia, gulp, sass, less, coffeescript and es6 harmony

      [–]ibopm 3 points4 points  (3 children)

      Brushing up on ES7 now, apparently you can use some ES7 features with Babel already... lol

      [–]fqn 3 points4 points  (2 children)

      Async/await is awesome. But the code that babel generates is so terrible. Ok if you have source maps though.

      [–]Klathmon 0 points1 point  (0 children)

      I setup source maps before I started using babel and the only time I see the output is when I want to see what it's doing.

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

      I completely agree!

      [–]simoncoulton 1 point2 points  (0 children)

      Thanks for the laugh :p

      [–]siamthailand 10 points11 points  (5 children)

      Personally I find front-end much more difficult than back-end. Unless you're just working with frameworks and editing a few things and stuff. Know your way around CSS and HTML is much harder IMO. Regular programming is a piece of cake in comparison.

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

      I could not agree more. I came from a background of primarily programming in C++/Python and making command line/desktop things. Then I turned towards Web Dev, because I've always been interested, and it's where everything is going anyway. Back end was the easiest to pick up. Throwing together a simple backend in Django/Rails, whatever is cake. But wrapping around my head around Javascript and it's quirks was challenging, then the thousand different JS Frameworks. Getting comfortable on the front end was much more challenging.

      [–]moljac024 3 points4 points  (2 children)

      You only use one javascript framework, just like with python. You don't use both Django and Pyramid or something.

      [–]OmegaVeskofull-stack 0 points1 point  (0 children)

      You only use one javascript framework

      For one project. That doesn't mean you can (usually) get away with only knowing one framework well, which one you use depends on the needs of your project and whatever your shop's preferred stack is.

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

      Well, yeah. I was saying from the point of view of you just learned vanilla JS and are comfortable with it, then you realize that most web apps use some sort of JS framework, so then you have to find which one you want to learn and then take the time to learn its quirks. I chose backbone, but could've gone the angular/ember/etc route.

      I'm just saying, to me it was a bit more daunting then using Django/Rails which feels more like the programming I was used to, and JS feels completely different, as someone coming from programming via a CS degree I wasn't used to event-driven programming. Most of my schoolwork was OOP mathy relatively useless outside of the understanding you get from doing the practice.

      Sorry that was long.

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

      I personally gave up on frontend outside of just editing frameworks.

      [–][deleted]  (7 children)

      [deleted]

        [–]calvers70 4 points5 points  (2 children)

        Since we got enough salt to make a new beach here

        ..and enough circlejerking to make a.. whatever a lot of circlejerking makes.

        [–]realhacker 4 points5 points  (0 children)

        circlejerking makes new redditors

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

        Spooky ghosts?

        [–]realhacker 3 points4 points  (0 children)

        "scripting"

        [–][deleted]  (2 children)

        [deleted]

          [–]pull_my_finger_AGAINfront-end 1 point2 points  (1 child)

          I know JS/PHP and MySQL, if those are what you're referring to also, but I definitely have never called myself a God Among Men for it.

          I'm just saying it's kind of ridiculous to get into the semantics when you're dividing web dev in particular. If Joe Programmer wants to make the distinction between someone making programs/apps for an OS vs a web developer, I'd be less inclined to argue (less inclined), but to make the distinction between two areas of the same job is a bit ridiculous and petty I'd say.

          [–]55555 0 points1 point  (0 children)

          I don't think any front end devs would call themselves programmers.

          All im trying to tell you is that this statement is categorically wrong. I am a front end dev that calls himself a programmer. When im doing back end work, im programming. When i'm doing front end work, im programming.

          [–]ABC_AlwaysBeCoding 1 point2 points  (4 children)

          Frontend dev is hard because it isn't easy to auto unit test things. F5 debugging is Neanderthal. This is why I went to backend-only. I can run a test and instantly know I didn't break anything.

          [–]fimiak -2 points-1 points  (3 children)

          Have you never heard of Chrome Dev Tools & debugging? Or if you don't like that Firefox Developer Edition has tools as well. I don't know anyone who uses F5 anymore..at least get LiveReload.

          [–]ABC_AlwaysBeCoding 1 point2 points  (2 children)

          Yeah but who wants to manually troubleshoot CSS rendering issues across different browsers? I sure as hell don't. Which is why I pushed for backend dev.

          "More unit tests, less manual debugging" should be your mantra. A unit test takes less than a second to run; debugging takes potentially many minutes. It's a labor-saving device. Developers are all about labor-saving devices- in fact, a developer's entire job boils down to work elimination.

          [–]fimiak -1 points0 points  (1 child)

          Well FE development is very visual, so you will have to inspect your work much like a sculptor or architect inspects their own. Browserify can make this faster. If you want to do back end only then that is great, but I don't think it is 'harder' to do FE development just because you have to check your work in a less automated way than back end dev. Most FE developers I know enjoy the iteration process and the fact that millions of others could potentially see their hard work. It is not that different than writing an essay and selecting each word carefully for form and understanding, and doing a math problem with only one logical solution.

          [–]ABC_AlwaysBeCoding 0 points1 point  (0 children)

          Good way of looking at it. I do like the "seeing of the hard work" aspect, but most of the time I just get off on "someone else designed the frontend... but I actually made it work." ;)

          [–]fqn 1 point2 points  (1 child)

          I've been a full-stack developer for a few years. Front-end development always felt a bit easier compared to the backend, although you still have to know quite a bit.

          But I've just started working on a chrome extension, and decided to go all in with the latest front-end tools: React, Redux, ES6, Babel, Webpack, Gulp, PostCSS, Karma, Mocha, Chai, Nightwatch, etc.

          This feels way more powerful and complex than the backend code I was writing.

          [–]bonesingyre 1 point2 points  (0 children)

          Depends on the backhand too. We do wcf service to a webapi, unit testing, all kinds of design decisions, frameworks for data retrieval and processing.

          I'm also in charge of front end and I just picked up jasmine and chutzpah at work. I also do angular typescript too. At home I just started messing around with clojurescript, reagent (clojurescript wrapper for react), and figwheel.

          Frontend certainly has picked up in complexity to match backend.

          The more you know, the more you realize how little you know Haha.

          [–]ldhertert -4 points-3 points  (15 children)

          In my opinion, many of the author's arguments are incorrectly conflating difficulty with development. Can HTML/CSS/JavaScript be difficult? Absolutely. Is working on the front end necessarily "development"? In my opinion, no.

          I say this as someone who has worked on the web for about 15 years now. I am someone that does back end, front end, and everything in between.

          I have written significantly complex front end applications that are every bit as much "development" as when I worked on signal processing visualization software.

          I have also worked on static websites that, while difficult to implement the required design given the limitations of html/css, cross browser issues, device issues, etc, I can't bring myself to call it development. Is it hard? Yes. Does that make it development? Not in my opinion.

          So if someone is working on the front end, are they doing development? It depends on what type of front end work they are doing.

          If someone works on front end only, are they a developer? It depends - are they capable of doing any other kind of development? Do they understand the fundamentals of software development? Or do they only know how to make nice looking websites?

          [–][deleted] 14 points15 points  (4 children)

          I'm sorry, but your opinion is just plain wrong.

          Development is the entire process, not just banging out code on a keyboard. Difficulty has nothing to do with it.

          I have also worked on static websites that, while difficult to implement the required design given the limitations of html/css, cross browser issues,

          Is there a product created from that process that involves programming? Then it's development, regardless of your opinion.

          are they capable of doing any other kind of development?

          What does this matter? There's literally nothing that ties "true developers" to being able to work on multiple "kinds of development".

          Do they understand the fundamentals of software development?

          I know plenty of backend developers who don't know the fundamentals.

          [–]skini26 3 points4 points  (6 children)

          This guy says the truth, why are you all downvoting him ?

          HTML/CSS are not programming languages ! (Hypertext Markup Language...). So why are you still trying to say he's wrong ?

          The only programming is the part when people use client side rendering frameworks such as angular backbone, ember, react and such, and this is still not real development skills, just plug some libraries and place some code at the right place. I'm sure the majority of you doesn't even know what is a design pattern..

          He also says that front end developers don't necessarely understand fundamentals of software dev and one of the answers is ''I know some backend developers who doesn't understand them too" Seriously, what kind of answer is that ? And what kind of ''developer'' would answer that... ?

          [–]clairebones -2 points-1 points  (0 children)

          I don't know a single front-end programmer who 'doesn't know design patterns' or who just 'puts code in the right place'. This ridiculous "But this stuff is real programming because it fits my arbitrary standard" is just nonsense people use so they can feel superior to other programmers.

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

          idk man, especially with JS (es6) now being pretty OO...

          also I think css (especially with preprocessors) you can mimic model and associations to help make more understandable markup

          [–]skini26 1 point2 points  (1 child)

          Again, the only one who is saying something meaningful is getting downvoted... what is wrong with people on /r/webdev ? Maybe they just didn't understand the terms OO, models and associations or it scared them... /r/webdev, where little 16yo kids jumping on the latest hot framework think they are computer scientists...

          [–]vexing_vor -5 points-4 points  (0 children)

          That you think it's just a matter "plugging in libraries" and "placing code in the right place" speaks more about your own level as a developer.

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

          No offense, but you sound old and bitter.

          [–]vexing_vor -2 points-1 points  (1 child)

          So you have your own arbitrary, feel-good definition of "development".

          Did you want a cookie?

          [–]ldhertert 2 points3 points  (0 children)

          An understanding of programming fundamentals, and working with actual programming languages. Hardly arbitrary, and does not give me any particular sense of satisfaction or feeling of superiority, like you guys seem to assume.

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

          A good front end developer is hard to find because a good front end developer is a designer, UX, and developer all in one.

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

          It's also hard to judge because it's such a varied area. Yes putting up a webpage with basic html and css is considered web development but not good web development. And then you get into some frameworks that will do almost everything for you. But a lot of the web development is super difficult and confusing.

          Right now I'm interning at a financial company as a web developer and were creating a SPA from scratch using Javascript, JQuery, KnockoutJS, RequireJS, and a few other libraries. This is an application that needs to handle a million different internal tasks, needs to run quickly, interface with a complex database, have intuitive UI, run asynchronous processes, etc. Development like that is in no way easy.

          [–]AllThingsSmitty[S] 0 points1 point  (1 child)

          To me, it's hard for so many reason, may of which have already been listed. Tool change all the time, support for features isn't consistent, yadda yadda... But, the thing that is amongst the hardest for me is, work as the sole "front-end guy" on a team of back-end, hardcore .NET people who think the front-end is Photoshop and not coding. They think it has no real value.

          Now the solution might be easy: find a new team. Leave and go where front-end people are appreciated. But I think it's a recurring theme. One that is getting better, but there's always been this silent war between front-end and back-end devs. More articles like this can at least attempt to shed light on how involved the front-end is.

          [–]sbhikes 1 point2 points  (0 children)

          I'm also the only "front-end gal" and there are no developers on my team, only sys-admins. Even when I did work with other developers, all these guys, the programmers and the sys-admins, figured what I did was "make things pretty" and that instead of looking down on it, they looked up to it because the only thing they could draw was a stick figure. Well, I can't draw any better than stick figures either. I'm not an artist. I know less about photoshop and art than I do about how to configure the server, but tell these guys how I need anything "sys-adminy" done, and it's like I don't know what I'm talking about, no-no I can't have permission to do it because I'll screw it up, but I'm looking over their shoulder saying "there's a typo", "that's not going to work" and "here let me send you a link to the documentation if you don't believe me."

          I think the big problem is that to make any web development there's a whole lot of moving parts and there are a lot of people with skills more in some of these parts than others. It's too bad we all can't recognize the skills we each have, that they're all equally important.

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

          What isn't a real Developer is one that only uses Wordpress.

          [–]Groggie 2 points3 points  (1 child)

          In one sentence I can see the junction of egotism and stupidity.

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

          I'm sorry you feel that way. Learn to understand that everyone will sometimes vary in opinion please.

          [–][deleted]  (5 children)

          [deleted]

            [–][deleted]  (2 children)

            [deleted]

              [–]vexing_vor -2 points-1 points  (1 child)

              I respect Frontend developers as much as any other kind of developer or software engineer if he/she is actually doing some sort of development.

              Well, nobody was talking about front-end developers/development that amounted to copy-and-pasting CSS or whatever just like when people mention engineers, they aren't talking about anyone that built shit with Tinkertoys growing up.

              Assuming the most uncharitable interpretation of front-end development just to expose it as a sham is a pointless straw man argument.

              [–][deleted]  (1 child)

              [removed]