Every software developer is familiar with the site Stack Overflow, the 11-year-strong compendium of questions and answers. Part knowledge base, part social network, and wholly useful, Stack Overflow offers help with virtually every programming language and software package.
It uses a Reddit/Quora-like interface, with the most useful or implementable answers upvoted, and non-answers or incorrect answers downvoted into oblivion, or deleted altogether by one of Stack Overflow’s perceptive moderators. Users often ask questions after a tiring stint of Googling error messages and not finding the help they need, or staring at a problem and not knowing where to begin. While I haven’t contributed as many answers as I’ve benefited from over the years, I use the site daily, and it’s common for me to leave a URL to a Stack Overflow answer as an explanation in a code comment.
In the years I have used the site, I have noticed one disturbing phenomenon in particular, which I think every developer should strive to avoid: the self-deprecating, almost self-berating tone that some developers take when asking for help.
Searching for the phrase “I’m an idiot” on StackOverflow returns more than 10,000 results on Google. Searching for “this is a stupid question” returns a similar set. The phrase “I’m a dumbass” appears in dozens of questions, the phrase “I’m too stupid” in hundreds—even in esoteric queries, such as “I seem to be too stupid to parse…HTML Files with Bash.”
Is this how one should be referring to oneself in any career, much less in software development, one of the most lucrative and intellectually challenging fields of the 21st century? And is this how one should refer to oneself on one of the most visible platforms for software developers on the web?
A few things should be axiomatic, for any developer:
1. Asking for help never makes one a dumbass, it makes one an improving developer
Part of being passionate about coding is being inquisitive. One is never an idiot for asking why one has to use a particular CSS technique, or why a particular function should be used over another. This is doubly true when the problem is an advanced one or an esoteric one. Having difficulty with a cryptography algorithm or a particular technique in Python should not cause one to ask, “Why am I so stupid?” Missing a semicolon or misspelling a keyword does not make one “an idiot”—it means one made a typo or overlooked a character. Simply being an inquisitive engineer —or an engineer in general—undoubtedly disqualifies one from meriting the label “dumbass.”
2. A basic question is not a stupid question
While a question may be redundant, and may have been asked thousands of times before (which will likely be flagged as a duplicate by the moderators anyway), the most painfully stupid questions are the ones left unasked. At one point, all software developers had to learn what
.toString() did, or how to use
“mailto:”, or what
"x++" meant. And any responder who would berate someone for asking such a question (“maybe if you weren’t so stupid, you would have read the…”) clearly doesn’t remember the boss or mentor who once had to help them with similar issues.
3. A developer’s initial difficulty with a subject has no bearing on the person’s worth
“When I saw that code I [felt like I was] too stupid to live” is a particularly disturbing comment which no developer should find themselves saying. Code that is hard to understand, written cryptically, or done in a foreign programming language is a challenge, true—but is rising to challenges with problem-solving skills not what we do as engineers?
4. Remember who uses StackOverflow
Most importantly for your career, it’s worth keeping this in mind: Not only are Stack Overflow’s answers public, but the platform has become a hiring and job-seeking tool, a la LinkedIn, for recruiters and professionals, as well as a social network of sorts for developers, and should be treated as such. Is the developer constantly referring to themselves as an “imbecile” before asking a question going to speak up during meetings to request clarifications before beginning work? Is the engineer who “feels too stupid to live” when encountering another programming language going to be the ideal choice for a team producing products on a variety of platforms? And is the responder who laments being “asked such a stupid question” going to be a valuable senior developer on a team with engineers who may be newer to the field?
As in most professions, we developers can have the tendency to be too hard on ourselves, and sometimes the cry for coding help indeed may be borne out of feelings of self-doubt and frustration. But if we don’t ask or seek out information, we don’t improve or grow in our careers.
An inquisitive, open-minded engineer who is passionate about code will often have questions to ponder. And managers, mentors, senior-level colleagues—responders on Stack Overflow—should always make sure they feel able to ask them, confidently.