Hacker News new | ask | show | jobs
by busyant 2693 days ago
> "Writing is nature's way of letting you know how sloppy your thinking is."

Indeed!

Every so often, I have a coding question and I have an urge to ask that question on StackExchange.

Before I actually post the question, I write a draft question. I usually revise my draft a few times to make it as clear as possible. About 50% of the time, the process of revising my draft makes me realize an obvious solution to my own problem that I had overlooked.

9 comments

If only everyone did that.

A former colleague of mine had a teddy bear on his desk, before you could ask for his advice you had to take the teddy and explain your problem out loud to it. Easily 80% of the time you'd return the teddy and go back to your desk with the solution.

I found when I quit smoking my ability to solve complex problems took a dip, because I wasn't taking the cognitive break to step back and reflect on problems. Once I replaced my smoke break with a walk around the building my work went back to it's usual level.

> A former colleague of mine had a teddy bear on his desk, before you could ask for his advice you had to take the teddy and explain your problem out loud to it.

https://en.m.wikipedia.org/wiki/Rubber_duck_debugging

Somebody at work ordered 50 rubber duckies on ali express, apparently that was cheaper than buying a few or something, so everybody who wanted one got a debug duck.

Turns out you also have to use them for it to have any benefit, and most people don't.

Did many people refuse to ask them questions because of that?
He was the most experienced engineer on the team, if he wasn't judicious with his time he would never get his own work done.
Working as intended.
This is why I talk to myself sometimes, explaining the problem as if I'm showing it to someone else. That forces me to order the disparate bits of information around the problem into a coherent order (rather than bouncing between points as my though processes often do) which can reveal the presence of a missing link that give me an obvious clue to the solution (or at least the next steps towards one). Some might call the jumping mind a problem to be reorganised, bit it often enough leads to random useful "ooh, that's a good idea..." moments that it is a pattern I feel worth not fighting against more generally than when I have a specific problem it is not helping with.
This is exactly what I do. It took me quite some time during my undergrad years to realize that repeating information out loud can be an effective study strategy. It was especially perfect when studying for subjects like biochemistry, physiology, immunology, etc. In these kinds of subjects, there are so many little details/exceptions to know in addition to the large pathways/cycles/concepts that it can very quickly become overwhelming if you are unable to piece all the information together, in order, and think through it logically. Forcing myself to describe everything out loud is the best way for me to identify where my gaps in understanding of the material are and also helps me retain the material better.
The internet needs more of you. Thinking about your problem and a question to solve it leads to introspection, which is sorely lacking in most StackExchange questions. Most posters just let their stream of consciousness out, post it, and curse the lack of answers.
In the 90s it had that, mostly because there was a negative feedback mechanism for poorly thought-out questions. If you posted a question on usenet or IRC that obviously demonstrated you hadn't bothered to invest any effort into reading or trying to solve the problem yourself first, you were flamed.

Over time, as a more general populace joined the Internet, the ethos changed to act more as a support system rather than the more demanding expectations of the past. Presumably that was due to a recognition that newbs did not have the exposure to computing or tech that the prior generations of users had and so the intent was to be more educative so that these new users could learn to solve things for themselves. Alas, that optimism was misplaced as the majority of people are not interested in thinking for themselves but instead just looking to follow a checklist with no understanding.

If you've ever had to deal with customer problem reports, you'll know that isn't just people using SO and related sites.
Yeah, as someone who has to deal with bugs from systems layer to userspace, a non-trivial chunk of reports (not from customers per se) are: "crap blows up, please figure out".

FWIW, some four years ago I wrote this for this "bug filing recommendations"[1] guide for the OpenStack community when triaging lots of bugs.

In my experience, the most and informative and delightful bug reports I've ever come across are from Japanese customers. And obviously, I prioritize those bugs that are competently written.

[1] https://wiki.openstack.org/wiki/BugFilingRecommendations

My most common from end users is, "it won't let me..."

It won't let me login. It won't let me change my profile. It won't let me go to the page I want.

Such a waste of time. Two seconds of thought should allow anyone to realize that is not enough data for me to even begin troubleshooting your problem.

This is how I found I was importing the wrong file after 1 week of working on it...

I was using Welcome.js instead of Home.js

I was happy, kinda. But also, wondering if I solved the issue earlier in the week.

Was anything else happening during the course of that week?
I did this too! Sometimes I use the fact that stackoverflow allows you to post an answer at the same time as the question, and sometimes I just close the tab.

The best part is running into the same problem years later and finding your old answer when searching.

I hope you still post those well written questions. They do add value. If you’re having that issue someone else may too.
Question to HN: In that case is it good practice to post then answer your own question?
It depends on the culture of the place, but stackexchange (like stackoverflow, superuser, etc.) sites allow users to post a question, post an answer to that question, and accept that answer as the best one (the same person doing all these). In these cases, the questions and answers act like one piece of an FAQ or a best practice to educate others. Since stackexchange sites are also inherently wikis, allowing all questions and answers to be edited by anyone (with sufficient reputation scores and reviews by others), it could help improve the quality of the content for such pieces.
I know I hate when I search for something and I find my question on a forum and then the poster responds "Nevermind, figured it out."
Oh, I know. That just makes me fume. And mostly because it reveals the very selfish nature of the poster. As if everyone on this public forum is just waiting to serve you and you don't have the time to make any useful contribution whatsoever.
That actually makes me wonder. Suppose you input your first draft question into a program: is there way to create a simple AI that could "debug" the question itself. I'm thinking of the first five to ten minutes of when someone sits down to pair with you and tries to grok the problem / nature of the ask. Maybe a sentence that doesn't look right based on the usage of nouns and other parts of speech compared to good questions?
Do you post your solution regardless?

If not, it’s almost like an incognito version of the dreaded “never mind, I found a fix”-follow up post.

Nearly relevant XKCD: https://xkcd.com/979/