167

I'm often afraid to tell others that I ask questions on Stack Overflow. A good programmer should be able to solve problems by searching for solutions independently, right?

I feel like if someone knows I ask questions on Stack Overflow, it could leave a bad impression that I need somebody to help instead of being able to solve the problem independently. Is that true?

19 Answers 19

258

I believe your reasoning is flawed.

One of the most important aspects of engineering is: don't reinvent the wheel. Sure, being autonomous and able to come up with your own solution to a problem is pretty important and part of what makes a good engineer. But before doing that, there's something you need to do every single time.

Check for an already existing solution.

Why would you spend time finding a solution by yourself if somebody already did it before and left enough material on the Internet (or anywhere else, really) for you to just pick it up and use it ? It's not about doing it by yourself. It's about getting it done. And if you can find an already existing solution, you're gonna save quite a lot of time.

Engineers are lazy in the good sense of the word: they don't like to waste their time solving already solved issues. You are here to solve unsolved problems, that's why you're valuable. In that sense, browsing Stack Overflow and asking questions is checking if someone already solved your problem. Even if it's a purely technical issue, it'll be faster to ask and get an answer quickly than to struggle on it just for the sake of "doing it by yourself". It'll also be much faster (most likely), and your boss is going to like that.

Keep using Stack Overflow, it makes you more efficient and allows you to work on tasks that are actually worth your time.

  • 55
    Reinventing the wheel may be useful in some cases, and is a good exercise to sharpen your skills. Nevertheless, in most cases, using proven techniques is the way to go. +1 – gazzz0x2z Aug 16 '17 at 10:13
  • 9
    ... and efficiency is what your bosses value over all. – user8036 Aug 16 '17 at 12:06
  • 68
    Sometimes I put a link to a stack overflow question in comments (if its a problem that needs a weird solution) – Ruslan Aug 16 '17 at 14:24
  • 4
    I find SE invaluable not only because it can help me to solve a question but non rare I can get multiples solutions and evaluate the better fit for me. Also there are the "good practices" questions – jean Aug 16 '17 at 16:14
  • 20
    Old Perl hands know Three virtues of a programmer: Laziness (to complete the task with minimal effort), Impatience (want to do it quickly) and Hubris (to take on tasks other consider impossibly hard, and do them well), as coinned by Larry Wall: wiki.c2.com/?LazinessImpatienceHubris – Peter M. - stands for Monica Aug 16 '17 at 21:20
75

I should not tell others that I ask questions on Stackoverflow

As a developer myself, I can tell you that there should be absolutely no downside to others knowing that you ask stackoverflow for help every now and then.

Rationally speaking it is not always possible to either already know, or source the answer to your problem through google searches or researching in books etc. However, stackoverflow as a resource allows you to have access to thousands of able minded developers who are willing to help you with your problem, this should be seen as an invaluable resource.

Any employer, or colleague that thinks less of you for using stackoverflow to ask programming questions, is quite honestly not with it. You should endeavour to find the best solution for your problem, in some situations that may require sourcing for the right answer. It's your ability to determine the best route to a solution that defines you as a developer.

I recall there being an article that came out last year, that interviewed several prominent and well-spoken developers from large companies such as Google, Apple and Microsoft. The article asked each developer what was the silliest thing that they still had to Google or lookup. The answers ranged from the format of switch statements to the amount of bits in a byte etc etc. The point is that it is impossible for a developer to know everything, being able to admit that and seek out the solution via whatever medium is best, is actually a valuable ability to have.


Edit (Thanks to Martin in the comments below)

Article I referenced above can be found at this link.

  • 12
    +1 For this It's your ability to determine the best route to a solution that defines you as a developer. – Mister Positive Aug 16 '17 at 13:29
  • 2
    Do you have a link for that article? – svick Aug 16 '17 at 13:47
  • @svick I've been hunting for it, but can't recall which outlet published it. If I happen accross it i'll link it above. – Digitalsa1nt Aug 16 '17 at 15:18
  • 7
  • 2
    Best answer, in part because of the words every now and then. Because indeed there's a happy medium. The key is really whether you seek to KNOW the answer, understand it, adapt it to apply for you... or whether you just take the code someone gives and try to force it to work without knowing what it really is or wanting to understand any of the background. Typically, it's pretty obvious whether a person is 100% dependent on others quite quickly. But doesn't mean every employer takes the time to recognize it. If you're a solid programmer, I wouldn't worry about appearance, it'll prove itself. – JeopardyTempest Aug 17 '17 at 2:01
26

Good points have already been made, but to add my two cents :

If you were a manager/team lead, what would you prefer : an over confident dev doing it all by him/herself, or one not afraid to seek help/guidance when needed?

I have even heard about companies where "not asking for help" was seen as a negative trait during yearly performance reviews.

But of course, be careful not to give away sensitive business information.

  • 9
    +1 For the last sentence. That's a risk not to be underestimated when a poster's affiliation can be determined fairly easily. – njuffa Aug 16 '17 at 17:14
19

From the perspective of someone who hires and manages developers....

I feel like if someone knows I ask questions on Stack Overflow, it could leave a bad impression that I need somebody to help instead of being able to solve the problem independently.

More generally stated:

I feel like if someone knows I ask questions, it could leave a bad impression that I need help.

This is a trap many developers (and employees in general) fall into.

I can tell you, from first hand experience, the bad impressions have mostly come from those who try to convey that they don't need help.

One of the most important characteristics that I look for in people (not just limited to developers) is their willingness to self-evaluate and recognize when they are in need of assistance. It is this trait that is highly valued because it immediately tells me that the employee is open to new ideas and in a continual state of learning.

Additionally, we no longer work in a silo'd environment where everyone/everything is compartmentalized from each other. We are socially engaged across every aspect of our jobs. "Working independently" doesn't mean isolating yourself from other resources.

Your value as a developer is not in knowing everything, but rather knowing how to access the body of knowledge to develop a solution to the problem at hand.

  • I would also say it depends on the type of question and how often. – ivanivan Aug 17 '17 at 1:06
  • 1
    @ivanivan - asking for assistance is not a problem. Becoming dead weight is another issue altogether. – Allan Aug 17 '17 at 1:12
  • 1
    my point exactly. when I read the question, my mind immediately went to this image - i.pinimg.com/736x/cf/28/7f/… – ivanivan Aug 17 '17 at 1:14
  • 2
    A common saying is "there are no stupid questions", but I'd challenge that and argue that indeed it depends what kind of questions you are asking. Fortunately, if you are asking too stupid questions on SE, you will notice very soon. In some forums, people are asking questions like "how do I program in Unix?". This kind of questions will not become discussed on SE at all, which by the way is why I love SE. – TorstenS Aug 17 '17 at 10:20
  • 1
    @TorstenS - I agree. I always say that there are no stupid questions, but there is sure a lot of inquisitive idiots. :-) – Allan Aug 17 '17 at 12:03
16

a good programmer should be able to solve the problems by searching for solutions independently.

Yes.

If someone knows I ask questions on Stackoverflow, it may leave a bad impression that I need somebody to help instead of solving the problem independently. Is that true?

No. That is false.

Think of Stackoverflow as an extended search engine. Instead of typing in 3 search words in Google and then sifting through loads of results, you are typing a very long search request into a SO question and then checking back later until the "SO search machine" has returned its results.

Also, as everybody who has ever asked a technical question knows, the simple act of asking the question often leads to insight. I have often typed in a long, long question; after typing it in, and before posting, I noticed that my fellow SO'ers would probably tell me that this is a bad question because of X, Y and Z. While working on making X, Y, and Z better, I found the answer. Problem solved.

So, no, you should not feel anything good or bad about using SO in the way it was intended for programmers, it is just a tool.

Watch out for using all the other SE sites too blatantly, obviously, during work hours...

  • 1
    Did you mean typing a long, long question rather than answer? Freudian slip? :-) – a CVn Aug 16 '17 at 13:29
  • 1
    "Watch out for using all the other SE sites too blatantly..." Be especially careful about visiting stackoverflow.com/jobs :p – BobbyA Aug 17 '17 at 21:05
12

Here's another perspective – if you've crawled the Internet (and SO) for hours and still can't find an answer to your question, you may be onto something and moving toward a knowledge frontier. This isn't bad, it's exciting!

Post your question, maybe no-one will have an answer...and if you end up solving it yourself and posting your solution, you will have left a potentially valuable artifact for future developers.

And, more generally, if you're employer thinks good questions are a bad thing, leave. Bosses and managers should be facilitating your growth as an employee, not fencing it in.

  • +1 I like this idea, that asking a good question on SO is a contribution to the developer community. – user2954463 Aug 21 '17 at 14:14
7

I would not be afraid to let coworkers, managers, or prospective employers know that I have asked questions on SO. Asking questions means that you had a problem and thought asking a question would help you solve it (occassionaly it means you solved a problem and thought it worthwhile to share the solution). It's not a sign of incompetence.

I would be wary of the quality of the question and the experience level implied by the question.

If you are concerned, I would suggest that you review your questions, and see what you think of them now and whether they can be improved. Questions, like answers can be editted.

  • If you don't have other reasons not to, it might even help to let your colleagues know your SO username so they can view your questions. This way you will write questions with the knowledge that they may be viewed by your colleagues. This can help to keep them well written, which increases the chance the SO community will provide you with an answer. Also, I'm sometimes impressed by a question on SO - not just by answers. – trichoplax Aug 17 '17 at 12:39
6

Whilst I agree with the answers provided so far, they are not actually addressing the question asked:

if someone knows I ask questions on Stack Overflow, it could leave a bad impression that I need somebody to help instead of being able to solve the problem independently. Is that true?

The answer to this is "Yes, it could give people a bad impression", for several reasons:

  1. Programmers can be egotistical and value personal effort over collaboration, research and re-use.
  2. People in general have a tendency to prioritise effort and time spent over outcomes achieved, and so might view seeking assistance as laziness or a lack of ability or knowledge.

That said, the world will be better if we follow the good advice given in the other answers ;)

4

There are some excellent answers already, but I wanted to add two insights I haven't seen that really helped me get past this problem.

The first is schools condition us to think of asking peers for help as "cheating." Programmers go through 16+ years of this conditioning, and just being aware of it can make it easier to break the habit.

The second is everyone is a beginner at something. People don't look down on you for learning something new. Quite the contrary, in fact. People get looked down on for being too scared to try to learn something new. People even look down on themselves for being too scared to learn something new.

  • I was chastised for working as a team when I was in school. By the rules, I could have been expelled from University. So +1 to your point from personal experience. – Tony Ennis Aug 21 '17 at 16:53
3

Many good answers already, I'll just add an anecdote.

I was talking to my boss the other day about one of the problems I had solved. I also mentioned I had to look it up.

Boss: Strackoverflow?

Me: Yeah

Boss: I love that resource, saves me so much time.

I am not aware of negative connotation to StackOverflow...

Could be mentioned that, at the time, it was a summer job as I was still a student. My boss also knew that I had no prior experience with C++ and that I was learning as I went through the project I was given (which had to be implemented in C++).

His expectation of me might have been different from the expectations your supervisor has of you, but employers generally prefer employees that get effective results efficiently than those that take their time for the sake of pride.

  • 2
    I had a boss once mention in passing "are you aware of the site Stack Overflow? it's really useful" and it was all I could do to not burst out laughing... – enderland Aug 17 '17 at 17:32
  • @enderland Hahaha :D – ABcDexter Aug 18 '17 at 12:20
1

A good programmer should be able to solve the problems by searching for solutions independently, right?

WRONG! Not only is it understandable to be aware of the limits of one's own knowledge being managed at any given time by our finite mental resources and reach out to the community of experts the internet affords us but I would say it is unnecessarily self-restricting not to do so. I would actually go as far as saying that I would ask candidates in interviews to describe me some questions they have recently asked on SO, actually assuming that they have. I would not recommend hiring one who does not utilize this fantastic resource of tapping in the mind and knowledge of the community.

Another perspective is that by asking questions you are doing community service -- others may find answers to that question useful (and hopefully not double ask it). And even if you don't have questions and working on a design, however confident you may be, even in addition to having it code reviewed in house, you can get many useful advice on Code Review.

So, no, you shouldn't avoid telling others you use this great resource. On the contrary, you should promote and advertise it.

1

I feel like if someone knows I ask questions on Stack Overflow, it could leave a bad impression that I need somebody to help instead of being able to solve the problem independently.

I don't think knowing that you use Stack Overflow as a resource is intrinsically a negative thing, however it does bring Stack Overflow into consideration. Once you bring it up they may spend the time looking at the posts you've made, both questions and answers.

Do the questions show good problem solving skills? Do they demonstrate a knowledge of the subject, attempting to solve a difficult problem, and not someone still trying to grasp simple concepts who can't or doesn't find the answer via google or other quicker methods?

So no, just knowing that you use Stack Overflow isn't going to be negative or positive generally (though there are many who are biased for or against it). Depending on how you use it and whether they can find your profile, it may, however, provide them with more information about you as a candidate, and that may be good or bad depending on exactly how you use it.

1

When I was looking up advice on how to do well in a coding interview, especially for a company like Google, there were a couple things that were hammered into my head constantly as must-do items:

  • Never try to solve a problem without asking questions about it first.
  • If your interviewer is trying to subtly or blatantly give you advice, listen to them and heed their suggestions.

Ignoring these bullet points was the fast track to failing the interview, was the impression that I got. The takeaway here is that the ability to seek out help and ask questions is a highly desirable quality in an engineer. This applies to both asking your colleagues and asking the internet, including Stack Overflow. I personally would be wary of any engineer who insisted on getting everything done themselves, because it probably means that 1) they don't work well with others, or 2) their code isn't as good as it could be.

Additionally, every programmer I know uses Stack Overflow, including myself. I have two SO tabs open right now.

1

It depends entirely who 'others' is, their attitude towards/knowledge of SO, and the context in which this conversation is happening. It's one thing to be asked in an interview "Tell us your top-ten resources for getting your work done and why?" It's entirely another thing to be asked "Why are you constantly surfing to all these third-party sites, some of which (e.g. Careers.SO) appear to be jobsites? Aren't you working?"

If 'others' means managers, then never tell a non-technical manager (or higher-up) "I spend some time at work asking or answering code-related questions on another website".

Also, legal types will often wet their pants at the prospect of disclosure or code/ license/ IP tainting. The less open-source-friendly the company, the higher the danger.

As to developers, some sneer at SO (in some cases, with good reason). Most developers have a backchannel of personal contacts, mailing-lists, forums, user groups, chat channels, even Twitter followers, where they can more quickly source very high-quality opinions or recommendations, without the drama and narrow scope restrictions of SO. Ever tried to ask for a package recommendation on SO? Tough. A purchase recommendation? Tough. A semi-objective question which nevertheless calls for years of experience from your audience? Tough. All will be gleefully closed with the snarktastic putdowns which have made SO, ahem, notorious - in some language communities worse than others. There are, of course, also developers who find SO useful. So, know your audience before you tell them.

As to non-technical types, I can't see how SO would ever even come up in conversation, other than "I/My kid wants to learn to code/ script MineCraft/ program a home controller/ program Hangman etc. How do you do that?"

1

Forgive me for not reading all the replies.

There is nothing wrong with using SO. Using answers without understanding them is bad. You may not understand the corner cases where there are side effects.

0

Asking questions in the right way is a vital skill in many disciplines, including software development. If you've exhausted the readily accessible answers on the Internet and not found what you need, then asking on Stack Exchange is a perfectly good response.

Make sure that you take the time to describe your problem well. Ensure all the relevant information is present, and that you summarise the approaches that you have already found to be unacceptable. Explain your thinking, and why you are leaning in a particular direction. Ask pertinent questions and engage with your (potential) answerers.

In this way, you not only don't need to hide your questioning activities, but you can actively promote yourself. Show people the questions you asked, and how you worked with others to refine both the question and answers. This kind of effort can only bring you positive exposure.

0

There is no difference asking in SO than approaching a senior in your company for advice. Actually asking SO instead of a senior is better because it shows you are doing your best to find a solution before taking colleague's time to ask for help

0

I was always taught that the only dumb question is the one you don't ask. So do not be afraid to ask questions. I've been coding for 8 years or so and I still ask questions on Stackoverflow.

But I do have a rule that I try and figure it out myself first, and if and only if I can't then I ask the question.

Your colleagues shouldn't mind where you learn from, or how you learn, everyone's style is different.

The only thing I'd make sure of, is that you're not asking about something that could compromise your company's intellectual property, other than that, ask away :-)

-4

Well I say that if you cannot find an answer to your question on stack, please please ask it, it will help many people in the future. "A good programmer know how to find stuff on their own"- hmmm well besides stack what other websites/resources do most programmers use "the official website of that particular code" - hmm there have been times where that code on that site was deprecated, or incorrect, or just glossed over leaving developers in a state of WTF. You never know your question you ask may save a developer from losing his job because the answer helped him/her code an application and find errors or shortcuts. Books cannot fully explain everything. For example big nerd ranch is notorious for their android books, which I read but they forgot one thing which was an activity must implement fragment on interaction Listener. 5 years ago I did not know what that meant but thanks to Stack I was able to figure it out in no time.

  • 3
    this post is rather hard to read (wall of text). Would you mind editing it into a better shape? – gnat Aug 17 '17 at 18:51

Not the answer you're looking for? Browse other questions tagged or ask your own question.