11
\$\begingroup\$

I'm sure many of us have seen the blog post about the death of meta-tags on Stack Overflow.

One of the tags included in the aforementioned blog post is .

However, this tag seems to be acceptable (and used very frequently) on Code Review.

Why is this tag appropriate here as opposed to other sites?

\$\endgroup\$
15
\$\begingroup\$

pacmaninbw wrote a decent answer already, but let's clarify this further by an overly long answer.

People come here to get their code reviewed. Enthusiasts, starting professionals and veterans, all on the same site. Advice useful to somebody without background in software may not be useful to veterans. Veterans are likely helped by different answers than enthusiasts. Regardless of how you would group people together, there'll be those with more and those with less experience.

So it helps both questioner, answerer and people coming late to the party to indicate a level of experience. Keep in mind, we're talking experience here, not code quality. I've seen questions by beginners that had both a higher code & question quality then from some who were at their 7th Code Review question in that language.

Now, there's a world of difference between a veteran and a beginner. It's not feasible to create and maintain tags for all levels of experience. What we can do, is help people who feel they're just starting to get their feet wet in a situation a bit different than we'd people who've been doing this for a while. I've used the tag myself a couple of times, whenever I wasn't sure about my approach in a language I wasn't familiar with.

Beginners are often helped by reviews that stick a bit closer to the basics and explain a bit more about the how and why. Or, to quote the beginner tag wiki:

Some adjustments a reviewer may make when reviewing a beginner's code are:

  • Common practices and code styles that "everyone knows" may be absent, and that's OK. The reviewer will probably make note of these common practices without being "harsh".
  • Assuming that language constructs used in the code are there because those may be the only alternative the asker may know, and not because they are being used for any special reason, may lead to suggestions to use different language features or libraries.
  • Making suggestions that are easy to understand, rather than being the most efficient or optimal.
  • Pointing out common patterns (not necessarily related to the specific language) that "everyone knows", but may not be obvious to a beginner.
  • Explaining potentially new concepts in more detail than needed for more experienced programmers.

A lot of those points are specific to Code Review. After all, on Stack Overflow, you simply want an answer to your question. Perhaps with a bit of explanation, but that's it. On Code Review, you want more. Code Review deals with questions and answers that would be (among other things) too subjective and too broad for Stack Overflow. On the other hand, while most of the SE network accepts "how do I fix problem X" questions, Code Review only does so in a limited capacity (performance, optimisation and readability problems for example, but the main problem you'll always have to have fixed yourself first).

So why do we do things different than SO? Because we are different.

To help people get the right review anyway (no guarantees, but it does tend to help), we have the tag.

\$\endgroup\$
12
\$\begingroup\$

We review code differently for beginners. We try to point out what they should know at their level. The point of the code review website is to provide pointers on how the code can be improved, not to provide answers on how to implement something.

On SO and other sites users are asking how to questions. Here on code review we don't accept how to questions. We try to be easier on beginners here because they just don't have some of the basics.

\$\endgroup\$
8
\$\begingroup\$

Code Review is different to Stack Overflow in several ways, some of which are addressed in other answers.

One important difference is that Stack Overflow is a repository of useful answers to specific problems - the value is to all the people, now and future, who have the same problem. In contrast, Code Review answers are directed very much at the specific code of one user - the value is to that single user, and the future worth to other users is much less¹.

So on Code Review, answers should take into account the OP's claimed competence level to make it useful for the asker, rather than writing a general answer aimed at experienced users.


¹ There is some future value, as a record of common problems in a particular language or algorithm, and as guidance on how to conduct reviews.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .