There’s a lot of memes and jokes online about developers’ dependency on StackOverflow.
And to an extent it’s true. StackOverflow is a pretty essential tool in a modern developer’s kit. I’ve used it a lot, for everything from iOS code signing issues to Rails bugs. However, as I’ve progressed in my projects, I’ve started to use StackOverflow less and less. There’s a few reasons for this.
For one, there are problems where StackOverflow straight up doesn’t help. Problems such as writing your own language, or working with obscure tools or libraries that don’t have a whole lot of users. Basically, if you’re going into territory no man (or woman) has been before, it’s unlikely StackOverflow can help you. For instance, the chances I’ll get a decent answer about the inner workings of the Ruby interpreter through SO are pretty much slim to none.
Second, there’s time limits. If you shudder, actually ask a question on SO instead of just looking at previous answers, you might be looking at a few hours or even a few days before you get a good answer. That’s not a knock against SO, quality takes time. But sometimes when you have a hard deadline, or are just impatient like me, a few days isn’t good enough.
And finally, if you’re working on the cutting edge, let’s say a prerelease beta of your favorite JS library, or a version of a language you build from source, then chances are the well intentioned advice of most StackOverflow users might not apply. Again, not their fault, just special situation.
So what do you do? Do you curl up into a ball and wait the time until you get a StackOverflow answer? Do you give up and quit programming? Well, you could, or you could do the following:
Open an issue This is especially useful if you’re working on the cutting edge prerelease alpha build, or if you’re working on something that requires niche knowledge that only a few developers have. Usually in good open source projects people are fairly responsive and polite. They’ll help you with your issue, and maybe even add new functionality to their software if you ask politely. Most projects these days use GitHub, but even if they’re using a mailing list or a bug tracker, issues are a great way to get involved in the open source community.
Email someone This is a bit more direct, so it depends on how urgent your issue is. Often times developers will have a public email, either on their GitHub or personal website. Of course, don’t do this for your average “I forgot a semicolon” issue. But it’s fantastic for issues that are specific, somewhat technically interesting or very very urgent. Just be polite and remember they aren’t your personal tech support.
Read a book Contrary to popular belief, programming books didn’t suddenly disappear once StackOverflow became a thing. There’s plenty of great, informative books on basically every topic imaginable. Not only can they provide good insight into certain languages and tools, they can give more depth and thought than even the most thorough Jon Skeet answer. Need an answer that requires real, capitalized Computer Science? Read a book.
Read the damn code Can’t make heads or tails of your issue? Have an error that isn’t understandable? Find the source code, clone the repo and read the damn code. It’s fast, effective and you don’t have to talk to anybody. Social interaction? The horror. Not to mention, you also gain a deeper understanding of the code you’re using. Which means you can be the one to answer the next StackOverflow question on this topic.
Patch the damn code Let’s say you did read the code. You read it and there’s a glaring issue with the code. Maybe they forgot to take into account some issue you’re having. Maybe it’s just buggy. Well sure you could wait for someone to hold your hand and fix the code. Or you could fork the repo and just fix it your damn self. You get experience, open source street cred, and your problem is solved as fast as you can patch.
And really, depending on StackOverflow for everything is kinda sad. I get that it’s a joke, but behind the joke is a very true reality: Developers aren’t honing their problem solving skills but instead just relying on StackOverflow to think for them. But really, limiting yourself to StackOverflow is limiting yourself to what StackOverflow contributors can help you with. You can’t push the envelope or try new things if you just rely on StackOverflow.