Hacker News new | ask | show | jobs
by strkek 3013 days ago

    [09:00] <Someone> Hi.
    [09:16] <Me> Hey, what's up.
    [09:23] <Someone> I have a problem, do you have some time?
    [09:24] <Me> Sure, what's it about?
    [09:27] <Someone> Have you worked with X thing before? I have to do Y thing but don't know how.
    [09:28] <Me> So, I just googled "how to do Y thing in X thing" and got this blog entry explaining in detail, and also this other Stack Overflow answer with a very similar problem.
    [09:29] <Someone> Sec, gonna try that.
    [09:35] <Someone> I got this error "someVariable is not defined". What's it mean?
sigh

    [09:36] <Me> You're trying to use a variable that doesn't exist. Can you paste the code you're using?
    [09:37] <Someone> (Code)
    [09:37] <Me> Replace "someVariable" for "someOtherVariable" and it should work.
    [09:38] <Someone> It works, thanks!
I really, really try to be nice, but there's a limit on how many situations like this I can handle before losing my sanity.
7 comments

I've had the same experience. There's a bright line separating people who want to learn from those who want to offload the hard work of learning onto someone else.

The latter almost always ask simple questions serially - it's obvious they're looking for a sequence of steps to follow instead of sussing out the problem on their own. They want to use your problem solving abilities instead of developing and using their own.

The former usually ask pointed and precise questions - and after they get an answer they usually go away. I say this not to be anti-social (even though I am) but to simply note they go quiet because they're actually working the problem.

This is the point I was trying to make in my top-level comment, although you expressed it much more eloquently.

Practical programming involves dealing often with problems that are messy, obscure, and vague. They don't teach you that in CS101. Some beginners detest that class of problems because purism is trendy, but they still have the patience to work through them, and because those moments are what teaches you programming, they make progress despite their own objections.

Some people simply don't have the patience. They put up a lot of resistance to spending time on any problem that's not immediately recognizable to them. As a result, they never advance in the discipline.

My solution to this problem is (1) avoid instant messaging at all costs, and (2) delay responding to any mail that is either (a) a contextless plea for handholding ("I have a problem, do you have some time?"), or (b) best solved by the asker taking some time to educate themselves.

It's a win-win, because either the asker learns they can solve their problems more quickly by Googling it themselves, or I can limit my responses to a rate that is below my daily (or weekly) annoyance threshold.

"Avoid instant messaging at all costs" is definitely good advice. I usually forget to take three breaths before answering there, but I usually remember before I answer an email. Plus, I have GMail's "undo send" feature enabled so I have a few more secrets to repent before my message cannot be untyped.
+1 to not logging on to the company’s IM. Emailing somehow feels more ‘persistent’ so it’s unlikely that conversation like the one above would have happened in an email thread. Or, people have to come and talk to you in person; in which case they will probably think twice first and maybe solve the problem on their own in the process.
That person lacks some pretty basic development skills. You can roll your eyes or you can teach coding 101.

I actually like teaching coding 101. Not everyone has to, but I do. And I find people generally appreciate someone going back to the basics and explaining the tactics and theory behind a problem, rather than just giving the answer or the steps to find it.

I just think coding is neat, and I love talking about even the most basic ideas. I always find new little improvements on my understanding of fundamentals.

I have had the “even the most experienced programmers spend most of their time having no idea what’s going on. The job isn’t to always know what to do, it’s to always find a way to keep moving even though nothing makes sense” conversation dozens of times. Maybe I’m weird.

It's good to have one or two people in your project community that are willing to help people that don't have much experience at the type of problem-solving and methodical thought that fixing code requires. I am not the most knowledgeable person when it comes to any particular project, but I'm happy to help newbies get steady footing.
I had this problem as well. The same trivial shell scripting problems came up over and over.

My solution was to write a static analysis tool (ShellCheck) that would recognize them automatically and with enough confidence would even auto-answer. It's gotten way more use than I ever expected.

Haven't made much progress on the plaintext question problem though. Some day!

Cool! It's also written in Haskell. I always wanted to take a closer look at that language and this project seems just about the right size!
Just be aware that this was my first proglang project as well as my first Haskell project.

What worked well was unit testing and Haskell. What didn't work as well was inventing adhoc solutions instead of standard compiler techniques like DFA/CFG, and not writing more and better DSLs (in the form of monadic APIs) since they're cheap and convenient.

Thank you for the great tool! I use it.
Yeah, I'm not sure if I'm going against the grain here, but I think it's more than reasonable to say, "you really need to spend some time reading through <name of specific piece of documentation>". Even if they don't like it, and even if they end up not liking you, in many cases, that really is the best - and only - advice that will ever help.
Indeed, and the first example in the article is a little like this. "What is the ticket number" roughly translates to "go search the bug tracker for me, even though I could do that just as easily (or could do with the practice)". Maybe sarcasm wasn't warranted, but at best the answer is "I don't have that to hand, and couldn't find any quicker than you could".

In a real sense, someone acting like this is insulting. Rather than the homeless guy anecdote in the article, it's like someone asking you for money, not because they're desperate, but because they just think you're a sucker.

For the genuinely well meaning and self motivated learners, I agree we should try hard to be sympathetic and respectful.

> For the genuinely well meaning and self motivated learners, I agree we should try hard to be sympathetic and respectful.

I agree with this, but I think part of this is fighting the instinct to sarcasm or hostility even when people are looking for the easy way.

Whenever people start employing public hostility, the people who are deterred the most are the least confident and most well-intentioned people. If you're asking someone else to do your work for you, you presumably don't care much about their time and frustration. But if you're cautious and respectful and already worried about wasting people's time with dumb questions, then seeing someone who's annoyed and likely to snap at you is a huge deterrent.

"What's the ticket number" may not be a productive question, but I still winced at that answer - I can't imagine that a Slack where people are that hostile is one where people feel comfortable asking potentially 'dumb' questions and getting support. Better to stay silent, or say "that's something you can do as well as me", or politely say "their ticket queue actually has a great search feature". Calling out unjustified questions is hopefully less alienating, because it at least shows why you're annoyed, and that you wouldn't do the same to a question that's novice-level, but not rude. And if these questions are too common to handle politely, that's its own serious issue at the company.

I have had plenty of dialogs like this with people who have no ability to look up something or, I often suspect, are too lazy. If this happens a more than a few times and it's clear they have no grasp of fundamentals ("I got this error "someVariable is not defined". What's it mean?") I send them a link with a tutorial or a book and tell them to read it.
Chapter 1: hello world