When it comes to my journey to becoming a software engineer, not only do I have to improve my programming skills, I have to be able to help others help me. There have been many instances already in which some concepts such as pointers in C, and inheritance classes in Java, where I could not fully grasp the concept and was a wall for so long. To change this, I need to be able to collaborate with other programmers to be able to ask for guidance. During these times, there is a certain way to offer my questions in an appropriate way that gets me the answers that I am looking for. Especially after reading How to Ask Questions the Smart Way by Eric Richmond, I think I am getting better at helping others to help me.
Through the guide to asking questions the smart way, I have come to the understanding that in order to receive help, you need to give the potential person who will answer your question clear and concise information without any fluff. By this, I have taken the Keep It Simple Stupid motto into something that I can remember when asking for help: Keep it [questions] simple and smart. As someone who is very new to programming and coding in general, it can be very overwhelming to see the types of questions being asked online. Many users add their code to their posts and ask for very specific answers. At first it was confusing to see for me, but then I realized that the user was merely adding the necessary information to ask for help with one small detail of their code. This sharply specific information given allows other users to offer help for that specific problem, instead of giving a broad catchup solution.
Keeping my question post to forums or discussion boards to only the necessary information needed for the problem is the first step to successfully earn an answer back. Now that the post is not cluttered with extra information that makes my post look possibly unbearing to look at, now it comes to being able to properly propose my question. Since I brought the context to the problem I am having, the best way to find the answer I want is to explain what exactly I am looking for in my answer. Describing what I am trying to do and my end result that I want to achieve is not enough information for an accurate response. I realized through many different users’ posts to discussion boards online that usually when you do not describe the techniques you have tried to do or explain the reasoning behind your thought process, then other users will just give you the “just search it up” or another backhanded comment to tell you to find it yourself. To prevent this, it’s best to give what your initial experiences and thoughts about the problem are, and then ask for a step in the right direction from others. This way, other users are more inclined to respond as you seem like a charming fellow who is willing to learn (which I am).
As I was searching through Stack Overflow to see how other users have proposed their questions to the site, I came across this user who was upvoted and voted many times over in the span of 13 years and 3 months that it was posted. The poster’s question seemed for simple for something to be asked on Stack Overflow, but that’s the point; the user kept it simple and smart. The user asked about what the keyword yield did in the python coding language. This seems like a trivial question which might attract trivial answers, but no “google is your friend!” comments arrived.
The user took the question further than just merely asking what the yield keyword did. Anyone could search it up, even the user knew that. However, the user was able to create a situation in which yield was used. They showed clear and concise code in which the yield keyword is used. They then proposed their goal, which was to understand how the yield keyword interacts with the functions they provided. The user even asked several different questions regarding their expectations that the yield keyword could be doing.
The question was kept simple and smart. It showed that the user has done some reading up on the topic at hand, but still needed that extra push from others to be able to fully grasp the yield keyword. Thus, the top accepted answer was by someone who saw the K.I.S.S question, and saw it as an appropriate question worth giving full effort in answering. It showed that the user wanted to learn about the subject, and because of the way in which it was proposed, it would go on to help other users who had the same question of wondering how the yield keyword works in python. Through this one user’s K.I.S.S question, they got a detailed explanation of the iteration process, as well as how it relates to the example that the original poster gave. If you want to see the user that K.I.S.S’d StackOverflow in a positive way, you can find them here.
Although I’ve seen a poster who definitely K.I.S.S’, I kept searching for another poster who was like me and didn’t know how to K.I.S.S to see how a post that was not simple nor smart fared against users who are not afraid to tell people how it is for not researching their question enough before posting. I definitely do not want to be seen as someone who can’t K.I.S.S, so here is an example that I found of someone who could have potentially been me had I posted without knowing how to K.I.S.S. In this case, the poster was trying to do something similar to the poster who does K.I.S.S, but the contents of their post shows that this was a feeble attempt to gain a quick answer to a problem. This poster was trying to ask about how to add nodes in a linked list in C++. In this case, the user also included their code, but the flaw in their post lies in the way that they asked their question. “Can someone help me,” was the straw that broke the camel’s back.
That user could have been me had I not known how to ask K.I.S.S questions. Users who took the time to even answer the poster’s question did not even give an answer, but linked to another version of “how to create smart questions”. From looking at it, the poster seemed to have not tried to research linked lists in general, and was seeking people online to answer their problem for them. The way that they asked how to add to the linked list for different situations showed that they didn’t want an instance explained to them, but for someone to do their problem for them. Even if that was not their intention, it certainly came off that way to other users. The code that the poster used was the complete code, and not just the add node function, so it seems that the poster did a lazy attempt to find a solution for their problem that they did not research for themselves. This post got 3 downvotes and has had the mortar fire of comments recommending them to draw out the problem himself shows how bad reception can be if you do not K.I.S.S. The user’s post example can be found here.