top | item 4495128

What have you tried

95 points| kamaal | 13 years ago |whathaveyoutried.com | reply

41 comments

order
[+] smoyer|13 years ago|reply
I've had several interchanges that have led me to limit the amount of time I spend trying to help someone.

I answered a question on a forum with a series of other questions ... some were the "what have you tried" variety and some were not. After three or four iterations of "defining" questions and answers, the person I was helping said in exasperation "can't you just give me the code now"? To which I responded, "I don't have the code you need ... but I can help you understand how to write it".

The person's response is indicative of a certain type of person that I no longer try to help. He said "thanks for wasting so much of my time". How is educating someone a waste of their time? I guess it might have been more a waste of my time (especially given our relative level of expertise and pay grades).

So now I rarely give out code and often tell people up front that I won't. If they want to learn, I'm happy to help them learn and I am constantly amazed at the additional insights I gain during these interchanges. If they don't want to learn, then I just stop the correspondence right away.

One interesting side-effect is that I've come to enjoy the few in-person interactions like this much more. Two people and a whiteboard can do a lot of damage to a problem and at the same time, build bridges between those people. Conquering a problem together almost becomes like playing on a team together or fighting in a war (yes ... with far less risk).

[+] gambler|13 years ago|reply
Let's say that learning how to use an API for a specific purpose takes 8 hours of reading badly written docs and experimentation. Let's also say that you did an initial search and found no immediately usable solutions. It would take hours of sifting through garbage to fish something working out of the Internet.

You know the API is popular and you know for sure that someone already did exactly what you want to do. You do not intend to use the API in the future.

Posting a request for the solution on some forum or mailing list takes two minutes. Posting the response also takes couple of minutes, because the knowledgeable responder has the exact solution and doesn't need to search anything. Moreover, once the response is posted, it will become publicly visible and searchable by other people who are solving a similar problem.

Should you post the request for the solution? If your answer is "no", you should not work in engineering.

And if you spend hours of your personal time to scout message boards only to post a bunch crap that boils down to "use the search, ha-ha", the Internet will be a better place without you.

Nobody owes you anything just because you think of yourself as some kind of guru. Not even people who ask questions or request easily digestible solutions. This is not academia. You're not a professor, who can ask his students to demonstrate "effort".

You don't want to answer basic question? Don't answer them. Ignore them. It's easy. It takes much less time than whining about this imaginary problem.

[+] orangecat|13 years ago|reply
Let's also say that you did an initial search and found no immediately usable solutions. It would take hours of sifting through garbage to fish something working out of the Internet.

You know the API is popular and you know for sure that someone already did exactly what you want to do.

These premises are unlikely to be simultaneously true. If the API is popular, your question has probably been asked and answered many times. If you really are doing something unusual, you should at least be able to find a reference to something similar, and when you ask your question you can point to it and explain what you need to do differently.

[+] greenyoda|13 years ago|reply
People probably keep asking "give me the code for x" because they know that someone out there will give them the answer. If they knew that the only reply they could expect to get to that query was a link to http://whathaveyoutried.com (or a curt "RTFM"), they'd be forced to develop their own skills.

By giving them the answers without pushing them to work harder at answering their own questions, we're actually hurting them, not helping them.

But this is a very old observation that long predates programming or the internet. The old Chinese proverb is: "Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime."

[+] hermannj314|13 years ago|reply
Doesn't this go contrary to one of the greatest "benefits" of software - that it is reusable?

But you are arguing that if someone says, "Just give me the code, I don't care how it works, I have a test and if it passes then I am happy" that this is a bad thing.

What is wrong with that?

"Give a man a fish you feed him for a day, Teach a man to fish and you feed him for a lifetime, but you reduce the efficiency of society since the fixed cost of catching and feeding yourself one fish far exceeds the marginal cost of a fisherman catching one more fish." - American Proverb.

[+] conroe64|13 years ago|reply
The problem with your philosophy in the age of the internet is that the question and answer stays up for others to use a search engine to find for themselves. In the style of the Chinese proverb, "Give a man a fish on the internet, and you will be giving a million men a fish"

By requiring everyone to deeply understand every conceivable task they might need to do, you are limiting the amount of tasks a person can do in a certain amount of time.

[+] corwinstephen|13 years ago|reply
I think at least part of this phenomenon can be attributed to what I call the StackOverflow effect, that being point-based incentives. People on SO answer questions much of the time because they believe their answer will earn them karma (or whatever it's called on SO). In fact, I'd be lying if I said Hacker News karma didn't have at least a little influence on my decision to actually take the time to write this comment.

Because of the StackOverflow Effect, people will choose to answer even the worst questions as if they're fair play, simply because they have an answer they believe will earn them a couple points. If points were not involved, I'm willing to bet a lot more people would get told off for their poor quality questions, and a lot less people would continue to post them.

[+] bigiain|13 years ago|reply
I'm not even sure the gamification or point/karma scoring of the question and answer space is responsible. The same behavior was evident in comp.lang.perl.misc back in the late 90s. People would ask "bad questions", and people with barely more experience/knowledge than the questioner would happily provide answers/solutions. I'm guessing this is at least partly showing off "Hey look! I worked out how to do that last week!" And often they'd provide lousy or even dangerous advice, and the "old hands" would be left to try and explain why (for example) copy n pasting from Matt's Script Archive was such a bad idea.

There's probably an endless supply of new-but-inexperienced coders who're happy to show off their new-found skills by offering advice to the even less experienced. I'm less sure there's an endless supply of "old hands" to keep an eye on them.

And I've seen this in areas other than programming too. It's _really_ common for motorcyclists with a year or two of riding experience to be offering all sort of advice to newer riders - advice which riders with 10 or more years of experience will sometimes just roll their eyes at, and sometimes will step in and say "that's not just wrong, but dangerous enough to get you killed if you're not careful".

(and yeah, I've been on both the "barely experience" and "decades of war stories" side of the advice giving in both coding and motorcycling…)

[+] stinos|13 years ago|reply
kinda true, but on the other hand there are enough people on SO that will comment on the question instead of answering it, and the comment will be "what have you tried?" Sometimes I even see comments that really try to puch the OP to start thinking. Although I'm really in doubt if that helps, you cannot expect to change someones mindset with some comments.
[+] lutusp|13 years ago|reply
Over decades I've developed a stock reply to those who don't know how to ask technical questions:

1. What happened?

2. What did you expect instead?

3. How does (2) differ from (1)?

I can't tell you how many times the above simple procedure turned out to be entirely beyond the coping ability of a young programmer expecting a quick solution.

[+] digisth|13 years ago|reply
I agree with most of this well-written post. However, I think this deserves consideration: some percentage of those posters are not, will not, and do not want to be developers. They may be the accountant who is the designated "IT guy" in the office because he is able to unjam the printer or the office assistant/intern who is being given the "do this miscellaneous stuff we don't understand" task and has no idea where to even begin.

It may be hard to believe in this day and age, but there are still companies out there that have no idea that they even need real technical help (and might not be able to pay for it if they did.) Some of you who have done freelance custom software development work for small/long-lived businesses trying to come into the modern world may have seen this phenomenon (I've seen it plenty of times when I freelanced regularly.) The examples used in the post may not fit this, but plenty of SO questions I've read could fit this pattern.

If we /were/ able to be truly frank about it, we would perhaps suggest that they talk to their boss about hiring a professional developer (or Sysadmin, in the case of Server Fault) to do the job that they've been unwillingly thrown into. (edit: There's perhaps a great opportunity to connect small businesses with freelance developers/custom dev shops buried in here somewhere.)

[+] richbradshaw|13 years ago|reply
On StackOverflow I quite often answer questions by explaining what they should read/who they should read up on, and the names of the technologies: A simple answer might be on the lines of:

"What you are looking for is AJAX. You'll need to store your information in a database – as you mentioned PHP, you most likely will use MySQL. The javascript library jQuery has a really nice way to use AJAX, so I'd start by reading up on …, …, … and …. ."

Rather than:

"Here is the code in 3 files that i've just written without testing anything."

[+] Deestan|13 years ago|reply
This is a waste of your time for certain questions, though. The ones ending in "urgent please help" just scream that the poster is going to wait 15 minutes, briefly scan the answer sections for code snippets, and move on.
[+] strictfp|13 years ago|reply
This phenomenon has always existed, and is more famously known as the 'PLZ SEND TEH CODEZ' phenomenon. What happens is that rookie coders get in way over their heads and are unlikely to finish their tasks regardless of the amount of support received. In a desperate last attempt, they turn to the internet looking for a saviour who will hand them a complete solution.

IMO, the best thing you can do in this situation is to inform them that they won't get their homework done for them, and what type of questions are considered reasonable.

[+] snikolov|13 years ago|reply
My problem is often in the other extreme. I tell myself "I don't want to bother so and so, I still haven't tried x." But there's a point at which you should ask for help if you're no longer making progress. Especially if your question is expected to have a relatively quick answer ("take a look at y and do z") that you just don't happen to know yet.
[+] enos_feedler|13 years ago|reply
My wife and I were just talking about this today but in a different context. She is a recent PhD grad and the new PhD students entering her research group email her quite often asking things like "I am TAing course X and I heard you did as well, what should I be doing?" They ask one sentence questions and expect some rich essay of an answer that is going to solve all of their problems. Just lazy if you ask me. So this pattern seems to extend beyond just software (as pointed out in the original post).
[+] Ogre|13 years ago|reply
Just a little while ago a family member who has signed up for a Coursera statistics course was asking if I could help "Download an R program". It took me a minute to figure out she really did mean the programming language, she didn't tell me straight off it was a statistics course, and she's about the last person I would have expected to take a course that involved programming of any sort. But the class does say it's "quite literally for everyone", so good on her.

When I asked if they have instructions on how to do that in the course material, she told me there's a thing that says "click here to download" but she hadn't tried it yet. She literally hadn't even tried clicking the thing that said it did exactly what she was asking me to help her do. Not "I tried it and I got an error" or even "I tried it and it didn't work", or better yet, "I downloaded something and don't know what do with it" no, not even tried.

I'm now dying of curiosity to find out what happens the first time she has to actually write code vs. just typing stuff in she's been handed. I might have to send her this article, we'll see! I've never done any R programming, though it now seems inevitable that I will be doing some in the near future.

[+] mehulkar|13 years ago|reply
I am tempted to make the mistake of asking for the solution almost daily. I am guilty of asking for the solution every few days. Thank you for writing this. I will use these two metrics as way to measure my growth as a programmer.
[+] k-mcgrady|13 years ago|reply
I think one reason this is happening more and more is that programming is becoming easier. Anyone with a basic understanding can download sample code from an iOS tutorial, modify it slightly with code they are given on a forum, and start selling an app. Often when you see people asking for 'sample code' and you ask them a basic question about their project they can't answer because they don't understand. Their project is just a patchwork of code from around the web.
[+] Centigonal|13 years ago|reply
This isn't just a phenomenon in software development. Maybe it was just me, but I distinctly remember classmates getting mad at me back in school when I tried to help them with their work without just giving them mine to copy.

There are people who understand that working at a problem develops skills that make you a more capable, valuable person, and there are those who haven't yet made that connection and seek to avoid work whenever possible. Giving the latter kind of person easy answers strengthens that mental pattern, and can lead to a sense of entitlement.

You can find this behavior everywhere, from school and work ("gimme the answers!") to consumerism ("I'd rather pay $400 to have someone come replace my door/toilet/network router than learn how to do it myself") to trivial troubleshooting ("Oh no, all the text in my web browser is big! Welp, better call tech-savvy friend" or "Oh no, my AC filter needs replacing! Welp, better get handyman friend to do it").

It's everywhere, it's endemic to human nature, it puts an moratorium on personal development, and I'm sick of it.

[+] FuzzyDunlop|13 years ago|reply
The problem with people hunting for working solutions and not knowledge is that, if you're the kind person who provides said solution, you may be inadvertently thrown into a situation where the poster loses all form of initiative and depends on you to get things done.

You might post a code sample, and they will then return to you asking why it "doesn't work." There will be no attempt to debug it, and you realise you might just have left a syntax error in there by mistake. You fix it, and still it "doesn't work." Your frustration increases with each complaint, and the urge to tell them to figure it the fuck out if they've half a brain becomes more irresistible.

It's almost parasitic, even if well intentioned or in good faith, and it's such a drain when you're giving the help that you'll stop answering questions where the poster evidently never tried, or didn't want to.

[+] d23|13 years ago|reply
This is the exact reason why I gave up on trying to help a particular co-worker of mine. When he still couldn't seem to write the syntax for a basic dictionary in Python after over a year of working in the language, I realized every attempt to help him was a complete waste of my time. He wasn't even trying to learn.
[+] Havoc|13 years ago|reply
Its a valid problem-solving approach. The aspiring programmer might be in a bit of trouble if thats his/her only approach, but aside from that its fine.

Also, I dare say most people start by hacking together random bits of code they found on the internet.

[+] itsmequinn|13 years ago|reply
Does anyone ales feel as though the majority of questions like the example in the article are asked by children? I almost always assume it is a young child asking a question like that and one who is still in the process of "learning how to learn".
[+] entropy_|13 years ago|reply
It used to be like that for me, until I met someone in real life who's a few years older than me (late twenties) and who is a self-proclaimed programmer and who acts like that.
[+] rys|13 years ago|reply
What's the motivation behind buying the whathaveyoutried.com domain name just to point to a single blog post? Does anyone know why Gemmell did that?
[+] mcantor|13 years ago|reply
Makes a handy shortcut if you want to link lots of people to it.