I’ve answered almost 100 questions on Stack Overflow. Stack Overflow estimates I’ve impacted (helped?) almost 60,000 people and I currently stand in the top 25% of users reputation-wise. Those stats may sound like they’ve come from a seasoned veteran to the site but I’ve only casually answered a small handful of questions over the last two years… and I’m just getting started.
Start with what you know
I tend to stick with what I know: HTML, CSS, Javascript, jQuery, and PHP. I admit I should branch out more and ask and answer questions outside of my comfort zone. However, those technologies are what I use on a daily basis and browsing these tags keeps me sharp. The fact that these are in my comfort zone doesn’t make the questions any less of a challenge or any less interesting to solve.
Starting with what you know is a good way to get the ball rolling. It helps you build confidence to answer tougher questions. It also helps create a new perspective on different aspects of development. When you can easily solve the problem, you start to question why someone chose to go the route they did with their code. Do they know something you don’t? Is there a better way? Is there an easier way? Answering the question isn’t just about the solution or getting those sweet upvotes and rep gains, but about the rabbit hole you can go down when finding the answer.
Be picky, but not too picky
I hand-pick the questions I want to answer. Either I skip the really tough ones because I want to be lazy or only have a few minutes to spare, or I skip the really easy ones because I can’t be bothered. I also try to pick questions I don’t think anyone will answer. It gives me more time to come up with a nice answer without the pressure of someone else trying to steal that sweet, sweet reputation.
But don’t be too picky! You still need to branch out! I recently answered, or attempted to answer, a question in which the user was wanting to find the person’s first and last name out of a resume file. Getting an email or phone number is pretty easy because they almost always follow a pretty set pattern, which can be easily picked up. However, a person’s name is a different story. In a resume, you don’t typically see them setup as:
- Name: Preston Haddock
- Email: phaddock@liquidfish.com
You’ll see them listed without their labels.
In the example above, my email is my first initial and my full last name. That’s a pretty common pattern for workplace emails and I’ve seen it outside of the workplace as well, albeit not that commonly. The not-so-great solution I came up with was to use the part of their email before the @ symbol minus one character; in the example above, this would leave me with “haddock”. Now, all we have to do is find anything on a line that contains “haddock” and that could be our best guess as the person’s name. Not the best solution, but also a very hard question no one else bothered to answer.
Do it for the rep - the right reasons
Answering questions and having your answer marked as “correct” by the creator of the question feels great. You get a nice addition to your reputation and it puts you at the top, just waiting to get more upvotes, which leads to more rep. But that’s not the reason we’re here. Sure, spitting out stats like “top 25% of all users” and “almost 60,000 impacted” sounds cool but it means nothing if the answers you gave didn’t help you improve in some way. We’re on Stack Overflow to get help and to help others. It’s a community for learning and expanding our knowledge and to help others do the same.
TL;DR
I’ve helped a lot of people on Stack Overflow, which is great because in the long run, it helps me become a better programmer and also helps a fellow programmer in the process. Whether you do it for the satisfaction or the reputation, Stack Overflow is cool.