

What have you tried - kamaal
http://whathaveyoutried.com/

======
smoyer
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
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
_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.

~~~
joshAg
I remember having this exact issue when trying to do something fairly basic
with selenium (I was trying to pick it up, so it was something akin to "hello
world"). Sadly, it was too long ago for me to remember exactly what my problem
was, but when my coworker who does regularly uses selenium got back the next
day he helped me fix my problem in about 5 minutes.

------
greenyoda
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
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.

~~~
jdpage
In the case presented, the code is, in fact, already written: it's in Cocoa.
So all the person needs to learn is how to call that code, which will be
generally be different for each application. The reusable bit is already
written; they're asking for the specific bit, and they should learn to write
that.

A library only abstracts the solution the problem; you still have to
understand what you want to do to solve the problem at some level, so as to
integrate the library into your solution. When someone just asks for code, it
is clear that they are not interested in putting in the work to solve the
problem; they are interested in getting paid (or getting a good grade, or
whatever).

I think that one of the reasons that this rubs us the wrong way is because
hackerdom, by definition, loves the process of solving the problem, with
getting paid being a pleasant side-effect. The person who asks "can I just
have the code" is, in many ways, antithetical to the idea of a "hacker".

------
corwinstephen
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
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…)

~~~
itmag
_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"._

Tell me more, I'm curious about this :)

------
lutusp
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
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
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
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.

~~~
delinka
If it's a public, indexed forum, I'd say answering is not a waste of time.
Someone can use a search engine and find good answers years after the original
question was posted.

~~~
richbradshaw
That's exactly it – SO has become a list of everyones problems ever, with
solutions. I frequently find answers to things I need to know on SO, sometimes
years after the person asked.

------
strictfp
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.

~~~
josephcooney
One time my friend trolled another friend of mine by pretending to be one of
these "PLZ SEND TEH CODEZ NOWWW" people. It was quite amusing. The "victim"
did a write-up here <http://buffered.io/posts/go-with-your-instinct>

~~~
BornInTheUSSR
that is hilarious

------
snikolov
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
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
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.

~~~
yen223
I'm not sure about your family member, but folks who don't use their computers
often may be more hesitant to randomly click a "Download" in case they
accidentally download a virus or do irreparable damage to the computer. It's
annoying, but totally understandable.

------
mehulkar
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
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
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
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
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.

------
gtani
Don't have anything substantive to contribute but this is _risible_ :

<http://blog.atnnn.com/p/cheating/>

------
jasonlotito
4 hours in, and not a mention of ESR's "Smart Questions." Here it is:
<http://www.catb.org/esr/faqs/smart-questions.html>

It's a wonderful document and covers quite a bit, going far beyond just how to
ask smart questions.

------
Havoc
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
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_
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
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
Makes a handy shortcut if you want to link lots of people to it.

