In programming, it’s not the matter of _if_ but rather _when_ you’re going to start asking questions. Some can be answered by your fellow developers, but often you’ll need Google.
If you happen to use the same Internet as the rest of the world, you probably have already stumbled upon our pick of today’s post, Stack Overflow.
In programming, it’s not the matter of if but rather when you’re going to start asking questions. Some can be answered by your fellow developers, but often you’ll need Google. If you happen to use the same Internet as the rest of the world, you probably have already stumbled upon our pick of today’s post, Stack Overflow.
Aside from documentation, technical books, an ever-growing library of internal resources and of course, Google search itself, Stack Overflow is the first line of scrimmage between a programmer with a question and our senior team. Senior developers would gladly answer hard questions, but they’re even happier to see how programmers learn to solve a problem by themselves.
Here are few tips for getting the most out of Stack.
Ask questions (duh!)
What would a Q&A site be without a decent process for asking questions? On Stack, you choose from wide variety of tags to which many people subscribe. Then, you simply ask your question. While typing title and content of your problem, suggestions with similar issues will appear—these often solve your problem even before you post.
If suggestions don’t answer the problem, you commit and wait for answers. Each question can be up- or down-voted by community members, offering a better democratic approach to a problem. You can leave small comments too, if you want to help but don’t have the full answer yet.
If you’re wondering how to best structure your questions, fear not. How do I ask a good question? helps you formulate good questions.
Tip: If you have large source code to share, you can either use Gist or even link to the repository with the example. And, if you’re looking for a live example, you may turn to JSFiddle or Ideone. It’s important to showcase your code for whichever method fits best.
Not every question is OK (and that’s good)
Anyone who has ever worked as a teacher knows that sometimes students ask, well, the wrong questions. Luckily, Stack Overflow users know it too and that’s why the Don’t Ask help page was created.
Editors will close any unconstructive questions, for example, asking for solutions to homework problems or asking questions to bait an argument.
Don’t you hate flamewars when everyone is arguing? Should they rather use Vim or Emacs to edit two lines of code? And then the discussion descends into madness, totally ignoring the question? Such wars end here, as bad questions are down-voted relatively fast.
Remember that anyone can judge the value of a questions. The same principle applies to answers, where those liked most by the community appear first. It’s important to apply critical-thinking to everything you see on the Internet, but usually the number of upvotes to an answer is a good measurement of its validity, especially if you’re in a hurry.
Although a question owner can select only one answer as a solution (as indicated by the green tick on the screen above), there’s no limit to how many questions you can vote on. Even if your solution is not selected by the questioner, it will get recognized as an alternative solution by other programmers.
And thanks to the fact that reputable users can actually edit almost everything, you can be sure someone will fix that broken link you wrote in your answer a year ago.
Reputation is king
For people fond of accumulating internet prestige, Stack offers reputation. The only way to earn reputation is by doing good things.
Of course, the most obvious points earn can be achieved by answering questions. But you will also gain (or lose) points according to votes casted on your solution. Even asking a good, well-formed question is rewarded, as well as number of people who favorited your problem.
If you wish to know more about how reputation helps Stack Overflow grow, they have a quite a nice writeup here.
Become an editor
Stack Overflow is built around its community. It’s a combination between old Q&A sites and a collaborative wiki model. The thing is, it doesn’t matter how many reputation points you have, you still can make Stack a better place for other programmers.
Here are four simple yet powerful practices:
- upvote questions which are not only interesting to you personally, but rather to the whole community.
- downvote questions which can be solved immediately by Googling the topic
- request clarifications if you don’t understand something a questioner wrote. Every question/answer can have its own comments for a little discussion.
- edit posts; yours and others’ to fix text formatting, syntax highlighting and update links to external resources.
And there’s so much more, but this is good enough for starters. As you gain reputation, you will be granted even more editorial options and the system will trust you more and more. See here what amount of points translates to what privileges.
Tip: if you have an idea how to make the overall expierience better or you’re just stuck and unsure of how to achieve one of the goals above, visit Meta Stack Overflow.
More than just programming
Stack Overflow limits itself to programming questions, specifically questions which are practical rather than pure theoretical computer science. But it’s only one member of the Stack Exchange family.
In tech-related fields, there are communities for:
- programmers for more theorethical programming questions
- power users
- unix & linux
- Apple geeks
And if your life ever gets dull, you can become a bounty hunter. You heard it right. Stack has an institution of bounties—tasks for extra reputation points—which can be granted by anyone who is deeply interested in getting an answer to a certain question. Hunt and slay the toughest villains and earn lot of points! What can be better?
Bonus: Did you know Stack can even code for you?
Final tip: If you ever get stuck, head on to the Help page :-)