Stack Overflow and the Zeitgeist of Computer Programming (priceonomics.com)
An anonymous reader writes: Stack Overflow remains one of the most widely-used resources in the developer community. Around 400,000 questions are posted there every month. The Priceonomics blog is using statistical analysis to ask, "What does the nature of these questions tell us about the state of programming?" They see tremendous growth in questions about Android Studio, as well as more generic growth in work relating to data analysis and cloud services. Topics on a significant decline include Silverlight, Joomla, Clojure, and Flash (not to mention emacs, for some reason). The article also takes a brief look at the site's megausers, who receive a lot of credit for keeping the signal-to-noise ratio as high as it is, while also taking flack for how the Stack Overflow culture has progressed. "Others are worried about how Stack Overflow has impacted programming fundamentals. Some critics believe that rather than truly struggling with a problem, developers can now just ask Stack Overflow users to solve it for them. The questioner may receive and use an answer with code they do not truly understand; they just know it fixes their problem. This can lead to issues in the long run when adjustments are needed."
For me, I use stack overflow for library related issues, not language related. Dealing with bullshit subtleties of things like jQuery, instead of fucking around for hours trying to figure out why a particular function has a weird ass edge case, someone else has already figured it out and documented it. It just so happens that said documentation is the comments within StackOverflow.
The complaints remind me of the old usenet groups, especially C and perl programming. A few people appointed themselves to be the arbiters of what could be posted, and flamed anyone who didn't meet their personal standards.
On the other hand, take away that moderation and the site quickly degenerates into what /. has become. Given the choice, I'll take StackOverflow the way it is.
This is probably not going to be a popular opinion here, but I have a low view of developers who spend an hour writing code they could have copied off the internet in 5 minutes. Yes, there is no replacement for discernment. You shouldn't Ctrl+V code you don't understand. But to not even try Googling it indicates, to me, someone who is more interested in padding their hours than getting shit done. The solution, once arrived at, is probably not novel or better than what's out there, anyway.
On the flip side, programmers may receive better answers on SO than the ones they had come up with themselves, and gain new insights in programming patterns, use of SDKs, etc. That sort of learning and sharing of knowledge is encouraged and facilitated in other fields for good reason, and I've learned a good many things that way myself. As long as the answer explains or shows how to solve the problem instead of actually solving it completely. Post text or pseudocode rather than complete working code fragments. Same way you teach your kid how to fix a punctured bicycle tyre: don't fix it for him, but let him fix it under your guidance.
If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
Duplicate questions are discouraged on the site. This is problematic because the accepted answer will remain the apparent authority even while languages evolve or APIs change. I see it happen a lot with jQuery, for instance.
"I have Requirement to build Python website. Provide info on how to write the Python. Please do the needful."
FTFY - Which, coincidently, was a question I read on the Python email list this morning.
Emacs questions may be lacking because it has a dedicated stackexchange site of its own.
1. Often leads to mixed up styles and programs that are spottily documented.
2. Tons of example code does little to no error checking.
3. Plus many times when I clean up from example code programmers they haven't really stepped through the new code very well. They get in a hurry meeting the insane deadlines they feed to business and fuck up.
4. Do you really understand something if you cheat on it? How do you really know what you know and don't know if you can't do it yourself (this a serious fucking problem, very few people can truly estimate what they do and do not know) ? That is like saying, why do all of the homework that has been solved before.
5. Leads to the "Then why not use libraries for everything" kind of mentality that we have at my work.
Get a load of these guys. As if "struggling" should be applauded and praised.
Yeah. A lot of the time I don't even care to understand the answer because it's incidental to the underlying problem I'm trying to solve. If I'm trying to build a frobnicator and I'm getting hung up on some trivial little linker error, I could spend hours digging into the problem until I truly understand it, or I could check Stack Overflow and be on my way in 5 minutes.
Struggle up to a certain point. I had an algorithms professor who said, "spend 30 minutes on a problem", then when/if you get to a dead end after 30 minutes...
Doesn't mean "don't try this problem because this looks hard". Do try, but don't run around in circles.
Still beats expert sex change.