Tag Archives: stackoverflow

StackOverflow: why it succeed?

You succeed when you reach your goal. Simple at that.

Why StackOverflow is a success? It’s not because that the website has reach 560M page view/ month. It’s because it makes software developer’s life easier.

My criterion for whether Stack Overflow works: when you type your question into Google, and you’re happy to see a Stack Overflow result rather than a result at another one of those Q&A sites where you have to sign up and pay a monthly fee to see the answer. - Joel Spolsky

Once you understand the site’s goal, you would understand the hard choice that its creators have made. Many people complain how the site has been so strict in its “standard” for question and answer. When they come to the site asking for help, but leaving unsatisfied. Or worse, their question would be closed in few seconds because it’s “too broad”.

It’s because that SO “true” customer are the indirect users, those who come searching for an answer. The answer gets written only once, but it gets read millions of times years later.

The more time you spend on writing a short, clear and coherent question, the more time would be saved from your reader.

Start at StackOverflow: go for the niche

At the end of a week, I often find myself struggling finding sometimes to write out some “good thing” – some of my experience which may be useful to others. I don’t have much time, but that’s no excuse for low-quality posts. I’ll try my best to make it as short as possible, but also enough for a good read!

Sometimes, I feel people have a treasure that they don’t even know. That’s knowledge. Don’t be too fast to say that our knowledge is not as much as Einstein, Khong Minh, or Obama… I can assure, with my very experience, every of us possess an unique set of knowledge of our own – and they are special.

Imagine that you and Einstein were thrown into a river… you will know what I’m saying about ;)

The same applies for programming. Now we have StackOverflow site as the river!

StackOverflow is one of the great Q&A community site. Its reputation system is good and simple, if only not for the high entrance fee. But I’m already here to help :)

Step aside and observe, you will see: besides lots of the question which get answers after few seconds, a lot of the remains get few of views, and eventually die out unnoticeable.

Why that happened?

It’s because in StackOverflow community, there are many of “sub-communites“: C# community, .NET community, Java community,… and then Zend, Grails, web community,… In strong communities, the answer rates would be a lot better, and it would be more competitive too. But in smaller communities (like Grails, and surprisingly, Facebook), the answer rate are much lower.

So if you are a new-comer, why not go to the “niche” market, which has less competition? Well, if you are a Java developer, I don’t recommend you drop Java to go for COBOL, but trying a new framework (Grails) or similar language(Scala) might be a good choice. People at those areas need help too!

I myself had a good experience with the Grails community. Sometimes I dive in solving another problem which I hadn’t met before, just for help other fellows. That feels really good. That’s also a good way to learn, after all.

Start at StackOverflow: The right time to ask


A time has passed after my last post in the series “Start at StackOverflow”. It may be because that I don’t find much time to wander there anymore. Still, it’s still a useful resource, and one of the fruitful source when I try to do things that my peers may did already.

But now I think I found a simple question, that, though it seems A LOT OF useful, not many people ask. Even I just notice it after more than a year with this site.

It is:

What is the best time to ask at StackOverflow?

Why is this question important? Answer: the answer’s ratio for your question certainly depends on the number of users who see it.

If you work in a very-narrow technology domain, and ask at the time when most SO users about that field are sleeping, surely you must wait for an answer.

If your question is on a general field (Java, .NET…), don’t feel lucky too early. There are tons of general quesions dump to StackOverflow every minutes, so your question will soon flow to the end of the list… and well, may take at most 20 views.

Reversely, if you are new to the site & want to play the reputation game, you should do the opposite: online at the time that most people are offline to answer questions with much slower speed…. and help the guy in need, ofcourse :)

When the problem is found, I realize that I’m not the first person asking that question.

But I myself come up with a fairly different answer. In the post of Jeff ArtWood (about 3 years before), the best time is around 15:00 and 22:00 GMT/UTC. In my experience, with Java-related questions, the best time is around 2pm – 5pm at Vietnamese time. In GMT, it’s about 7am – 10am.

Start at StackOverflow: A new way to gain reputation

/** Vietnamese: Một cách dễ dàng hơn để kiếm điểm reputation tại StackOverflow, đặc biệt cho người mới bắt đầu **/

In some previous posts, I have mentioned about some tips for starting at StackOverflow. Most of them require the new user to understand the basic value of the site, and then create good questions & answers. That way works perfectly in the long term, but people always want to speed up the process. Ok, I’m here to present a fairly new way (and maybe easier) to do that.

It’s about editing.

Previously, StackOverflow have a fairly strict rule about who can edit a post. If you read the FAQ carefully, you probably know that all your questions/answers can be modified by anyone with reputation-point more than 2000, though changes will get logged. And that’s how StackOverflow mimics Wikipedia: summoning the community support to refine the content on the site, without fearing misbehaviors from malicious users.

But now, editing is open for all users: actually, anyone can submit an edit, but it needs acceptance from users more than 2000 to effect the original post. If your edit gets accepted, you get 2 reputation points in return. That’s the new shiny suggested edit function. The total up to 1000 reputation points can be rewarded by this way.

With this new rule, new comer may have better times leveling up the reputation a bit (yes, it’s not that good to earn 1000 rep points by fixing others’ formatting mistakes). Anyway, I think it’s a good opportunity for starters.

Start at StackOverflow: short story about the Badges

“On my honor, I will do my best
To do my duty to God and my country;
To obey the Scout Law;
To help other people at all times;
To keep myself physically strong, mentally awake and morally straight”
The Scout Oath
/** Vietnamese: một mẹo nhỏ để nhanh chóng hòa nhập vào cộng đồng StackOverflow: thu thập các huy hiệu (badges) **/
Sample of BoyScout Badges

Sample of BoyScout Badges

Actually while writing about the badges, I remember of the American boy scout, a good group that was established to help children shape their good personalities as well as training living-skills. A badge is the symbol that tells everyone that the scout completed a good work. Some badges are fairly easy to get: camping, cooking, first-aids,… others are sometimes very hard to achieve: wood work, water sports, …. Based on this fact, the boy scouts always have a goal to follow.

Return here at StackOverflow: we have a similar system of badges for programmers!

According to StackOverflow FAQ, there are 3 kinds of badges:

  1. Gold Badges: very rare, and proves that the user is highly engaged and (often) have high contribution to the site by good questions & answers.
  2. Silver badges: uncommon, but attainable for anyone with sufficient efforts.
  3. Bronze badges: are awarded for basic use of Stack Overflow. They are easy to earn.


According to… me, “Badges” at StackOverflow are divided into about 3 types: site functions, achievements and tag-achievements:

Site function badges are often given after the user try a new function of the site. This kind of badges gets along with the reputation system: when your rep-points reach a limit, you unlock new function; when you use that function, you get a badge. The typical example is “commentor badge” (comment 10 times), or “Supporter badge” (the first up-vote you give to others). All badges of this kind are bronze.

Achievement badges is some kind of reward for your contribution to the site. For instance, if you get an answer with 25 up-vote, you get the silver “Good answer” badges.

Tag-achievements are specific badges that be rewarded for getting lots of up-votes for a specific tags. They are kind of harder to get, since you must get at least 100 up-votes to win a bronze badge for a tag. But these badges are absolutely worthy: it proves that you are an expertise in that specific area. In my opinion, a specific-tag bronze badge is even more valuable than a general gold badge.

Until here, some of you may raise the question: why do we need to know this stuff to start at StackOverflow? Well, the reason is here:

When you are getting started, or even when you are already on boat, there will be a period that it seems you don’t get anything (up-vote or accepted answer), no matter how many answers you throw up on board. It’s a fact, and you shouldn’t be pessimistic. Things will improve when you least expected.

If you are in a time like that, I recommend you pay some time into the badge-hunting game.

For what?

Well, let’s guess: how many users, seeing you have a bronze badge, will actually click to your profile to see if it’s a “Java” badge or a “Student badge”?

People like to look at the surface. They know that the more badges you have, the higher you engaged to the site, so they can trust you more. So do your answers. It’s simple logic.

Start at StackOverflow: Writing good question


** Vietnamese: Bài viết trình bày về những khó khăn khi bắt đầu tham gia cộng đồng StackOverflow, cùng một số mẹo có thể sẽ có ích cho người mới. **

Several months ago, I have written a native language post about Stack Overflow(SO), the current largest Q&A expertise sites for programmers. In short, the site’s goal is helping software developers find solutions and learn new things about all kinds of technology. It can also be known as a “knowledge pool” of programming. But from a user’s view, it’s more about sharing knowledge and earning trust.
The success of SO can be reasoned by its unique “reputation” model, which evaluate member contribution not by number of posts but by community responses. But this model also create obstacles that a newcomer must overcome if he/she wants to be a part of this community.

Problem of a new-comer

The fact is that, when starting, you only have the tiny cute “1″ reputation point. At this time, you only have two things to do: ask or answer. Fine, it’s the basic utilities of the site. If you want to go further and unlock more interesting functions, you must give back to the community by providing good posts. But the funny journey just begin: not any post you provide will get an up-vote(1) from other users. On the other hand, your poor question may likely get down-vote(2), which means throwing away your hard-work.

But there’s good news: as long as the new user know how to post good question, it’s not too hard to get enough reputation(15 points) for a start. The list of tips includes:

  1. Ask relevant questions: this is not only most basic rule, but also the most popular mistake. For a short explanation: SO is a QA site for questions that can be answered, which means no subjective questions or poll may survive here. A post like “which programming language you like most?” will get closed in few minutes, usually along with dozens of down-vote to the creator.
  2. Prove that you tried solving the problem: simple enough, no one will help you if you don’t help yourself first. Don’t ask question whose answer appears as the first result with a simple Google keyword. In short: search the answer first, only ask if you can’t find the appropriate result. A short summarization about your efforts is welcome: it saves others time for trying the way you already did and make the problem clearer.If you’d like to know, describe your problem in detail will benefits the users have the same problem with you. Doing good for others will be never a bad idea ;)
  3. Provide detailed information: like above, it’s necessary for others to understand your problem.
  4. Attach code: code is self-explanation. Specially if your English is not very good, posting code will help others understand your question better. But remember only posting the “relevant code”, which closely associated to the problem. No one will happily look through your 500 line HTML code to give you the answer ^^And the last thing: use the code tag to format your code. This snippet works very well for most of the programming language.
  5. Be open & polite: this is about communication. Treat people the same as you want people treat you.
That’s all :)

(1) & (2): up-vote & down-vote. When a SO user reach 15 reputation points, he/she can evaluate any other user’s post by up-vote or down-vote it. With each up-vote received, the owner of the post receive some reputation points as the prize. On the opposite, if the post is down-voted, the owner will lost some points as well.