As an example, try looking for "python setattr" in your search engine of choice, and look for python.org documentation: none of them show it on the first page for me.
Basically there are all kinds of situations where the specific question/answer format is actually at odds with generating good long-term documentation.
But that makes me all the more impressed with the success Stack Overflow has had. In my opinion their key insight is that it can be good enough. If I had come up with the idea for the product I probably would have been discouraged and given up way too early based on the fact that it is and will always be messy and imperfect.
That describes seemingly every Stack Overflow question I've found in the past four years. SO is basically useless for anything advanced enough to need SO.
Not really, no, which is why it's so infuriating when people ruin it with "How do I do X?" "You aren't supposed to do X, here let me tell you how to Y instead.". The HTML/regex Zalgo rant at least had some style, even if it was utterly useless at answering the question.
At least speaking for myself, almost two decades in, I didn’t outgrow SO because I don’t need that kind of guidance. I outgrew SO because it doesn’t provide it effectively anymore.
I'd say it's become a lot worse than it was just a couple years ago when you could massage the queries to get you exactly what you want. Now google seems to think it's more clever than you and turns every question into an entry level one.
Search for "search engines"
Open "Manage search engines"
Under "Other search engines" click on "Add" (on the right)
Add this custom search engine:
- Search engine: Python docs (first result)
- Keyword: p
- URL with %s in place of query: {google:baseURL}search?q=site:docs.python.org%2F3%2F+%s&btnI=I%27m+Feeling+Lucky
Install the "Redirect Google Redirects" extension https://chrome.google.com/webstore/detail/redirect-google-re... (otherwise you'll see a "Redirect Notice" page)
You can also add this search engine:
- Python3 docs
- pp
- {google:baseURL}search?q=site%3Adocs.python.org%2F3%2F+%s
Now, when you need to search for the Python documentation, just type "p setattr" and it'll go straight to https://docs.python.org/3/library/functions.html or you can search "pp setattr" and it'll show you the search results, filtered only for docs.python.org/3/
And Postgresql. And Flask. Now I am using aiohttp here. SQLAlchemy please. Pytest. Sorry, now in the Rust world. Get me some MDN for Javascript. w3.org for CSS3 spec, pleaaaseee!
You see where this is going? Python.org was an example to illustrate a point.
- Dash, the macOS app for language and library documentation is really nice. This is the first thing I go for.
- Chrome notices when you visit a page with a "Search" box. Next time you start typing python.org you can press tab to search the domain. I wish Firefox had this.
- AFAIK, Firefox's version of this is to RMB on a search box (for example on python.org's main page) and "Add a Keyword for this Search..." Set it to something like "py" and you can now type "py http" and it would search Python.org for "http"
- I honestly get better results from DuckDuckGo for stuff like this. Even better, they have bang! shortcuts. "subprocess !py2" will search Python.org's Python2 documentation for "subprocess" https://duckduckgo.com/bang
I also use the uBlacklist extension to hide W3Schools et al. https://chrome.google.com/webstore/detail/ublacklist/pncfbmi...
I actually make these whenever I get frustrated by Google a few times. I have "m" for MDN... It's not hard you just need to pick a keyword. How to modify the URL in the search string should be pretty obvious. I think you'll find you don't need them for every library. It's mostly general tools with large user bases, like Python, where people are trying to make a living shitting up the search results.
!w bang
searches for bang on Wikipedia. The list of bangs can be found here [0]python: !python !python2 !python3
Postgresql: !postgres
Flask: !flask
SQLAlchemy: !sqlalchemy
Rust: !rust
Javascript: !javascript
CSS: !css
Currently there are 13,564 bangs and you can suggest new ones.
```
> python
Python 3.7.4 (default, Aug 13 2019, 20:35:49)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> help(setattr)
```
Or if you want the documentation on specifically Python.org, use Google search but type
`setattr site:python.org`
?
Maybe Googlebot is reading this thread.
Maybe if I let Google learn my patterns instead of disabling all the tracking I can, it'd give me better results.
FWIW, I get similar results with DDG, but Google wins hands-down on non-English searches.
!python setattr
Or am I not allowed to add a character? :)
I was curious and tried exactly that. For me, Google returns python.org as the third hit, above Stack Overflow.
It's ironic that I use Zeal so much but it really does just give me the answers quite often with less hassle than figuring out the search term to tell the search engine to get out the way!.
Ninja edit: my default search engine is DDG.
And I really did find myself buying a lot more programming books than I do now. When's the last time you picked up a book just to learn how to use a language - just the ins and outs of the syntax? I used to do that all the time, and then I immediately stopped when SO became popular because I could just google for what I wanted and SO would always tell me.
This was all before 2001 while I was in high school, with books being very hard to get in Serbia, so internet was my go to resource.
Now to be honest, even after SO, I only use it as a last resort. Somehow only 1/20th of the problems I hit match what people seem to hit on SO :/
Perhaps this is an age difference thing? I'm 29 - I learned to program between 2003 and 2010 from online resources, mostly in the pre-SO era. I learned BASIC, Perl, PHP, and Python entirely online. My impulse was always to just Google things, although I fully admit finding results was more time consuming and frustrating back then. The only language I learned from a book was FORTH, and that's mainly because it's an older language and Starting Forth is one of the few good resources on the language even today.
I picked up a book last month to learn Clojure...how does SO help to learn a language start to finish? I don't even typically refer to SO for syntax questions, I'm sure it has that information but it doesn't seem like a very convenient place to index it. But maybe that's my subset of languages...
I probably end up on stack overflow a few times a week, and it is helpful...but I'd be fine without it if Google would just return better results.
Yes. In the early 1990s I relied on Usenet's comp.lang hierarchy and the awesome FAQs that accreted there. A thorough reading of these could head off a huge number of problems before they manifested as bugs. Here are some examples [0, 1] to give people the flavour, admittedly from about 10 years after I had moved on.
[0] http://www.faqs.org/faqs/C++-faq/part1/ [1] http://www.faqs.org/faqs/C++-faq/part5/
Stack Overflow gave you a central place for you to ask questions, and (within a pretty reasonable time frame) start to get suggested solutions to try and consider.
It depends on the topic/domain, but I have fond memories of being on various mailing lists, and there was also usenet.
I don't think of the developer eras as pre-SO vs post-SO, more pre-Google vs post-Google, though SO has definitely been a net positive.
- pre-web: experts concentrated on Usenet
- early-web: Usenet decline and counter-productive decentralization
- SO (and others): recentralization
I think the SO guys just had a good-enough formula at exactly the right time and everybody jumped on fast enough
On the one hand, there is a slice of history in which SO absolutely deserves this much credit, even if this particular hyperbole is anachronistic. Early on, and for several years, SO did genuinely provide a single place to find relatively high quality/trustworthy answers to a huge range of programming questions.
On the other hand, I think that shark has been jumped for many years since. At least for my usage, I deliberately avoid clicking SO links until I’ve exhausted other promising resources (first party docs, reputable forums and blogs as you’ve mentioned). Because the quality of SO content is generally not just terrible, but because the gamification design they touted as producing quality can’t keep up with volume or time.
Nearly every SO link I’ve clicked in recent months has either been full of garbage answers (with maybe something helpful buried in comments), has an accepted answer years out of date prominently displayed over several more correct answers with no/few upvotes, or tumbleweeds because apparently even moderately difficult questions just aren’t interesting to contributors.
And I’m certainly not retracing my breadcrumbs to try to fix that, which would probably make me feel guilty if I didn’t find the whole enterprise of SO/SE skeezier and skeezier as it grew.
Honestly it’s a shame. I don’t care a bit for their solution, but it was really great to have such a reliable resource when it was one.
yep, Stack Overflow eliminated a whole ecosystem of fantastic personal blogs. I get a ton of value out of SO, I'm not trying to hate on it unthinkingly, but there's tradeoffs in everything.
I've seen plenty of examples on SO where the accepted answers are actually wrong. Not wrong as time has moved on, wrong even at the time. Early SO is especially guilty of this kind of cult of personality that built up around certain people, so whenever they answered they would be given the accepted answer, even if it was wildly incorrect and/or low effort.
It's an incredibly useful resource but it's not as though if it disappeared tomorrow people wouldn't find a way.
SO changed some of that landscape, but it was mostly a better ExpertsExchange.
To say nothing about how outdated some of the results are. I tried exactly what Joel suggested. I typed "Rich Text Editor" and searched stackoverflow.com. All top three results were at least a decade old (okay, the youngest was like 9 years 7 months, but I'm going to round it up). They were closed, jut clogging up search results with deprecated answers.
In the time before Stack Overflow, I agree there were many good sources online. I also agree that the printed PDFs of sources that some people passed off as books were horrible. But I do remember a lot of very good books at Barnes and Noble.
Only know, having 10+ years of experience behind me, I find myself stumbling upon SO because I know exactly what I'm looking for. In other words, my path to finding the answer is shorter. So it's just a time saver.
I find issues on Github (for open source software) to be frequently of a similar value to me.
Even more likely, you would get links to Experts Exchange, which was ad-riddled with the actual answer behind a paywall. I'm glad that SO was able to at least kill that business model. Someone should do the same for Pintrest and their dominance of Google Images.
I personally disagree with tdeck, Joel and Jeff deserve a lot of kudos, as an oldie myself SO was an absolute game changer for programmers.
If so, that was a catch-22 for them. Either leave them available and watch the only thing making your site useful be rapidly transcribed onto a different and now more popular site (whether by people playing into the gamification or scraping as used to be the norm doesn't make a difference here), or close it off and allow their more use hostile experience to force them into irrelevance. That's a tough place to be. By the time it became an obvious problem SO was probably too far ahead to catch even if they pivoted immediately, as I'm not sure anyone ever really felt any loyalty to EE with it's poor usability bordering on UX hostility.
Stack Overflow ain't perfect, but it's amazing to see how impactful it's been. Especially the unix/superuser stack exchange sites for having useful tips that would be a pain to find elsewhere.
Especially since Stack Overflow was created specifically as a better expertsexchange (with a better name too).
Podcast 1, April 2008
https://stackoverflow.fogbugz.com/default.asp?W6
One thing we are noticing is that the book market, the programming book market has just completely vanished. It is falling apart, catastrophically. The programmers I know don't really learn new technologies from a book any more. What they do is they find a tutorial on the web -- maybe -- and they try to do something and then they page fault in knowledge. Basically, they get stuck on something and they either post to a discussion group, or they type their question into Google.
And those are the two things we want to serve basically is the posting to the discussion group and typing things into Google. Our longer term goal, if we’re successful, is that you're trying to figure out how to do something in Python like how to merge two arrays in Python and you go to Google and you type "merge two arrays python" and submit that, and our goal is to be the number one hit that comes up with a really good edited answer to that question that some individual has contributed and maybe other individuals have edited.
-----
So then you go search on the Internet for "Mac remote desktop connection beta expired" and you get all kinds of discussions; people discussing what to do and how to work around this problem, and "how stupid is Microsoft that they can't solve this problem." What's interesting is that within five days Microsoft had indeed released a new version of it with the expiration removed. So, it is still the beta because they’re still late but it’s not actually telling you that it’s expired anymore.
So that's fine, but here's the point: in the mean time, all those previous blog articles about this thing being removed are still the results you're getting from Google. And so the number one result from Google doesn’t know about the new thing – the fix. In other words, there is something that happens when something is broken and then gets fixed. The brokenness gets into Google and gets page ranked and that tends to sort of dominate the results for a long time because it’s got the earliest dates on it and a lot of the times you're trying to solve something and you find a discussion on the Internet that says "the solution to this problem is there is no solution and you are borked" and you can't do anything about it. And that's wrong, that's no longer correct, you're not looking at the correct information anymore.
One of our goals is to have a place where if somebody posts a wrong answer or they post an answer that used to be right but it becomes wrong that there is a way to remove that and to get that out of the site and to get the new right answer at the top of the page.
--------------------
Podcast 4, May 2008
https://stackoverflow.fogbugz.com/default.asp?W781
So what are we actually going to bring to the table that actually makes us better, or at least different, than these other programming communities? And I think one of the things we have going for us - and it sounds kinda obvious - is when we have pretty large audiences that we're gonna say, "Hey take a look at this thing we're doing." Right, so... you know, it's kind of like when Nine Inch Nails did digital music distribution, and when Radiohead did digital music distribution, all the commentators, when they talked about that, said, "Yeah, that's no problem, you can do exactly what they did if you have a band. Just one: be Radiohead, right, two: put digital music online." So, we've built up...
... Yes, yes, so we're hoping that having large audiences that we're involving in this process, through this podcast and through the blog and so forth, is one of the reasons that it's going to be different...
------
Spolsky: So that was the question, I guess, that everybody keeps asking, "why another one, and how are you going to hit that so called critical mass?"
Atwood: Right, well, first a bit of terminology. So, it's not exactly a forum. I mean, when I thought about this and Joel and I were initially talking about this, I framed my mind in a way that said, "OK, this is a forum that we're building." But the more we looked at it, it's not really a forum. It's more focused than that. Cause forums have a problem, and I've discussed this on previous podcasts, where you can talk about anything, right? And that ends up sort of, you end up chasing your tail in some way. When you can discuss anything, you end up discussing nothing. So, there's a very laser-tight focus on question/answer that I think sets us apart from forums right out of the gate. And then also, and I don't think we've actually discussed this publicly, but there's going to be a Wiki-like aspect to the pages as well. So the questions won't, hopefully won't go totally stale over time. Because once you get enough trust in the system, you'll actually be able to update the questions, point people to different areas as questions get old, and so on. So those are my first two observations out of the gate. What would you say, Joel?
----
See also this "Google Tech Talk" by Joel Spolsky in April 2009 when he talks in detail about the design decisions they made with StackOverflow - https://www.youtube.com/watch?v=NWHfY_lvKIQ - again they knew exactly what they were trying to do
(Their header files are still very informative! But much less so in the Swift era, sadly...)
To use your analogy, I’d really like to walk as much as I used to, but they ripped up all the walkable districts to build highways!
I don’t think things are bad across the board, at least. For example, you can get a very long way in Javascript purely from MDN rather than needing SO.
Though for those of us who has been doing this for 15 years, that is not the case.
I remember the "Days Before Stack Overflow" and Joel is giving himself a bit too much credit here. Before SO, when I googled a problem I would often find a solution on a blog, personal website, or some community's PHPBB/vBulletin forum. Remember, this was 2008 we're talking about. The UX was undoubtedly less consistent, but it's not like we were rushing off to the library to look up PHP functions and CSS 3-column layouts.