Ask HN: Where does one search development advice these days?
In the good old days (at least since online became a thing) I would have turned to the Usenet and would have got more or less meaningful responses within a couple of hours. When the Usenet started dwindling in relevance web forums took its place and eventually StackOverflow. But now it seems all these three places have become irrelevant
* The Usenet has become utterly irrelevant
* Equally web forums
* StackOverflow has archival value but for the rest it is a wide desert of 0-answer questions
* In my current case (an Android issue) even Google's own forum (https://groups.google.com/g/android-developers) appears to be only a honeypot to train their spam protection :)
So is there a place to turn to these days when someone is hitting a roadblock with a specific development issue or have they completely disappeared?
Thanks
111 comments
[ 5.3 ms ] story [ 195 ms ] threadI really gave StackOverflow a try, and I have no intention of writing an answer ever again. I took 30 minutes to write a very detailed answer to a question, only to find out that the question has been deleted days later.
Looking at similar questions, there are 40k+ unanswered questions, mostly very low quality and from users with almost no "karma".
Why bother answering, when answers must be accepted by the poster and poster does not even know they should accept an answer in the end?
StackOverflow needs overhaul, but at its current size, we're better off starting something new.
Yet it's hard for me to find a single decent question that hasn't been answered any time I'm on StackOverflow looking to procrastinate by something work-adjacent.
It's clearly working and it's been working for years. In fact, it's even harder to get karma now. I don't know how I got to answer so many questions back when I used it 6 or so years ago because now any of those questions I answered would've been answered in minutes like they are now.
I known this sounds badly and I'm not for gatekeeping, but this based on real life. If someone does some effort to answer a few questions first before asking themselves, they're more likely to be serious. Otherwise it's like those people on GitHub who open a ticket in your free repo and harrass you to fix it because they have a demo tomorrow!
BTW: writing detailed response from scratch should be an exception. In most cases the answer is already there in some existing question, but the person asking doesn't know some keywords to find it. So you can use your knowledge of the subject and point them to existing answer. It's faster this way and avoids duplicated content.
I go there to ask questions. I’ve asked nearly twice as many questions as I’ve answered.
I have gotten some very rapid, useful, answers to vexing issues.
I’ve also been treated quite badly. They seem to have a culture that assumes people that ask questions are a “lower caste” than ones that answer. Look at the folks with five- and six-digit scores. Most have single-digit question counts; with that digit frequently being “0.”
Shrug. Whatevs... I don’t lose any sleep over it. I haven’t been asking as many questions, lately. That’s because I haven’t been getting answers lately. Maybe part of the issue is that my current questions are a quite difficult and “production-related,” compared to my older ones. I have noticed that many answers tend to be rather “academic,” in nature, which I like, but that tell me that the person answering may not have experience applying the answer in the context of a shipping application.
I have learned to improve the quality of my questions, over time. One of the by-products of the way I’ve been treated, is that I have gotten better at doing self-research, and figuring out the answer on my own.
I’ve always been quite good at arriving at solutions on my own, but it takes time, and, quite often, a response to an SO question, even if done so in a condescending manner, would deliver an astonishingly quick answer; frequently with some orthogonal viewpoint that makes the answer more valuable.
I’ve also learned not to “slap back,” when someone is a bit snotty to me (I’m quite capable of doing so). Even if they aren’t being nice, they are doing me a favor, and I appreciate it. I don’t go there to make friends. I go there to get problems solved.
There's two options here on what could have happened:
- the community deleted the question because it did not meet the quality criteria
- the user self-deleted after the answer was posted
To avoid the first case you need to understand roughly which kind of questions get closed and deleted on SO, and simply avoid answering them if you don't want your effort to go to waste. The second case mostly happens with users posting homework (in an effort to remove the evidence), which are cases where answering is somewhat discouraged. But if the question is generally good, you can flag that case for moderator attention and it will likely get undeleted. Once your answer has an upvote, the asker cannot delete anymore.
It's not that I know the correct answer, that's why I'm reading, but I do know what does not work, and all too often that's all I see, just pages of things that are obviously not right.
I've found I just have to abandon the internet entirely these days and start reading the source code. It's really time consuming but it's starting to become also the fastest way. :-/
And yes, I usually go back and add an additional answer if I find things out, usually starting with "none of these are correct."
It's eternal septembered. What a hard system to fight off. I think wikipedia has done it but that's about it.
A similar situation is when you have a working answer, you know that it is not particularly good (inefficient, poor handling of edge cases, etc.), yet all of the answers are along the lines of your existing solution.
Programming problems are quite often a case of how something can be better solved. Consider the textbook example of sorting. The problem itself was always quite easy to solve, yet considerable amount of research were put into finding efficient algorithms since naive approaches are quite inefficient. We are lucky today since languages or libraries typically provide both the data structures and algorithms, but I cringe at the thought of how inept my code would be if I was relying on SO quality answers while learning how to program in the late '80s and early '90s (since there were many cases when you had to roll your own).
Seems there’s not much point putting effort in to do something “properly”.
Lots of people will go read your answer and upvote it. The fact that the questioner didn't check it is something you should mostly ignore.
Software Development in 2020, everyone.
This perfectly describes what our industry has become :)
> Why bother answering, when answers must be accepted by the poster and poster does not even know they should accept an answer in the end?
There is no obligation to accept answers. Often the accepted answer isn't the best answer anyway.
I have like 3 karma on my stackoverflow profile but most of my questions get answered provided it’s tagged well and is formatted well.
The karma system also rewards upvotes more than approved answer in practice, since just 3 votes will be more karma than approved answer.
Either that, or they need a way to nominate answers to no longer be relevant or current.
The current state of SO would have confused the hell out of me when I was a beginner. It seems like 90% of answers are outdated in some respect.
You can add this to Chrome by going to Settings -> Manage search engines -> Add. Name it 'Google (Within Last Year)' and make the Query URL 'http://www.google.com/search?q=%s&tbs=qdr:y&tbo=1'. Then set it as the default.
This filters out of date and usually irrelevant search results across the web. You can override it manually from the 'Past year' dropdown if the results are not extensive enough, which I do maybe 5% of the time.
Would you happen to have a few suggestions for Android?
Your comment seems to be missing the fact that people are interacting in chat because that's how they like interacting at the time, and that's why they're in chat at all.
And that maintaining a wiki of coding advice is no alternative as they just want to kick back and talk shop in a chat.
Btw I've never heard "um, go read the logs" in my life in that context. And certainly not on Discord which has no good way to read them. If that's something that you're scared of and it's stopping you from asking questions, you should go ahead and shed that.
And to your first point, I think people use services like Discord because it's the only thing available. If Discord added a few more discussion formats other than just chronological chat log, people could choose the right tool for the job. Right now it's too hard to sync content/users/permissions between Discord and other services like Notion or Google Docs, so people just keep using Discord for their info dumps even if it's not entirely suitable.
Already, certain servers I'm in have entire channels dedicated to FAQs, but they're extremely difficult to maintain / edit / comment on, especially if the original maintainer loses interest.
I'd love to see some kind of Q+A system built-in, so you can skip all the fluff and meming that can happen between the good bits of conversation. Something like StackExchange but a little more casual and well-integrated with something like Discord. (although ideally it would be an open-source solution not tied to any one chat platform)
Awful searching experience, gated, so many problems. But that's where the people are. I only hope Matrix can improve their UX and encourage at least some people to migrate there instead
So, essentially everything is a chat these days?
I really wish forums were still popular, I love the elixir forums for finding info but discourse is such a mess to use (when Googling something, I want to ctrl+f with my browser, thanks..).
Search is better, but something that self organizes knowledge would be amazing.
Especially this. It's impossible to find anything when searching on Discord. There are no threads, just channels which easily get thousands of messages per day. Maybe it'd help if those programming servers had logger bots which would index everything and upload it to a website where one could search it, but it still wouldn't solve everything. It feels sad because most of that content is likely going to be lost (it's not searchable anyway). IRC isn't much better in this aspect, but at least it is a more open protocol and one can easily write a program/script to archive the content. Discord on the other hand bans "self-bots" and unofficial clients.
Another problem is being unable to continue a thread after some time, but Reddit has the same problem with their "archived" posts. I personally don't see much value in "archiving" posts except perhaps lowering mental overhead of the moderators. It's frustrating when I almost have the solution to my problem but end up having to open a completely new thread, wait for the right people to notice it and then hope it gets answered in time before it's "archived".
Edit: typo
I don't necessarily see this as a negative thing, however. It's bad in the sense that sometimes I can't find a quick answer when I just want to copy paste a solution. On the other hand, I found that it has forced me to read multiple different solutions/opinions (often including source code), which deepens my knowledge on the topic and puts me in a better position to make an educated decision.
Sure, it'd be nice to have the perfect answer just slapped in your face. But nothing beats the feeling of finally getting something to work, but also understanding why exactly it works in the first place.
But I can't really believe it to be honest :)
It is a shame that we, the information architects, have not found good solution on this that we dogfood to ourselves.
Discord is where everyone is, but it's so awful just trying to ask a question I almost never get anything out of it. You ask a question and people talk over you and ignore it because it's too "hard".
The only community on Discord I've found that's actually helpful is the Rust server. I love Rust.
I sometimes have a phase where I answer a couple of questions. Usually because at that time I have nothing better to do and get the enjoyment that I could spare someone else the frustration of figuring out something obscure by themselves, just like a random blog post or SO answer helped me with a problem.
So I suggest to always respond with at least a little "Thanks!" or something if you found such answers helpful - it shows the other person that their contribution wasn't a waste of time and was kind of meaningful for at least one other user. Helps greatly with motivation.
IRC used to be amazing, but nobody uses it anymore.
It's attrition.
People got older, had kids, or tech to them simply became a dispassionate job. They didn't have time for the community.
Facebook brought lots of new people to the internet. The sorts of people we connected to online became less technical in aggregate, and we started spending more time on our computers talking to those folks and proportionally less time talking to domain expert nerds. It's zero sum.
Everything became hyper commercial. If you're not making money, why do it? Why spend your time helping people build some other person's commercial product?
The web turned into a proprietary monolith and stopped being cool. It turned into a job. Work at mature tech companies involve so much optimization of small product details that we grow tired of programming as a hobby and don't want to sit through more of it at home. Your coworker is just there for the same paycheck that you get and they're spending the evening zoning out and having fun. Why log onto IRC and chat about technical things when you have to come back and hear your coworkers talk about the great time they're having?
The technical configurability of the past got glossed over with big shiny buttons and flat smartphone UI. It made configuring IRC clients lose its luster. We spend more time on our phones than our desktops or laptops now, anyway.
The proprietary platforms have orders of magnitude more money to make chat look and feel polished.
The new kids aren't learning it. It doesn't look like anything they're familiar with. It looks old and feels crude. There's nobody to carry the torch.
As more people leave, there's less reason to stay.
RIP, IRC.
In reality, people's UX standards improved and they weren't going to stick around with a crappy solution like IRC once chat rooms of the late 90s could even figure out how to show you old messages when you logged in.
Something as simple as getting a notification while offline or reading what was said while you had your laptop lid closed are now things expected since over two decades ago. And they're things IRC is still missing unless you're a power user who gets to fix it only for yourself.
IRC never evolved and never cared about UX. And it lost to efforts that did.
That people on HN including you will use phrases like "shiny" and "bells and whistles" to refer to features like a chat that can show you messages you missed while the tram went through a tunnel for 30 seconds is sanctimony that killed IRC.
It's like listening to an engineer struggle to come up with a single non-cynical reason why someone might like a GUI over a CLI. And then when GUIs take off and users finally get more options and stop using the engineer's CLI app, the engineer curses and shakes his fist at VC funding and proprietary tech and blames the users for falling for bells and whistles and being out of touch with the ideal form of software.
(That's actually a far more accurate representation of IRC worship than I intended.)
My qualms and expectations are indeed very different. For example, fat clients like WLM were more peer to peer, which meant unlimited file transfers, sending voice clips, and uploading custom emotes all for free since they're not sitting on someone's data farming server. I miss that. Thin clients like Discord are of course more profitable but are more limited/onerous even as you're paying a subscription like Nitro to be able to bump up your file transfer to 100 MB and use custom emotes (despite the great UX).
An older person's IRC is my WLM. xD
The technical problems you mention are really non existent with a web client. So it's up to us, the people to say no to proprietary platforms and use it.
Lots of people want to use discord (or any other mainstream commercial chat service) for their programming communities. The problem with that are the enormous masses of people that use discord for everything else and when they want to learn programming its a lot easy to pop by in the discord server and ask why their code doesn't work.
It's different with IRC, because setting it up and learning its ways is not completely trivial. It's about 2 google searches away, just like the fix for that simple compile error that needs fixing. Those that are patient enough for that are usually the ones patient enough to fix their syntax errors themselves. And when you think about it - being patient and able to fix your errors for yourself is exactly the prerequisite a beginner needs for their attempt to learn how to program.
This, and the fact that a lot of hardcore FLOSS contributors refuse to use proprietary platforms for development of their software makes Freenode a very nice place to discuss programming.
I haven't been on the Rust server but I'd guess that one reason it's useful is because your typical Rust developer already knows how to code and isn't a complete newbie. So you end up having conversation between seasoned developers who know how to read docs and can figure out basic syntax on their own.
There is also a community run server but I don’t know its URL offhand.
I thought you were exaggerating, but dear Lord, it's really full of spam (yes, Google themselves say that "Posts about job openings or from recruiters are considered spam."). Just a single legitimate question, which seems more general support than a technical question by a developer.
Being able to ask or answer more or less anonymously without the points/gamification thing is liberating for me! And of course I feel better that I have stopped feeding the walled gardens line slack and friends.
Now with the help of services like irccloud or even just by using a web client you don't have any excuses to not use IRC. Just try it and thank me later; I'm serafeim on freenode :)
Islands do survive, and the IRC freenode #postgresql channel is indeed very useful.
If you frequently get 0 answers, work on the quality of the question - clear, short, include clear code snippets.
99% of the time, the person asking the question didn't even care to help anyone help themselves and, to answer their question, you'd have to play a game of 20 questions with them.
By the time I'm asking a question on StackOverflow, it's a question I couldn't answer after 20 years of learning to solve my own questions, so it's going to be a hard and niche problem with a tiny pool of people who could answer it. I look back at the first questions I asked on SO when I was a beginner, and I kinda cringe at how elementary it was. "StackOverflow is really going down in quality" would not be the right conclusion.
Second, if you shared the question, the reasons it went unanswered will generally be obvious. Got a link?
That will be true, but it does contradict your original statement that there haven't been 0-answer questions which were worth answering. Particularly an experienced developer is way more likely to pose a reasonable question.
> "StackOverflow is really going down in quality" would not be the right conclusion.
I did not complain about quality, I actually did not complain about StackOverflow. I just expressed an obvious change in the landscape.
Joe Armstrong, Odersky, Stroustrup ("a tour" and "principles and practice", both latest editions, are finally good reads), the Go book by Kernighan is a decent one, etc.
Avoid blogs, shitty books by amateurs who are learning while writing (everything by Pact, lol) and other fast food.
Avoid everything related to Java or JavaScript - poorly designed crap, and focus on Scala, Haskell, Erlang, Go and Rust - attempts to fix the fucking mess we are in.
Give me your most beautiful perfect language and I'll find armies of incompetent programmers to create piles of garbage with them.
Give me your ugliest awfullest language and I can find, if I'm lucky, maybe 1-2 people that can do great things with them.
Programming languages are cultures. Precisely.
This is why PHP Java or JavaScript are fucking abominations. They have been started with lack of a culture and discipline to begin with.
That list is the classic "first language" list, the one that is taught to beginners and amateurs.
It used to also be Basic and Ruby. Every "first language" gets the short end of the stick.
You can add Swift and Kotlin to that as well, any language where you might find room full of children twiddling with computers.
You can also be an adult and use these tools, but that's really a personal decision.
You sound like those people that say you're not a real programmer if you don't know lisp.
I don’t think much have changed though. The good answers on the internet have almost always been drowned out by the bad ones. I get that google programming is a thing, but it really shouldn’t be.
Take your time to describe the problem, and be patient waiting for a response.
Developer focused slack and discord groups are another great option.
If you are looking for interaction with humans - Stack Overfow, Reddit, Hacker News. The probability of anyone responding is rather low unfortunately.
Personally I crawl through the web - public repositories on github and gitlab, websites from the SO family, websites of universities, etc. I search through my local library of books. Obtaining an advice from a skillful human is very difficult.
Also understand the kind of instrumentation and code introspection and navigation tools your platform has.
Look into the monitoring solutions, maybe tracers, syscalls, etc.
Be open to changing your build flow, deployment, and testing methods.
The primary source is the computer. Everything else is secondary.
People rely on the internet too much. If you're stumped try solving it without surfing the internet at all. Use traditional toolling.
People don't often take the time to do detailed write-ups while investigating, but when they do... amazing. Fountains of knowledge hidden in closed issues.
Speaking of which - especially in the ops / systems side of things - if you're stuck on an issue, and you've got a gut feeling some repo will be a good source of truth for that issue, search for keywords in the open AND THE CLOSED issues of that repo. So. Much. Stuff.
Also, where would you find the Github page for Android's Room for example?
Yep, every time I visit the github issues page I immediately remove `is:open` when searching.
- Google and go to first SO answers (I totally gave up on asking for advice there, is an old discussion but with low karma forget to ask, it will get closed immediately so you have to be lucky that someone with good reputation made a similar question)
- HN search engine and go to the comments of some post related to what I need. It might take some more time but some of the comments have been gold to me
- Project mail list. I have found people willing to help there
- Finally my last discovery, as others, Github issues. And I am talking about searching and asking. I have lately been susprised how the main maintainer of a big project from one of the FAANG answered doubts, and to me personally helped me with a question such as "I don't know how to start with this", literally.
I guess there will be lots of different experiences here, but to me it would be something like stay away of SO and try to find more specific forums for your need.
The other day I gave a very detailed question on StackOverflow about solving a specific problem in computer vision. I have little experience in CV, but wanted to know from experts into what I should look into or how they would tackle this problem / find other edge cases I were missing etc. My question got deleted since I wasn't able to provide any code, but more of a "This is how I imagine it to do" and that was not a coding question. I tried reddit, but there was no real activity.
"The best way to get the right answer on the internet is not to ask a question; it's to post the wrong answer."
Armed with this ultimate weapon, you can use any resource that is likely to have knowledgeable programmers orbiting it.
Also, the question would still be where to use that ruse. I am not sure it would provide for more correct answers on the Usenet or Stackoverflow.
The common consensus here seems to be that traditional chat platforms are the right tool right now.
The second place-for me-was a Discord group. Since the pandemic the local Python Meetup (Meetup is another resource) group started having its weekly project meeting on Discord. And funny thing happened, there are participants from all across the Eastern US—don’t have to be ‘local’ on Discord.
Recall from years ago (Usenet era) some groups would say you could find them on IRC. I think Discord scratches that itch today.
Discord/IRC is its own beast— a dynamic social experience.
IMHO, for the ask-and-wait the only non-owner forum is STackExchange. I naively divide the successful items at SE as either succinct and simple Google search questions where no answer is on the web, or which enough people create good answers before the mods clamp down (give the mob what they want).
Or, the questions have to reflect deep-knowledge in an active and engaged community. You can call it _what’s hot_ moderated by little Neros or what I’ve started to call the Mod-Walled Garden of moderated SE sub-groups.
These days all the simple questions seem to have been asked before—everything is a duplicate. SE worked because people wanted to take the time to demonstrate their knowledge and get get community kudos for when they were clever or succinct, right? Now it seems the _ground is saturated_. Where are the most engaged and interested parties? For me, a weekend programmer/forever ‘newbie’, it’s in the channels I mentioned.
Remember that word, ‘newbie’? A friend who introduced me to Usenet gave me the instructions that I had to use this term in my question for the social signaling that I knew I was an idiot, and to please go easy on me! Haha
When SwiftUI came out I learnt it by trying out each question about it. This way it was easy to get an introduction, because all were new to the technology and so were interested in figuring the questions out. And the questions were simple enough because no one had much of a grasp.
With old technology you do not necessarily have enthusiasts who try to "figure it out too" at the moment and so it gets more difficult.
https://console.substack.com/
I think one issue is that like stack overflow any site for this would be heavily abused by beginners and people with poor communication skills who can't describe their problems well, effectively burying the interesting conversations under mountains of unintelligible rambling.
You should be able to find it easily at sam.elborai.me.
There are a lot of valid complaints and good suggestions about SO here but those are probably better taken to the SO meta stack where they can be turned into change.
I still find many relevant answers there. Maybe you're mistaking the irrelevance of whatever you're searching for as the relevance of SO. Having said that, "advice" lends itself to discussion and opinion. SO is quite plain about it not being a platform for discussion; it's for Q and A.