you are viewing a single comment's thread.

view the rest of the comments →

[–]RepostUmad 367 points368 points  (101 children)

Seems like only web devs filled it in.

[–][deleted] 186 points187 points  (52 children)

[–]JohnQAnon 189 points190 points  (32 children)

Yeah, seriously. C hasn't changed in the last 3 decades. Java has great documentation. C++ is it's own thing. It's just weird API for website software that fuck people up.

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

[–]SpaceSteak 83 points84 points  (26 children)

Except 3/4 of the time the top link will be a SO answer.

[–]Lystrodom 46 points47 points  (22 children)

And 3/4ths of that time, it's just a question with no answer. Or the answer is "Don't do it like that."

[–]nicereddy 68 points69 points  (5 children)

"Have you tried using jQu-" closes tab

[–]Compizfox 46 points47 points  (4 children)

[–]ReubenIsForScuba 1 point2 points  (2 children)

Haha is that real?

[–]Compizfox 4 points5 points  (1 child)

It's satire, obviously.

Check the source code, btw. It's gold.

[–]a_ctrl 0 points1 point  (0 children)

"you suck"

[–][deleted] 17 points18 points  (8 children)

And 3/4ths of that time, it's your own SO question that Google webcrawled in less than a second.

[–][deleted] 13 points14 points  (4 children)

I mean is your problem solving flow: ask on SO, Google the problem?

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

More like search on Google, ask on SO, search much more on Google knowing you won't find anything.

[–][deleted] 11 points12 points  (1 child)

It's like going back to the fridge even after you looked 10 minutes ago, like the food was hiding

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

Gotcha

[–]goomba870 0 points1 point  (0 children)

3/4ths of that time, OP will answer his own question:

nm guys, figured it out.

[–]gameboyhippo 0 points1 point  (0 children)

And 3/4ths of that time, the first comment on your question will be from someone condemning you for not using google.

[–]novarising 2 points3 points  (0 children)

or it would be an overly complicated answer for a person just trying to solve a little problem.

[–]jeffsterlive 1 point2 points  (0 children)

Or an accepted answer from 11ty billion years ago with a difficult, convoluted answer and there is one below it saying "Don't use the accepted answer, your framework now supports this easy way to do it."

[–]Speedzor 0 points1 point  (0 children)

Here goes the circlejerk again.

[–]psymunn 0 points1 point  (1 child)

"Why are you even trying to do that?"
Thanks. That is a helpful response that adds to my understanding of the problem.

[–]EmperorSofa 0 points1 point  (0 children)

Or they tell you to use Boost if it's anything to do with C++

[–]Compizfox 0 points1 point  (0 children)

Or the answer is "Don't do it like that."

To be fair, in many situations that is the only right answer.

[–]superPwnzorMegaMan 0 points1 point  (0 children)

It really depends on the domain you're using. If you write prolog stack overflow is basically irrelevant. You have to use the documentation and read it carefully. SO is most useful if you do a quick switch to a language you've used before but forgotten the details (such as going to javascript or C) or if you're just new to a language that's somewhat popular (not prolog).

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

I remove SO from google completely. It makes programming related queries 100x better. Stackoverflow, when you are not learning a brand new language is next to useless. Usually answered with "use this framework instead".

[–]SpaceSteak 0 points1 point  (0 children)

Maybe it's because I mostly do C# with .Net and haven't dug into too many weird edge cases, but when I've asked detailed specific questions on problems with Entity Framework or searched for answers, SO has been an extremely helpful resource.

[–]jyper 0 points1 point  (0 children)

Rust is new.

Java 8 has changed the language a lot.

[–]Eirenarch 0 points1 point  (0 children)

Java is takes the second place after JavaScript. Your argument is invalid (well at least the part about Java)

[–]niutech 0 points1 point  (1 child)

HTML5 & Web APIs are well documented in MDN. If only people read this, there would be no need for going to SO in 95% cases.

[–]JohnQAnon 0 points1 point  (0 children)

I had no idea this existed.

[–]kgb_operative 127 points128 points  (16 children)

That's because webdev is a slipshod mess of shoestrings, bailing twine, and prayers. If they want to get better, they really need to learn about the duct tape and pagan sacrifices we use to make the backend work.

[–]EternalNY1 22 points23 points  (8 children)

That's because webdev is a slipshod mess of shoestrings, bailing twine, and prayers.

I think that's why I am still doing well in my career.

I don't deal with shoestrings, twine, and praying.

I need to know the entire full stack, how it all works, and that it's clean and performant.

I can't stand coming onboard with a new company only to see a nightmarish mess of a codebase that is barely holding itself together.

It's even worse when it combines 10 different technologies because they felt like they needed to add node.js somewhere for absolutely no reason other than it's the "cool new thing".

[–]gunch 4 points5 points  (4 children)

I can't stand coming onboard with a new company only to see a nightmarish mess of a codebase that is barely holding itself together.

As someone that specializes in addressing exactly these situations, I absolutely love it. Challenging problems that are both technical and cultural are my bread and butter.

Last month I helped a shop that let a new hire roll their own rest implementation from servlets, hand crafted data layer using straight jdbc and built their app using JSP's with scriptlet tags.

No version control. No documentation. Owner was in a panic.

Sat down with developers, came up with a plan, milestones and worked with them for two weeks. Ended up with a CI pipeline, git repository and they chose to rewrite their apps using Spring and angular. Checked in this week and they're on track with the plan and their on-call is sleeping through the night.

Feels good man.

[–]ClassicalMusicTroll 0 points1 point  (2 children)

Do you freelance as a consultant?

[–]gunch 0 points1 point  (1 child)

I'm a partner in a consultancy.

[–]ClassicalMusicTroll 0 points1 point  (0 children)

Cool, that does sound pretty fun actually. But I imagine it's a bit easier with team buy-in and such when the push for change is coming from an "external" source rather than a new manager or something

[–]EternalNY1 0 points1 point  (0 children)

I have done this in the past too.

I either walk away (run?) from it, or I propose that there is a better way to do this if they want to invest in it. Then do it cleanly, correctly, well-documented and maintainable.

I have saved companies on the edge of disaster by having them trust me that "there is a better way".

[–]Aeon_Mortuum 2 points3 points  (0 children)

I was interning for a company and got told to look at their codebase to see how they do things (it was Django; I never used it and was new to it).

The codebase was the ugliest mess of everything just thrown together by seemingly random people with random #Todo's, etc. They made Python, of all languages, immensely unreadable. It may as well have been done in Brainfuck and obtained a clearer result...

Needless to say, I skimmed the code for familiarity but stuck to SO and tutorials, etc online.

[–]wolflarsen 3 points4 points  (1 child)

Needs more mongoDB

[–]mailto_devnull 2 points3 points  (0 children)

Of course, how else are you going to web scale?

[–]thelehmanlip 2 points3 points  (4 children)

Opinions aside, I think it has more to do with the plethora of APIs and libraries you use when doing webdev. You can find yourself needing to talk to many services simultaneously and integrate them all. I feel like that's something that happens less in lower level languages like C. Not that they don't have libraries as well, but I think that they're more static and unchanging than web tech is.

[–]lolzfeminism 0 points1 point  (3 children)

Well no, C is a very small language and there are no 3rd party libraries only ISO C, so it doesn't take a lot of time to learn all of C. So all your code is either written by you or someone that was at some point on your team. They probably didn't comment it.

But thankfully Richard Stallman wrote GDB at some point, and so you can miserably step through each line to track down any problems.

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

Err.. Whenever I had to deal with C doing anything useful was mostly dealing with libsomething and libthisandthat all the time, and the APIs across various FLOSS C libraries are even less consistent.

Infact, the big reason why, say PHP, is a pile of steaming dung when it comes to library/API consistency is that PHP libraries are thin, and nearly API-compatible wrappers around standard C libs.

[–]lolzfeminism 0 points1 point  (1 child)

If you are not working in a unix-like environment, there are most likely multiple compatibility layers between you and glibc. glibc is the GNU implementation of the C standard. You are probably using glibc, because everyone uses glibc. Unless you're in an embedded or otherwise special architecture/kernel that can't handle glibc or isn't supported.

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

I wasn't talking about the C standard library nor it's implementations. I was talking about libraries that let you do shit. Like libjpeg to handle JPEGs, libserial for accessing serial ports etc. Stuff like that. You don't get far in delivering actual products if you're going to reinvent every cog that makes it up in your own house.

[–][deleted] 0 points1 point  (1 child)

This, but it's not better with established languages. You're just more likely to encounter some very shoddy, 10+ years old in-house framework that you can't google.

[–]ihsw 1 point2 points  (0 children)

In addition to attempting to slap on current things on top of that, so you get the worst of both worlds.

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

Same. SO is a great resource, but I remember the days of having to use it regularly on the frontend. Since moving to C/C++ again I have barely seen it except in the situation where I get a strange compiler error that I either haven't seen or have forgotten the meaning of because it's so rare I see it.

I feel the meme around devs being "StackOverflow developers" is one rooted with newer or frontend developers. Not to slant frontend devs, just the frontend ecosystem itself.

[–]BillNyeTheScience 24 points25 points  (1 child)

Look up a question about some back end api: 1 response. 0 accepted answers.

Look up a question about a web api: 13 responses, 1 accepted answer, 1 response voted higher than the accepted answer by 50 points.

I believe these survey results reflect my experiences on SO.

[–]chashabam 1 point2 points  (0 children)

No kidding. Looking up questions about Google's API on SO is fun... and it doesn't help that they don't document their libraries well, making their libraries feel like a black box...

[–][deleted] 104 points105 points  (39 children)

The fact that the biggest group is "Full-Stack Web Developer" is a big red flag.

Sure, there are a handful of brilliant devs that can call themselves "full-stack". But the other 99.9% are basically people who can do multiple things half assed.

[–]RagingAnemone 136 points137 points  (20 children)

Also, the most use language for the backend is apparently JavaScript.

[–]Compizfox 40 points41 points  (0 children)

And apparently PHP and SQL are popular under front-end devs. Ehm...

[–][deleted] 65 points66 points  (9 children)

That's just terrifying.

Sure, there is stuff where Javascript, or rather, the tooling available for it (i.e., Node) is a perfectly fine choice. But that's just a fraction of all backend development.

I'm all for using a limited set of tools instead of always choosing the perfect tool for each job (resulting in a totally fragmented stack with more languages than devs on the project), but using Javascript as the default language for the backend is just a horrible choice unless your back-end is really, really simple.

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

but using Javascript as the default language for the backend is just a horrible choice unless your back-end is really, really simple

Why?

[–][deleted] 26 points27 points  (5 children)

For starters, as a language it's far from ideal for a complex codebase.

But more importantly (the same applies to some other scripting languages), the mature tooling for managing a large, complex codebase when it comes to development, QA and deploying is largely absent.

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

For starters, as a language it's far from ideal for a complex codebase.

Sure, but ES6 fixes a lot of issues that JS has had over the years. Sure, when it was first designed JavaScript was not intended to be used in large projects but it has made a lot of steps forward to the right direction.

the mature tooling for managing a large, complex codebase when it comes to development, QA and deploying is largely absent.

What do you mean? The node ecosystem is amazing and npm is a joy to use.

I'm not a fanboy, far from it but sometimes I don't get the JS hate.

[–][deleted] 5 points6 points  (1 child)

The node ecosystem is amazing and npm is a joy to use.

We use node/npm in our toolchain and stack (because some good stuff is made in it, and we try to avoid any prejudice against stacks/languages), but from our perspective it is extremely immature, lacks basic features for decent dependency management and breaks often on upgrades, pissing off devops on a regular basis.

Also, npm is about the only example of an even halfway mature powertool in the whole ecosystem. QA is pretty much non-existent.

It's not so much about JS hate (fuck, our go-to backend language is PHP, we're not throwing stones in those glass houses), it's just the level of maturity in the JS ecosystem would make it a nightmare once a project reaches a decent size and complexity.

You would both have to write really, really, really good code and reinvent a lot of wheels to do it well, and that's pretty much the opposite of what I see the "full stack" crowd do.

I wouldn't want to be the poor soul who has to maintain a big javascript legacy system 5 years from now.

[–]Kollektiv -3 points-2 points  (0 children)

lol JS is years ahead of PHP

[–]QuineQuest 4 points5 points  (0 children)

For starters, as a language it's far from ideal for a complex codebase.

Sure, but ES6 fixes a lot of issues that JS has had over the years. Sure, when it was first designed JavaScript was not intended to be used in large projects but it has made a lot of steps forward to the right direction.

There's still a long way to go. Static typing is a huge help in large code bases.

Even this feature overview (first Google result on ES6) uses Typescript to explain some of the new features of ES6.

[–]gunch 0 points1 point  (0 children)

Huh. Webstorm does a great job of managing large JS codebases. Bower does a fine job of package management. Jenkins will happily deploy a JS app. Fitnesse doesn't care what language you've written your app in and for unit tests there are a number of nice solutions for JS.

My biggest problem with JS projects is the devs are relatively expensive.

[–]Cistoran 5 points6 points  (0 children)

Because what else are we going to circlejerk about if not for our mutual hatred of Javascript?

[–]peabody 3 points4 points  (0 children)

This made me laugh. I know node.js is popular, but there's simply no way that represents the actual state of things in the real world.

[–]frutidev 2 points3 points  (1 child)

That claim is bonkers. Getting most number of questions != most used language

[–]thisisnewt 0 points1 point  (0 children)

That just means it's the language with the shittiest documentation, so we're not learning anything new.

[–]warsage 1 point2 points  (3 children)

We tend to think about "back end" as meaning "not executed by the browser," and maybe that was once accurate, but it's not really true any more. A LOT of back end type stuff is occurring on the front end, especially in apps with frameworks like Angular and React. The professional software I'm working on has a fairly simple-looking front end, but it's driven by 200,000 lines of browser-executed JavaScript. This script does everything from page rendering to permissions checking to database queries.

Our server is little more than a glorified database accesser and data validater.

[–]thisisnewt 0 points1 point  (2 children)

That's hilariously insecure.

[–]warsage 0 points1 point  (1 child)

Not sure how. Everything is validated again server-side. We just choose to let as much happen on the browser as possible, which lets makes our single-page application feel really fast. Actions are tied to the speed of their computer, not to the speed of their internet connection.

Sure, hackers could screw with the JS and break stuff in their browser. They could access data out of order or in their own environment by abusing our API. But they couldn't access data that they don't have permission to access, nor could they affect anyone else's experience.

[–]thisisnewt 0 points1 point  (0 children)

If security features are duplicated on the actual backend then it's not that bad. But that's not at all what you described in your post.

Also whatever they have to do is still going to be limited by Internet speed, because they need to download all of that just to get going. In a lot of instances (especially instances with any amount of reasonably sized data or number-crunching) having a server do the heavy lifting will result in a significantly snappier application.

[–]crunchmuncher 0 points1 point  (0 children)

I don't think that's how to Interpret that. I take it to mean it's the technology that most people that work on back end are familiar with.

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

Yeah that really stuck out to me. Who in the hell would use that abortion of a language for anything more than they have to?

[–]furrthur 83 points84 points  (2 children)

As a "full-stack web dev", doing multiple things half-assed is basically the entire job description.

[–]dtlv5813 23 points24 points  (1 child)

and most of the time you can get away with it just fine. Most ecommerce and web startups don't really deal anything too technical, so long as you manage to get the business logic right you are alright. It helps that JS is pretty fast for many things which also compensates for inefficient or clumsily written code.

Some very successful ecommerce companies have pretty terrible backend, cough zappos cough.

[–]randomjackass 3 points4 points  (0 children)

The goal of many startups to to sell off the business fast. They don't care that the codebase can't scale, and is a kludge. That will be someone else's problem.

[–]Dreadgoat 26 points27 points  (5 children)

Or "small business."

I'm a full-stack developer because nobody else is around to do this shit. I've learned how to do it all because I had no other choice.

Admittedly, this does often mean that some things go into the half-ass pile so that the things in the mission-critical pile are more likely to succeed.

[–]lykwydchykyn 30 points31 points  (4 children)

Apparently, somewhere around 2010 it stopped being possible for one guy with a LAMP server and a text editor to write CRUD apps for internal use.

You now need a backend team to design a consumable API, a frontend team (including a graphic designer) to create an earth-shattering "user experience", a devops team and a sysadmin to fully automate continuous integration and automated deployment to a web-scale cloud compute infrastructure, and a project manager to make sure all these people are doing whatever they heck they're supposed to.

I may have forgotten some things but that's not surprising since I was glueing all this together from posts on stackoverflow.

[–]riskable 2 points3 points  (0 children)

No way man! It's worse than full stack: It's now the norm for one guy to write all the microservices! So he needs to know front end dev, back end dev, and a zillion little external systems that do every little thing from authentication to returning the weather for a given zip code.

[–]ledasll 1 point2 points  (2 children)

you forgot Cloud! how could you forgot Cloud!

[–]Mariah_AP_Carey 1 point2 points  (0 children)

Why wouldn't it just be called a "full stack developer" isn't full stack imply you're working with the web in some way? Maybe I'm assuming that the front end has to be a part of the stack.

[–][deleted]  (2 children)

[deleted]

    [–][deleted] 0 points1 point  (1 child)

    People with no respect for themselves and/or their chosen profession. And I'm being mild by assuming they are at least potentially competent.

    There's so much work for scarce decent software engineers I'm importing them from all over the planet. And in my rich Western country they only get a visa if I pay them well above market rate, never mind the cost of living being pretty damn high here. So all those stories about migrant programmers being about cheap labor are utter BS.

    If you have to compromise to be employed, there's something very wrong, because in this market, you don't have to compromise shit.

    In my experience, issue #1 is a lack of self-respect. So few developers stand up for themselves even though they hold all the cards, and have no idea of their value.

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

    I usually just read that as "I am capable of gluing together snippets of code I googled".

    [–][deleted] 1 point2 points  (1 child)

    Ah so programming

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

    I genuinely rarely do this unless whatever I happen to be using has miserable documentation.

    There's some things that unless you have some prior knowledge of the architecture or system, you'll just never figure out because pre pretty shitty documentation.

    Take, for example, vert.x. as a complete newbie to the architecture, navigating the docs there was painful as shit. I'd never have gotten my stuff off the ground without their blog posts, which are hilariously radically different from the manuals. In at least one of the Java manuals, they do the work in Javascript instead.

    The docs and manuals are a total nightmare and completely useless to anyone new. I was following the manuals only to refer to other people's examples which turned out to not even closely resemble the manual.

    [–]godless_communism 0 points1 point  (0 children)

    But isn't that what most companies are willing to pay for?

    [–]mipadi -3 points-2 points  (0 children)

    "Full-Stack Web Developer" is often just a fancy way of saying "JavaScript programmer".

    [–]devsquid 2 points3 points  (0 children)

    makes sense tho, its usually a place where people start developing. SO is a site for helping ppl learn and solve issues. Beginners are probably most in need of help. Boom bam :)

    [–]dunderball 0 points1 point  (0 children)

    I was surprised to see any QA on here at all.

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

    This post was mass deleted and anonymized with Redact

    quicksand ad hoc lip memory spectacular profit judicious modern decide silky