Asking smart questions is very important for software engineers because you really want to create an image that people respect. Eric Raymond and Rick Moen describe asking “Smart Questions” as an ideal way of being increasingly efficient on learning how to budget your time through your career whether as an intern or as a long time software developer. People are not going to like the fact that you are just using them for answers. It is important to connect and share ideas with people in your field of study. Networking is extremely important especially in these days so you want to build an image where people will be comfortable collaborating with you. You don’t want to be that guy just taking answers from people. Instead ask smart questions, exchange ideas, and then form the solution.
As a software engineer, there are multiple ways to get the job done. In life, you’re told to do things the “right way”. Well what exactly is the “right way”? You could find a solution, but there’s a chance someone has found a more efficient approach to the problem. The toughest thing for a software engineer is trying to find resources, someone or something that can help guide the student into finishing a task. Part of that is asking the right questions. Rather than asking for the direct solution to a problem, ask where you went wrong. Making mistakes is not at all something to be ashamed of, in fact some of the biggest names in the world have made some mistakes. You have to be able to acknowledge that you were wrong, hold yourself accountable, and try to be better. .
This is an example of a Smart Question. The person asking the question keeps the question real simple. The person does not post a huge chunk of their code and hopes for replies. Instead the person explains what the problem is and asks how HE can fix the problem rather than asking someone else to do it for him. The person did not ask the question in a rude way, disrespecting the viewers. Another hint that this was a “smart way ” of asking the question is that this question has gotten many answers. The responses to this question are what you want as a software engineer. You want people to understand what you’re trying to do and you want as much input from other sources as you want.
This example is Not A Smart Question on the fact, that it is unclear if this is even a question. Also the person just posted his code and said it’s not working. According to Raymond, this was a “rude” way of asking for an answer. The reason for this is because the person just totally overlooked the reader of the question and asked “Know someone who can answer? Share a link to this question via email, Twitter, or Facebook.” This is an inefficient way of asking a question because the person is unclear of what they are trying to accomplish and gives no idea what the code is supposed to do.