about 3 years ago Syntax Podcast
Help Me Help You - How To Ask For Help
- 00:35 Famous things not to do when asking for help
- 02:00 Provide reproduction of the issue
- 03:28 Reproducing illuminates the problem
- 04:08 Post code so others can run it
- 05:21 Have reproduction ready when asking
- 06:18 Online reproduction is most helpful
- 07:24 Be responsive in chat for quick help
- 08:11 Where to ask for help on libraries
- 09:25 Don't just +1 an existing issue
- 10:32 Search for similar issues first
- 10:58 Be nice even when frustrated
- 12:25 You're borrowing others' code
- 13:34 Frustration doesn't help anyone
- 14:26 Provide lots of context
- 15:03 Always be respectful
Where to ask for help on libraries
Scott Tolinski
Is to don't do a plus 1. Oh, me too. I'm also having this comment. Yeah. Maintainers hate that. Either leave an emoji or add some context.
Scott Tolinski
And it turns out it's like an actual bug in the library, but somebody was having the same problem on Linux.
Scott Tolinski
So I was able to go into the issues. I found that Problem even though I'm not on Linux.
Scott Tolinski
issues discussions? What's your initial reaction there? Always GitHub issues is for me. I'll go to GitHub issues and start searching. I'm gonna search for
Scott Tolinski
the maybe, like, if if it's a context thing, like, I'm gonna search for Svelte Or whatever the context is in which I'm using this thing to see if other people are having it. I also was having an issue with a,
Online reproduction is most helpful
Scott Tolinski
is like you mentioned it to be responsive, If you are not able
Wes Bos
reproducing bugs and getting stuff fixed quicker.
Scott Tolinski
experience the the error. Because Oftentimes, that's like one of the things that
Wes Bos
And you're up and running. So that's those sort of environments have been a major benefit to, And I think, like, for beginners, sometimes you don't necessarily know what to tell the person. But if I have to keep asking questions and extract
Wes Bos
You make a whole GitHub repo with a reproduction and you say, alright. Clone it. NPM install. Blah blah blah blah. But now, honestly, it's amazing. You can give somebody an a entire environment front end and back end. They don't have to set up any weird servers or anything like that, and they can just click the code sandbox, Stackblitz, whatever,
Don't just +1 an existing issue
Wes Bos
like chatbots
Scott Tolinski
on Mac OS as well, adding some context.
Wes Bos
For your issue first, I don't even think we hit that is Mhmm. Sometimes
Wes Bos
of the issue you're having. You don't have to like
Wes Bos
That's always a frustrating thing is that when you paste this, like, an error in and if the error has specifics about your code,
Wes Bos
it's a very common thing, and it pops up over and over and over again. And Quite honestly, the AI, to get help because certainly
Scott Tolinski
I'm also seeing this issue provide a reproduction.
Wes Bos
like, text know how to ask for help. And,
Have reproduction ready when asking
Scott Tolinski
You can see the error happening in action, and that makes it so much easier to Like, that's rude. That's super rude. So, I mean, if you're not, like, willing to is the constant stream of issues into repos Therefore, it is very difficult for me to create a reproduction
Wes Bos
I can quickly say, okay.
Scott Tolinski
running in a browser window. The code's all there and the error is visible to the library author. You could just click that link.
Wes Bos
Because sometimes it's honestly it's just like You could be I do this all the time. I struggle on something for hours, somebody
Scott Tolinski
The the worst thing you could possibly have would be a screenshot of your code. The next worst would be, of a similar nature,
Famous things not to do when asking for help
Wes Bos
And it's, like, dirty and it's sideways and it's blurry and there's a foot in the background.
Wes Bos
extra work on our end or just not it possible on our end, you know. So here's some tips that we can use to to get help. Yeah. Yeah. And and likewise, you know, I I think it's One of the bigger sources of burnout for open source
Wes Bos
I see this all the time. I'll get an Instagram, and everything are making this thing much easier because you might a search for a specific issue and it doesn't a 100% hit the, a library.
Wes Bos
And then they allow me to see that photo once, So I I think you had a really good point there is that you're searching
Wes Bos
and are willing to help people. But You got to put in a little bit of effort to make make it so that, to get help. And that's that's what this whole podcast is about is take those extra steps to get help because Putting himself in the context of somebody else. And I asked him, like, what's your pet peeve of, like, when you have it? And he says, my only Pet peeve is vague questions such as I need help, I am stuck with an issue, and my code doesn't work. That's kinda similar to the hi, you know. Totally. They don't provide any context or information as to what the issue is Or with the code, I usually find that I have to ask multiple basic questions such as what the error is, what the code is causing. It can be very repetitive. It's true. It's like, I'm thinking about like Cloudflare Worker. I had an issue the other day that I was Working through, and I needed somebody to sort of bounce some ideas and help me with it. Do you what do you where do you go first? Do you try it. Jump in the Discord. Do you try go on Twitter? Do you try go in the GitHub
Wes Bos
Every people who who put this stuff out love to help people, you have to, like, oh, let me genericize But the AI searches will make that a lot better because
Wes Bos
don't necessarily
Wes Bos
like, single view message. So somebody will take a a photo of their, like, laptop,
Provide reproduction of the issue
Scott Tolinski
it can create some illumination
Scott Tolinski
The owner or the maintainers
Scott Tolinski
most of the time,
Scott Tolinski
understand The problem you're having is the biggest barrier for them to understand what the problem is. It used to be Especially in a chat scenario. If you're in a chat scenario, like you you said, you you post the high and then you wait and all that stuff. Like, that doesn't work.
Scott Tolinski
things to do as a part of submitting your issues, we get it. You're already frustrated. There's a bug. But the number one thing you need to do when submitting issues,
Scott Tolinski
When you're actually going into the process of creating a reproduction, There's there's no sense in getting angry at somebody else for an effort that they've put forward.
Scott Tolinski
of, Hey, I have a very specific context in which this is breaking and my code is not open source.
Scott Tolinski
creators and then my version number and then posted my stack trace as well. Just so it's not like
Scott Tolinski
see that and fix it right away. Other times, they might see it and say, alright. Maybe I'll do this later. Or maybe they say, alright. This guy's being a jerk. I'm just going to ignore this. I mean, there's there's so many different ways that that situation can go. So I think the number 1 and probably most annoying as far as And be responsive as possible to them or else, you know, if I'm that person trying to help, I'm I'm gonna be bouncing along. I have I have a question for you. Like, let's Say you have an issue only on Mac OS, If you have a bug in a library and you need help, well, we're going to help you understand the best way To get that help, my name is Scott Polinski. I'm a developer from Denver. With me, as always, is Wes Bos. What's going on, my man? Hey. Yes. It's Really funny that I think people, especially people who are new to coding,
Scott Tolinski
or or ways that you just straight up can't like a Stackblitz or something where you have your entire application
Scott Tolinski
into your mind as to what the problem actually is. And sometimes it even fixes the problem because by taking A lot of times it does, I think.
Scott Tolinski
of this issue.
Scott Tolinski
That said,
Frustration doesn't help anyone
Wes Bos
if I have to, like When you are is really great, especially, like we'll talk about I guess we can say the next one here is be responsive,
Wes Bos
I asked AJ who does the support in my Slack room. He's amazing. He is so good at
Wes Bos
Information from you.
Be nice even when frustrated
Wes Bos
And And then it goes away because on Instagram you have to press like whatever. And it's just like there's so much more you can do Why am I wasting my whole Saturday on this thing? is Have that ready by the time you ask it. Like, people tweet me or, search overlap,
Wes Bos
People let stuff fly by accident or on purpose or for whatever reason. And I think you have to remember, like,
Wes Bos
your Irritation level is at an all time high. I've certainly been there myself, and it's incredibly frustrating.
Wes Bos
3 hours in to a bug,
Wes Bos
that's incredibly frustrating because you think, like, how this stupid thing won't work. You know what?
Wes Bos
And it was because you did didn't take a second to ask in the chat Or to to do any debugging, but they just think where you're just copy pasting
Wes Bos
like they go to 90 on how angry they are. And then I have to be like, hey. Like, a couple times I've had to be like, you have to remember that there's humans on the other end of this thing. Walk. Yeah. Exactly. And it it needs to cool off. Yeah. You know what? It is one of those interesting things. And here's something that you should remind yourself of as a developer.
Wes Bos
I've gotten plenty of frustrated emails from people who,
Wes Bos
careful because you're gonna have egg on your face when somebody says, okay. The issue was x, y, and z, Super cool.
Wes Bos
you did this. Right? And it it's not an issue with the library. It's not an issue with the package or the implementation. And, I'm probably doing something stupid here.
Wes Bos
that
Provide lots of context
Wes Bos
It can be a little bit frustrating. So try to provide as as much information as as you possibly can.
Wes Bos
You're going to get better help, and you're going to move along your way, and you're going to be happy in coding much faster. Yeah. Totally.
Wes Bos
He says, in the rare instances where someone provides not only their error, but also a link to the code as well, I almost fall all out of my chair, it's not The value, right? And that was the variable that you cannot access.
Transcript
Announcer
Boss, and Scott el Toroloco.
Announcer
the craziest, the tastiest web development treats coming again hot. Here is Wes, Barracuda,
Announcer
Monday. Monday. Monday.
Scott Tolinski
Welcome to Syntex Even though it can be annoying, it is one of those most important things if you want to get help with something. Yeah. Us. And at the very least, if you don't have a reproduction, repository that you can clone and I'm I'm I'm saying that this is no longer just a Linux issue. This is an issue also I I guess the gist. And then the next And one of the things I have in our list of little helpful to do's here Try. And then the best, the very best would be something like an online, So the context I added to that GitHub issue was but ultimately
Scott Tolinski
on this Monday hasty treat. Hey. I'm also having that issue.
Announcer
Open wide dev fans, get ready to stuff your face with JavaScript, CSS, node modules, barbecue tips, get workflows, breakdancing, soft skill, web development, the hastiest,
Scott Tolinski
Famous things that you shouldn't be doing and how to get your help. How to help me help you in GitHub repos.
Be responsive in chat for quick help
Scott Tolinski
because oftentimes, And don't forget to subscribe in your podcast player You are there and available to respond to
Scott Tolinski
And people are busy. There it's not a help desk. They're not sitting around and waiting for you. Whatever. So if you happen to get somebody's attention, respect their time and respect their attention
Wes Bos
with because now I'm sitting here waiting for you to type out your entire string of whatever.
Scott Tolinski
If you want help and you want help now and you're in a chatroom scenario,
Scott Tolinski
make sure that when somebody responds to you asking for clarification or questions, or prepared you know,
You're borrowing others' code
Scott Tolinski
You are just a borrower It's just making your ego feel a little bit better because You you have a a full diaper.
Scott Tolinski
you know, they're they're doing it for fun or for help of the community.
Scott Tolinski
And you getting angry at somebody is not helping the community.
Scott Tolinski
be the person to fix the problem or whatever, I'm I'm not gonna search for things necessarily in my stack trace, but maybe, like, Search for the method that I'm using that's breaking. I'm gonna search for, us quickly to a chat or anything like that are just there at the exact right time to see it.
Scott Tolinski
attempt to fix the library itself if there is a problem with the library
Scott Tolinski
Most likely to work on that code many times or,
Scott Tolinski
not being paid it's like a webcam library for Rust.
Scott Tolinski
of someone else's code. Right? Mhmm. And Yeah. By taking
Reproducing illuminates the problem
Wes Bos
I'd say most of the time, you need to have a reproduction. But sometimes it's simply just a, Hey. Do you notice anything going that I'm doing wrong here? Yeah.
Scott Tolinski
It's very well possible that you will discover that the bug is entirely user error based.
Wes Bos
And
Scott Tolinski
The problem out of the context that it exists in and trying to reproduce it in a clean repo CS.
Scott Tolinski
So having a reproduction,
Wes Bos
because sometimes do something and they send me a message in Slack
Search for similar issues first
Scott Tolinski
and say, hey, do you notice anything,
Scott Tolinski
like, blatantly wrong about this code? And I'm not looking for, like, library issues. I'm looking for Yeah. Things that I might have goofed up that my linter isn't catching for some reason. Next one we have, I think this might be the last one, is be nice.
Scott Tolinski
Then they make it generic. Yeah. Yeah. But that's a really good point. One interesting thing that I do now too is I'll often paste my function if it's just a function into chat gpt And then that's taking time out of somebody else's data. Look through this and be like, well, That's not our code. Like, that's clearly And and so it is it's always most important to think, yes, There is a person on the other end who's not only working on this code, people responding the Yeah. That's the ideal. Alright. Another thing you can do here, if possible,
Post code so others can run it
Wes Bos
a screenshot is Sometimes find even better is the GitHub gist
Wes Bos
Send me a DM or whatever. And if it's just like, hey. Can you help me? has taken it's not common for people to take the extra steps, or this.
Wes Bos
just paste it into my editor and, like, click a variable and see all the other instances Of the variable highlight and see how the value is sort of traversing through your function.
Wes Bos
posting your code so that we can have it right off the bat is it will show similarity
Wes Bos
Whereas if you had that all ready to go by the time I get that notification, Often I have to remind myself
Wes Bos
Sometimes it's so simple like, oh, you totally forgot to destructure
Wes Bos
Then I'm sitting there. It's kinda like the high in Slack. You know? Like, What's up? Like, what can I do for you? Hey. And So
Wes Bos
the values in there. Because if I can copy paste it and run it through a linter or
Always be respectful
Scott Tolinski
or drop a review if you like this show.
Scott Tolinski
Library itself.
Scott Tolinski
Head on over to syntax s.f m for a full archive of all of our shows.
Scott Tolinski
And also another quick little thing before we head out here is make sure that the error is coming from Now I can understand the pains or fix the problem yourself. You're saying, I'm frustrated. I need help blah blah blah. Next thing you know, you're submitting an issue on a GitHub thing and and potentially and then I I ask somebody else and they're like, oh, you're a dummy. Is this a 6 minute effects or 2 minute effects? Yeah. You're you're doing something weird here. I I think in order of importance in terms of, like, things that you could have for a reproduction,
Scott Tolinski
Alright. I think that's it. Anything else to add? Should we wrap it up? Nope. I think that is it. Be cool. Be cool to one another. Alright. Peace. Peace.
Scott Tolinski
Like, if you have you're you're you're using a library, you're using a package or something Mhmm. But the code you're writing, best would be an actual there's no sense in getting upset at somebody else If you're like, if I'm borrowing a jacket from you, and I'm sorry, your stupid jacket doesn't fit right.
Scott Tolinski
some other thing. So that's a a small little bit is make sure that the problem is actually coming From the code of the issue or the discord room or whatever it is that you're trying to get help from. Awesome.
Scott Tolinski
has an issue where you're trying to access a property on something that doesn't exist, and you post that to a GitHub issue and it says, Oh, my my, property doesn't have a or my object doesn't have a property in it.
Scott Tolinski
And just again, be respectful. Be nice.