There are so many things to know nowadays.
Backend: Sql, NoSql, NewSql, etc.
Middlware: Django, NodeJs, Spring, Groovy, RoR, Symfony, etc.
Client: Angular, Ember, React, Jquery, etc.
I haven't even mentioned hardware, security, servers/cloud, and api.
Now you also need to know about theory, UI/UX, git, deploying servers, HTTP, scrum, software development process, testing.
Then you have to keep up to date with all of the trends and know which framework to use in which scenario.
So, I wrote all of that in a minute. You can just imagine how frustrating it is to learn all of that and be expected not to look at any help or reference. You have to be crazy to have expectations that high in expecting programmers not to use stack overflow.
You burn soo much cognitive resource if you don't use stack overflow. Also, it helps you learn soo much faster. If I go to AWS there is so much jargon in that documentation, which could literally be explained in a simple sentence. Oh and guess what, that simple explanation is in Stack Overflow.
Honestly... not really. Unless you want to know everything out there. My college classmates are doing fine in their job search just knowing Java (no frameworks!) and SQL, just Python, even just one JavaScript framework, etc. Whatever else they need they'll learn in the job without much stress.
I honestly think this "need" of knowing as many APIs as possible is exaggerated online, partly thanks to blog posts or tweets of senior devs saying "X is this new good thing, Y is old and bad!" (which seem to be a weekly occurrence) and perhaps start ups since they don't have time to mentor because they have to grow ASAP. That works fine for them, but don't think it applies to every company.
Seriously, take some time off the internet and you'll quickly stop caring. Unless you enjoy learning so many new things!
As you progress as a programmer you develop a keen sense on when to tune out things. For instance, using your list, knowing SQL thoroughly is far more valuable than whatever the "in thing" in NoSQL is these days. Furthermore, knowing a mature, well-supported framework like Spring, Django, etc is far more valuable than whatever the most fashionable, alpha-version framework is right now on HN. Sometimes it helps to put the HN glasses down, step back for a moment and take a breather.
There have always been references... it just used to be books. O'Reilly publishing provided a mini-library on most coder's desks. There is nothing wrong with looking at reference materials. The only problem comes when you use it as a crutch, and never actually learn. I like to think that most people use it productively.
Backend: Sql, NoSql, NewSql, etc. Middlware: Django, NodeJs, Spring, Groovy, RoR, Symfony, etc. Client: Angular, Ember, React, Jquery, etc.
Hmm. I use none of those, being in embedded + MFC land. But I very much agree with googling API documentation and searching for examples. Google is faster than the local F1 search in Visual Studio.
I'm glad to see that people are generally in acceptance of the notion that there is a lot to keep up with if you want to survive, and that using references is a good thing. I believe its good to be a specialist as well.
I've been using the docs since I started on qbasic, and I learned theory through the years through building websites and keeping up with the latest trends (and it turned out most of the theory is how I understood code to begin with).
Stack overflow is awesome because its accessible and useful to everyone, and I don't think there's a danger that people would just fake it until they make it with SO - that's nearly impossible.
I rely on it at times for best practice concepts since I work alone and don't have real people to talk to.
question: what do we do about this? Is this just how it's going to be? I wonder how much total programmer time was wasted re-learning how to do the same thing in a slightly differently flavored framework / language / pattern. Supposed we would have ended up with more overall productivity and stability in software had it not been for the endless iteration on the same old stuff.
So, thanks for bringing to my attention this NewSQL thing. I work in Baltimore and do my best to keep up, but it's a dessert out here. While I've been shopping around for a new gig, I've had to explain what data science is, even to my contract company recruiter contacts, who claim to work at a tech centric company. They'll think I'm making words up if I bring up NewSQL.
SO is great for finding specific things. If you understand fundamentals it's easy to port your knowledge to some other framework by just googling, and you'll end up on the right SO question. What's the syntax for making a dictionary in some language? What do they call the dictionary in that language (map maybe)? How does the && work in the new c++? And so on.
It's much harder to learn stuff that isn't specific on SO. Things like working practices, what kinds of architecture are out there, and questions where what you're after is a kind of survey.
One thing I don't get is the speed with which the top answerers can get back to you. I've personally had questions answered by Hans Passant, Jon Skeet, Marc Gravell, Martijn Pieters, and probably a few others off that top list. Sometimes it's within minutes. Is their daily life substantially to answer questions about the technologies they are associated with? I work all day as a coder, and I don't have time to sit there and type out answers.
I view Stack Overflow as a good resource to overcome technology/language/framework specific common pain points, to get you "unstuck".
I don't think posting your homework/work project and hoping someone on the internet will complete it for you is the intended use of Stack Overflow. The people allegedly using Stack Overflow instead of learning CS fundamentals will last long in the industry. (Who are these people?)
My favorites are the ones who simply copy/paste their assignment text. Are these people really so clueless?
When it's obvious that someone is fishing for homework help, I'll try to post a hint as a comment rather than handing out an answer on a silver platter. The goal is to provide a path to understanding. Unfortunately there is always someone as clueless as the OP who will provide said silver platter.
As much as I've been helped by StackOverflow, I hope I never have to work with one of those frauds who grew up asking instead of thinking.
> I don't think posting your homework/work project and hoping someone on the internet will complete it for you is the intended use of Stack Overflow.
It's not. If the question is just 'do my assignment', then it should just be closed.
> If you can't make sense out of the question, or it's simply a dump of an assignment with no context or additional detail, or an indecipherable mess vote to close it or flag it as "Not a Real Question".
I shudder to think of the human-hours that SO has saved the world. It is one of those sites that saves you time and effort, as opposed to being a time-suck.
There is a lot of churn in this space. Frameworks, languages, operational methodologies. When we were recruiting at Blekko and we explained that most of our code was written in Perl5, it had an interesting effect on candidates. Either relief because they knew we weren't going to pull some specific set of technologies out of the millions and demand 5+ years experience, or angst because they knew that working on code at Blekko wouldn't add any of those dozens of technologies to their resume.
At some point there is an operational advantage to having a consistent set of core technologies. If we make it so that the only way engineers can be successful is by constantly looking up answers on SO or elsewhere, then I think we've failed as an industry.
Hey there Chuck , always enjoy reading your comments and asking your for advice.
As a young engineer , I constantly get the feeling that I'm falling behind and that I can't be maintaining any single project for way too long.
One reason I think I must learn new languages is that projects written using new languages will be new stuff that's written from scratch. There's nothing wrong per-se with say Java but the odds are that if you have Java experience you'll probably be stuck maintaining some decade old enterprise app.
The same can be said today for say RoR. However if you're applying as a Go or React.JS developer you get to work on a lot of new stuff whereby you get to learn a lot more by writing whole projects from scratch.
So in such a highly competitive market people can't be blamed for being so buzzword driven.
Maintenance experience is not at all valued in the industry and people who do maintenance are looked at as lesser beings. That's the reason we keep throwing things out and reinventing the wheel.
Everyone needs to create a me-too JS framework and put it on Github so they can get hired by claiming that they're some open source rockstar.
Personally I just keep running to stay in the same place and end up learning nothing in depth because I'm spread too thin.
Anyone have comments/inisght as to why Clojure would have lost traction over the past year? Just curious as my impression of the language is that, relative to other functional languages, it's very useful for highly parallel computational analysis (see: ML/AI, data science, CFD/FEA, numerical analysis etc.). Many of these sub-fields are "in vogue", so I would have expected to see the opposite trend...
Quality means many things... When it comes to the experience of the people using the site, performance - how long it takes the requested page to display - is critical; the vast majority of Stack Overflow's page requests are someone requesting a page that they urgently need to read.
That doesn't preclude other aspects of quality of course. But it does influence how they're approached. A heavily abstracted system that hurts performance is unacceptable, but there are other ways to achieve the same ends.
The main problem is posing as a question and answer site, yet wanting to be the go-to reference on the web for getting accurate helpful solutions.
The people asking for help are not there (most aren't) because they heard about this fantastic site that wants to be the go-to reference on the web for getting accurate helpful solutions.
The people asking for help don't want (most don't) to build the go-to reference on the web for getting accurate helpful solutions.
They want programming help.
It's a trick SO has been playing for years.
Not that they'll ever realize it. The founders may not deep thinkers. Or they realize what they're doing and don't care.
After all these years, the founders have not fixed the SO problem. They have failed to address the conflict of asking knowledge-needy users to help build the go-to reference on the web for getting accurate helpful solutions without subjecting them to cruelty.
It's conceptually simple, and a bit of a bait-and-switch.
They pitch the site as a question-and-answer site. In the field of education, it is extremely counterproductive and cruel to subject someone lacking a bit of knowledge, and for whatever reason they lack it, to berating. It's just not accepted. If someone asks a question you simply do not humiliate them or berate them, or 'close the question', or edit the question they asked! It's not even the asker's question anymore if another user edits it! Curation by humiliation.
In any normal, respectful setting that promotes itself as a source to get help -- a "question and answer site" -- if an authority figure in that setting berates someone who lacks a bit of:
- knowledge
- or even the style or manner of how they ask questions
that authority figure would be fired, dismissed.
It's extremely unfortunate that the founders of SO are not brave enough (or deep-thinking enough?) to realize that failing to disclose to Users the truth about the potential cruelty, embarrassment, and humiliation they might suffer using the "question and answer site" -- is shameful.
If a school or university allowed any educational authority figure (like moderators, etc.) to berate and humiliate people with less knowledge than they, the institution would find itself in trouble.
Some of us believe the founders realized that if they told the truth -- "we're casting a big net, a lot of you who fall for the 'it's a question and answer site' are going to be humiliated by the moderators and other users who know more than you do" -- the founders probably realized if they had full disclosure of the "curation by humiliation" process, no one would use the site.
The fact is, the majority of SO users have been subjected to this "curation by humiliation" but are hesitant to speak out about it.
Q&A isn't necessarily Q&A, it really depends on the audience you target. If you attended an advanced mathematics course would you really be surprised if the lecturer refuses to answer a basic question you are just supposed to know the answer to as a prerequisite? Yes, it comes across as rude but there is a tradeoff because answering it wastes the time of everybody else in the room.
I was pretty active in the first years of SO but over time essentially stopped answering questions and that mostly because the question became less and less interesting. Questions you couldn't easily find an answer to got more and more replaced with questions that are easily answered by just reading the manual of whatever you are trying to use or learning to code to begin with. Another factor is that I got more knowledgeable over the years and previously interesting problems now seem trivial but I am pretty sure this is not the main contributing factor.
Now it depends on what you want SO to be or what it is supposed to be. A source of solutions for non-trivial problems or a copy of or link to the manual of everything out there plus an introduction to software development? I thought of SO as a source of information that you couldn't easily get from manuals, now it looks to me more and more like a collection of manuals, so I lost interest.
and yet despite not having "fixed the SO problem" it's still the most useful programming resource on the internet by a long long way, basically indispensible
> Programmers seem to have stopped reading books. [...]
The goal from day 1 has been to foster a community that would be empowered to create something of lasting value. That doesn't preclude hand-holding... But it doesn't demand it either; whether or not that happens is up to the folks who make up the site, the folks asking and the folks answering.
In the 7+ years since that was written, many thousands of people have donated their time and knowledge to help their peers, both in the immediate sense of writing an answer to address a specific question, and in the sense of leaving artifacts for future readers with the same question.
But of course there's room for improvement. And if you're willing to step up, you can be a part of that improvement. Go find someone who lacks knowledge and gently guide them; encourage your friends to do likewise. The platform is there, empowering you to create the environment you wish to see... If you aren't doing it, that's on you.
[+] [-] kevindeasis|10 years ago|reply
Now you also need to know about theory, UI/UX, git, deploying servers, HTTP, scrum, software development process, testing.
Then you have to keep up to date with all of the trends and know which framework to use in which scenario.
So, I wrote all of that in a minute. You can just imagine how frustrating it is to learn all of that and be expected not to look at any help or reference. You have to be crazy to have expectations that high in expecting programmers not to use stack overflow.
You burn soo much cognitive resource if you don't use stack overflow. Also, it helps you learn soo much faster. If I go to AWS there is so much jargon in that documentation, which could literally be explained in a simple sentence. Oh and guess what, that simple explanation is in Stack Overflow.
[+] [-] sotojuan|10 years ago|reply
Honestly... not really. Unless you want to know everything out there. My college classmates are doing fine in their job search just knowing Java (no frameworks!) and SQL, just Python, even just one JavaScript framework, etc. Whatever else they need they'll learn in the job without much stress.
I honestly think this "need" of knowing as many APIs as possible is exaggerated online, partly thanks to blog posts or tweets of senior devs saying "X is this new good thing, Y is old and bad!" (which seem to be a weekly occurrence) and perhaps start ups since they don't have time to mentor because they have to grow ASAP. That works fine for them, but don't think it applies to every company.
Seriously, take some time off the internet and you'll quickly stop caring. Unless you enjoy learning so many new things!
[+] [-] pjmlp|10 years ago|reply
When one grasps that is all about Algorithms + Data Structures, it is easier to abstract over specific languages and libraries.
Personally I think the major drive to Stack Overflow is bad documentation.
Many projects have lousy documentation, so one needs to build the documentation from experience and reading source code.
The answers in Stack Overflow reflect that experience that has not been put in documentation.
Up to the early 2000's it was enough to have a pile of books with the project tech being used.
[+] [-] mtbcoder|10 years ago|reply
[+] [-] codingdave|10 years ago|reply
[+] [-] pjc50|10 years ago|reply
Hmm. I use none of those, being in embedded + MFC land. But I very much agree with googling API documentation and searching for examples. Google is faster than the local F1 search in Visual Studio.
[+] [-] robotkilla|10 years ago|reply
I've been using the docs since I started on qbasic, and I learned theory through the years through building websites and keeping up with the latest trends (and it turned out most of the theory is how I understood code to begin with).
Stack overflow is awesome because its accessible and useful to everyone, and I don't think there's a danger that people would just fake it until they make it with SO - that's nearly impossible.
I rely on it at times for best practice concepts since I work alone and don't have real people to talk to.
[+] [-] BadassFractal|10 years ago|reply
[+] [-] oneJob|10 years ago|reply
[+] [-] lordnacho|10 years ago|reply
It's much harder to learn stuff that isn't specific on SO. Things like working practices, what kinds of architecture are out there, and questions where what you're after is a kind of survey.
One thing I don't get is the speed with which the top answerers can get back to you. I've personally had questions answered by Hans Passant, Jon Skeet, Marc Gravell, Martijn Pieters, and probably a few others off that top list. Sometimes it's within minutes. Is their daily life substantially to answer questions about the technologies they are associated with? I work all day as a coder, and I don't have time to sit there and type out answers.
[+] [-] osullivj|10 years ago|reply
[+] [-] seansmccullough|10 years ago|reply
I don't think posting your homework/work project and hoping someone on the internet will complete it for you is the intended use of Stack Overflow. The people allegedly using Stack Overflow instead of learning CS fundamentals will last long in the industry. (Who are these people?)
[+] [-] mark-r|10 years ago|reply
When it's obvious that someone is fishing for homework help, I'll try to post a hint as a comment rather than handing out an answer on a silver platter. The goal is to provide a path to understanding. Unfortunately there is always someone as clueless as the OP who will provide said silver platter.
As much as I've been helped by StackOverflow, I hope I never have to work with one of those frauds who grew up asking instead of thinking.
[+] [-] slavik81|10 years ago|reply
It's not. If the question is just 'do my assignment', then it should just be closed.
> If you can't make sense out of the question, or it's simply a dump of an assignment with no context or additional detail, or an indecipherable mess vote to close it or flag it as "Not a Real Question".
http://meta.stackexchange.com/q/147100/162027
[+] [-] ZanyProgrammer|10 years ago|reply
[+] [-] escherize|10 years ago|reply
[+] [-] anentropic|10 years ago|reply
[+] [-] ChuckMcM|10 years ago|reply
At some point there is an operational advantage to having a consistent set of core technologies. If we make it so that the only way engineers can be successful is by constantly looking up answers on SO or elsewhere, then I think we've failed as an industry.
[+] [-] thewarrior|10 years ago|reply
As a young engineer , I constantly get the feeling that I'm falling behind and that I can't be maintaining any single project for way too long.
One reason I think I must learn new languages is that projects written using new languages will be new stuff that's written from scratch. There's nothing wrong per-se with say Java but the odds are that if you have Java experience you'll probably be stuck maintaining some decade old enterprise app.
The same can be said today for say RoR. However if you're applying as a Go or React.JS developer you get to work on a lot of new stuff whereby you get to learn a lot more by writing whole projects from scratch.
So in such a highly competitive market people can't be blamed for being so buzzword driven.
Maintenance experience is not at all valued in the industry and people who do maintenance are looked at as lesser beings. That's the reason we keep throwing things out and reinventing the wheel.
Everyone needs to create a me-too JS framework and put it on Github so they can get hired by claiming that they're some open source rockstar.
Personally I just keep running to stay in the same place and end up learning nothing in depth because I'm spread too thin.
[+] [-] isido|10 years ago|reply
Our next post examines how much urine splashes back on you when you use a urinal.
The range of articles is... interesting.
[+] [-] an0nym1ty|10 years ago|reply
Anyone have insight they could offer? Thanks
[+] [-] ggarnier|10 years ago|reply
[+] [-] Shog9|10 years ago|reply
That doesn't preclude other aspects of quality of course. But it does influence how they're approached. A heavily abstracted system that hurts performance is unacceptable, but there are other ways to achieve the same ends.
You might find this article interesting... http://samsaffron.com/archive/2011/03/30/How+I+learned+to+st...
[+] [-] youngButEager|10 years ago|reply
The main problem is posing as a question and answer site, yet wanting to be the go-to reference on the web for getting accurate helpful solutions.
The people asking for help are not there (most aren't) because they heard about this fantastic site that wants to be the go-to reference on the web for getting accurate helpful solutions.
The people asking for help don't want (most don't) to build the go-to reference on the web for getting accurate helpful solutions.
They want programming help.
It's a trick SO has been playing for years. Not that they'll ever realize it. The founders may not deep thinkers. Or they realize what they're doing and don't care.
After all these years, the founders have not fixed the SO problem. They have failed to address the conflict of asking knowledge-needy users to help build the go-to reference on the web for getting accurate helpful solutions without subjecting them to cruelty.
It's conceptually simple, and a bit of a bait-and-switch.
They pitch the site as a question-and-answer site. In the field of education, it is extremely counterproductive and cruel to subject someone lacking a bit of knowledge, and for whatever reason they lack it, to berating. It's just not accepted. If someone asks a question you simply do not humiliate them or berate them, or 'close the question', or edit the question they asked! It's not even the asker's question anymore if another user edits it! Curation by humiliation.
In any normal, respectful setting that promotes itself as a source to get help -- a "question and answer site" -- if an authority figure in that setting berates someone who lacks a bit of: - knowledge - or even the style or manner of how they ask questions
that authority figure would be fired, dismissed.
It's extremely unfortunate that the founders of SO are not brave enough (or deep-thinking enough?) to realize that failing to disclose to Users the truth about the potential cruelty, embarrassment, and humiliation they might suffer using the "question and answer site" -- is shameful.
If a school or university allowed any educational authority figure (like moderators, etc.) to berate and humiliate people with less knowledge than they, the institution would find itself in trouble.
Some of us believe the founders realized that if they told the truth -- "we're casting a big net, a lot of you who fall for the 'it's a question and answer site' are going to be humiliated by the moderators and other users who know more than you do" -- the founders probably realized if they had full disclosure of the "curation by humiliation" process, no one would use the site.
The fact is, the majority of SO users have been subjected to this "curation by humiliation" but are hesitant to speak out about it.
[+] [-] danbruc|10 years ago|reply
I was pretty active in the first years of SO but over time essentially stopped answering questions and that mostly because the question became less and less interesting. Questions you couldn't easily find an answer to got more and more replaced with questions that are easily answered by just reading the manual of whatever you are trying to use or learning to code to begin with. Another factor is that I got more knowledgeable over the years and previously interesting problems now seem trivial but I am pretty sure this is not the main contributing factor.
Now it depends on what you want SO to be or what it is supposed to be. A source of solutions for non-trivial problems or a copy of or link to the manual of everything out there plus an introduction to software development? I thought of SO as a source of information that you couldn't easily get from manuals, now it looks to me more and more like a collection of manuals, so I lost interest.
[+] [-] anentropic|10 years ago|reply
[+] [-] pjc50|10 years ago|reply
EE.SO has rather brutal moderation in my opinion, but any solution has to take into account both sides of the equation.
* It's not even the asker's question anymore if another user edits it!*
Depends on how big the edit is, surely? Or are you claiming that having the readability fixed is humiliating?
[+] [-] Shog9|10 years ago|reply
> But here's the concept:
> Programmers seem to have stopped reading books. [...]
The goal from day 1 has been to foster a community that would be empowered to create something of lasting value. That doesn't preclude hand-holding... But it doesn't demand it either; whether or not that happens is up to the folks who make up the site, the folks asking and the folks answering.
In the 7+ years since that was written, many thousands of people have donated their time and knowledge to help their peers, both in the immediate sense of writing an answer to address a specific question, and in the sense of leaving artifacts for future readers with the same question.
But of course there's room for improvement. And if you're willing to step up, you can be a part of that improvement. Go find someone who lacks knowledge and gently guide them; encourage your friends to do likewise. The platform is there, empowering you to create the environment you wish to see... If you aren't doing it, that's on you.
[+] [-] sien|10 years ago|reply
Has anyone tried?
[+] [-] gaius|10 years ago|reply
They want free programming help. It's not unreasonable to expect someone you're doing a favour for to be respectful of your time and goodwill.