DevQuestions with Tim Corey
I am Tim Corey. I teach coding online and my inbox is full of questions from current and future developers. I wish I could sit down with each of you and share the answers I know will help you go further, faster in the world of development. This podcast is the next best thing. On this podcast, I will answer the biggest questions people are asking! Send us to your suggestion for a future Dev Questions at https://suggestions.iamtimcorey.com/ To keep the podcast coming, like, subscribe, rate, and share it with your friends and colleagues. See why thousands of students have chosen to learn to think and code like a professional developer at www.DevForge.com.
DevQuestions with Tim Corey
060 Why Does Stack Overflow Hate Homework Questions?
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
When I post a question on Stack Overflow, I get yelled at for asking a homework question. Why is that a problem? Why do people care if it is a homework question or not? Why can't they just answer the question? These are the questions we are going to answer in today's episode of Dev Questions.
Website: https://www.DevForge.com/
Ask Your Question: https://suggestions.iamtimcorey.com/
Sign Up to Get More Great Developer Content in Your Inbox: https://signup.iamtimcorey.com/
Welcome to the Dev Questions Podcast with Tim Corey. Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology. If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered. Now, here's your host, expert developer and online educator, Tim Corey.
SPEAKER_01Why does Stack Overflow hate homework questions? What's the problem? Why do they care if it's a homework question or not? That's the question that comes up quite frequently when talking about Stack Overflow or other help sites where people get frustrated because they ask a question and it seems like they get talked down to. Like people are upset with them for asking a simple question because it's not simple to you. And you need to know the answer. So let's talk about why people get so upset when you ask questions on Stack Overflow. So, to answer this question, I'm gonna ask a different question. And I want you to think about it and not just think about it, but really think about it. So the question is why would anyone help you? I want you to think and let that set in for a minute. Why would anyone help you? You need to understand why people would help you so you understand why they wouldn't help you. So let's talk about four categories of people. The the big four really of people who are helping other people. So in my mind, there are four people, four types of people that answer questions. Now, of course, this is a generalization, there's other people as well, but these are the big four. Number one is the person who has been there. The person who may be a senior developer, they may be further along in their career, um, maybe even just a year or two down the path, but they have been there before. They've been where you are. And so they see a person who is junior or who is stuck, and they go, Man, I remember how that feels. I didn't like it. I would like to help somebody else. Okay. That's category number one. The person who remembers what it's like and wants to make it better for someone else because they wish someone else had done that for them. Or maybe someone else did do it for them and they're kind of continuing that trend. That's number one. Number two is the person who fills in the gaps in documentation, who likes to find those things that haven't been answered before and give answers to it. The person who maybe they didn't know the answer to your question, but they're gonna track it down, figure it out, and get that answer because they want to be the person that fills in those gaps where maybe kind of trekking into unknown territory, territory no one's gone before. These are the explorers, the the people who really want to get out there and do new things. The third type of person is the person who's on Stack Overflow or other sites for the reputation or the points. Stack Overflow and other sites have gamified the idea of helping people, which encourages people to help other people. If you post an answer on Stack Overflow and it is accepted, you get points. If people like the answer, you get points. If people even upvote your questions, you can get points. There's a lot of ways to get points, and these points, of course, mean nothing other than reputation. The idea that I'm a top 5% contributor to Stack Overflow, or I'm a top 100 in this category, or whatever it may be. The idea of a modicum of internet fame comes out of this. That's the third category of person. And the last category of person is a bit more negative, but it is the person who wants to prove they're smart or smarter than you. And this is where a lot of the negativity comes in. So we'll talk about that in a minute. But those are really the big four categories of people who are there to help you. Now let's talk through your question. Your question may or may not be a homework question, but it's gonna sound like a homework question. So we're gonna talk about a question as a homework question, even if it's not necessarily. We'll talk about how to make it not sound that way in the future, but let's start with just saying homework question. So you ask a homework question, question that's very easily found in you know, in college or in a boot camp or something like that, in an assessment, whether it is build me this or do that, and it sounds very much like it was written by a professor in order to quiz you on something. So the person who has been there before, that person is not going to want to help you because you're cheating. Okay? If if you are asking a question that is homework that a professor gave you and is going to grade you on, well, if you get someone else to do your work for you, that's cheating. And the person who has been there has probably been burned by that before. It used to be with um certifications, other things like that, you could buy test questions. You could buy uh the actual questions sometimes, or even close enough to it that you were pretty much memorizing the questions or the answers and getting certifications. That really burned the certification industry as a whole because it became a meaningless certification because you came in and said, I'm, you know, big bad certification from Microsoft or somebody else, but you couldn't actually do the job. But you look good and so you get hired. Or maybe your resume just has things on it that are not really true. Maybe you say you have five years' experience when you really have two. And that type of cheating gets people ahead sometimes, at least at first. And probably by the time you hit the mid or senior level developer position, you've been burned by at least one person who got ahead of you, who got the job when you didn't, who in some way you've seen a person get promoted or move beyond where they should be because they cheated. That doesn't feel good. So to help somebody else, what looks like cheat, that's not gonna sit well with them. So that's why the person who's been there, the more senior person, isn't gonna want to help you. The person who fills in the gaps, the explorer, you're asking a question that's a homework question. And a homework question is one that is easily answered multiple times over on the internet already. There's nothing to explore. This is a basic question, and basic questions have answers all over the place. It just takes a little work. So for that person, you're not asking them to explore and to expand their boundaries. What you're asking them to do is go find for me the answer that already exists. That's not that's frustrating. That's not what they're there for. The person who is there for points or reputation, they might actually help you, but they might not too. If they're just there for points and reputation, well, they'll probably get up votes even if your answer gives or your question gets down votes. But if they are there to also support the platform they're on, like Stack Overflow, well, if the rules say no homework questions, and they all do, then they're actually violating the rules, which decreases their standing. So you are asking them to do something that could endanger their reputation, the very thing they're there to do, to gain, to grow. So that's a hit or miss one. And the last one is the person that wants to prove they're smart. This is where you get into really bad territory. This is a really negative experience because that person is likely to show that they're smart by showing you how dumb you are. Okay, it's not right, it's not, it's not what you want, but that person's gonna point out rightfully so, this is a homework question. Now they usually go beyond that, they usually get a little too negative, a little too um attack style instead of uh instructional. But this is the type of person that this is what they're geared up for. They're geared up to prove that you're not as good as they are, that you aren't as well versed in the the rules of the site, that you're not um asking good questions and so on. So this person is really geared up to oppose you. So these four groups, only one category really has any incentive to help you, and even that's iffy. So when you ask a question that seems like a homework question, this is why you get chewed up and spit out. Because you don't really have a chance. These four categories, none of them have good incentive to help you out. Only one has kind of incentive to help you out. Most are incentivized to do the opposite. So what if you don't agree it's a homework question? Because I get this a lot. I asked a question, they said homework, it's not homework, it's my job. Yes and no. Okay? Yes, I get it. You're not doing homework, you're not being graded, but maybe you are doing it for your job, right? Well, it's still kind of homework because it's still your job. And the first job you have is to be responsible to try and get your own help, to help yourself. If you just sit by the side of the road and say, Give me money, give me money, give me money, at some point people say, Well, can you get a job? Like, it seems like you're not disabled. It seems like you can actually go and walk and get a job, right? So, why are you just asking me for money? This is what this is like. You are just sitting there saying, Give me help, give me help, give me help, when it does not appear as though you are doing the work that leads up to getting stuck. Because there's a very big difference between a junior developer who has legitimately done the work and got stuck, versus a person who appears to ask the question early. It's fairly obvious because, and this is where you need to communicate well. If the person asks the question and says, Here's the things I've tried, here's why it didn't work, here's the places I looked for help, and I tried these things and they didn't work either. And here's why, and here's what I'm seeing. And you have a history of all the work you've done, people go, Oh, I get it, you're stuck. You maybe you missed something, maybe you didn't know a term, maybe you know, this stuff happens, but they'll be more willing to help because the person who's been there goes, Yeah, I've been there too. Yeah, everyone misses tuples once in a while, you know, or something like that. That's understandable. The person who fills in the gaps, yeah, they're not gonna be real thrilled to help you out, but at the same time, you may be stumbling upon a gap that they can fill in. And if you're not, they may at least go, well, you're trying, here's where I found that. The person's out for points of reputation, they're gonna want to help you because you're asking a good question at this point. If you have shown how you've done the work, done the research, and still are stuck. And the person who's out to prove you're smart or prove they're smart, they're gonna want to show off that they know the answer. And so they're gonna try and post the correct answer. Whether they do it in a proper manner or not, that's often questionable. But the difference between a homework question and a question that is legitimate is how much work have you put into it? Now, obviously, if the question sounds like a homework question, like if you say, you know, in you know, in four sentences or less, explain the you know, the history of tuples, that sounds like a homework question. You know, same thing with with projects. If if the question really sounds like a homework question, then even if you do some research, it still sounds like homework. That's where you gotta differentiate yourself and say, at my job, I have to do this, and for some reason, this part's not working. Here's what I've tried. Okay, that's the difference. So clearly differentiate yourself from homework. You don't want to ask a homework question on the web because that's cheating. Getting answers, looking on the web, doing research, finding the answers, and using that in your homework question usually isn't cheating. Now, if you just copy and paste someone's work, that's cheating. But if you can take parts and pieces and put it together into a working whole, that's not cheating. So there's a fine line there, especially in programming, especially in development, because we do work off the shoulders of each other. It's not like we're starting from scratch every time, but you definitely don't want to just copy and you don't want to act like you were asking for a whole thing. Okay. So I hope that clarifies things. I know that that Stack Overflow, especially, but question sites in general, are a touchy subject for people because people have been hurt so badly by them. I get that. And that fourth category of person is out there. Their job is, their goal is to prove they're better. And that can be hard and harsh. And these sites have tried to make strides to help with that, but on your end, you can make strides as well in the questions that you ask and how you frame those questions. Okay, so hopefully that helps. Thanks for listening to this week's episode of Dev Questions. If you want to hear about your questions answer, as long as it's not a homework question, then go to the I amtimcorey.com, go to podcasts on the link, and fill out the form there. Or if you're watching on YouTube, then fill out a comment in the description. Just ask your question, and I'll see if I can get to it in a future episode of Dev Questions. Thanks for listening. And as always, I am Tim Corey.
SPEAKER_00Thank you for joining us for this episode of Dev Questions. Tim is committed to making it easier for you to become a developer. If you would like to help make more content like this possible, please like, subscribe, rate, and share dev questions. You can also send your questions to questions at iamtimcore.com. Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did. When you're ready to learn to think and code like a professional developer, head over to imtimcore.com and enroll in a course.