9

It is so frustrating to have so many first posts that miss a MWE or simply show lack of understanding of the style of a Q&A site (vs a forum). To avoid the tedious comments and big duplication of effort, there could be a short mandatory tutorial + test to be taken before the first question can be asked. The tutorial could cover just the basics:

  • how to mark text as code
  • what is a MWE
  • how to check if the question has already been asked and what to do in that case
  • what is a question, an answer and a comment

Then the test could be a multiple choice between good and bad examples of questions/answers/comments.

It may be annoying to go through it but I think it would only discourage the very bad questions, not well-intentioned new users.

What do you think?

  • 1
    I read somewhere that Stackoverflow is considering a mentoring program for new users to improve the quality of their questions. – user36296 Aug 15 '17 at 18:28
  • 1
    Just found the link again: meta.stackoverflow.com/questions/353845/… – user36296 Aug 15 '17 at 18:39
  • 4
    It would also ban same of the spammers and the careless users that just come for a quick solution because their thesis is due within the next hours ;-) – user31729 Aug 16 '17 at 6:16
  • I think TeX.SX is just too sparing with downvotes. On SO a bad question has a score of -10 within seconds and is deleted shortly after. (-1 by the way) – Henri Menke Aug 16 '17 at 10:00
  • 5
    @HenriMenke the point is that instead of learning by getting "punished" (which also hinders their ability to comment/edit) we can prevent the bad behaviour from happening – Bordaigorl Aug 16 '17 at 12:32
  • 3
    Think of the users as trainees of a company, doing things wrong and asking stuff is expeced and it is the job of the experienced colleagues to help them learn. – Johannes_B Aug 19 '17 at 14:30
  • 2
    @ChristianHupfer - saving those perspiring PhD candidates from a nervous breakdown is good for your Karma. – Michael Palmer Aug 27 '17 at 1:26
27

Maybe a more lively tutorial can work.

Dynamic version:

enter image description here

Static version:

enter image description here enter image description here enter image description here enter image description here

Code:

\documentclass{beamer}
\usepackage{lmodern}
\usepackage{graphics}
\usepackage{ellipsis}
\usepackage{csquotes}
\usepackage{framed}
\usepackage{tabularx}

\usetheme{Madrid}
\setbeamersize{text margin left=30pt,text margin right=30pt} 
\title{How to ask \emph{good} questions on \texse}
\author[Prof.\ Paulinho van Duck]{Herr Professor Paulinho van Duck}
\institute{Quack University}

\newcommand{\texse}{\TeX.SE}
\newcommand{\mwe}{MWE}
\newcommand{\mweb}{MWEB}
\newcommand{\op}{OP}

\usepackage{tikzducks}
\usetikzlibrary{positioning}

\newbool{toleft}
\global\booltrue{toleft}
\newcommand{\duckfamily}[1][1]{%
    \begin{center}
        \begin{tikzpicture}[xscale=#1]
        \begin{scope}[scale=.15]
        \duck
        \end{scope}
        \begin{scope}[xshift=14pt, scale=.1]
        \duck
        \end{scope}
        \begin{scope}[xshift=14pt+10pt, scale=.1]
        \duck
        \end{scope}
        \begin{scope}[xshift=14pt+20pt, scale=.1]
        \duck
        \end{scope}
        \end{tikzpicture}
    \end{center}
}
\newcommand{\duckdecor}{%
    \ifbool{toleft}{%
        \duckfamily
        \global\boolfalse{toleft}
        }{%
        \duckfamily[-1]
        \global\booltrue{toleft}
        } 
}

\usepackage[many]{tcolorbox}
\tcbset{%
    enhanced,
    before skip=6pt plus 2pt minus 2pt,
    after skip=6pt plus 2pt minus 2pt,
    unbreakable,
    colframe=orange,
    colback=white,
    coltitle=black,
    fonttitle=\bfseries,
    boxed title style={colback=yellow!70!white}
}


\begin{document}
    \begin{frame}
    \titlepage
\end{frame}
\begin{frame}
\frametitle{You are lucky, there's a ducky!}
\begin{columns}[c]
    \begin{column}{.35\textwidth}
        \begin{tcolorbox}[adjusted title={Prof.\ van Duck},
            attach boxed title to bottom,
            ]
            \centering
            \begin{tikzpicture}
            \begin{scope}
            \clip (0,0) -- ++(2.2,0) -- ++(0,2.6) -- ++(-2.2,0) -- cycle;
            \duck[body=yellow!50!brown!40!white,
            crazyhair=gray!50!white,
            eyebrow,
            glasses=brown!70!black,
            book=\scalebox{0.2}{\bfseries \texse},
            bookcolour=red!20!brown]
            \end{scope}
            \end{tikzpicture}   
        \end{tcolorbox}
    \end{column}
    \begin{column}{.57\textwidth}
        Hi, \TeX/\LaTeX\ friends!
        \smallskip

        I am \mbox{Herr Professor Paulinho van Duck}.
        \smallskip

        I would like to help newbies to ask \emph{good} questions on \texse. 
        \smallskip

        That's the correct way to have rapid and smart answers, quack!
    \end{column}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{How you should \emph{not} ask: \emph{just-do-it-for-me} questions}
\emph{Just-do-it-for-me} questions do not show any effort by the \op\ 
(the Original Poster in the \texse\ jargon).
\begin{columns}[c]
\hspace{.02\textwidth}
\begin{column}{.47\textwidth}
    \begin{framed}
        \centering
        \textbf{How can I do this in \LaTeX?}
        \begin{tikzpicture}[scale=.7]
        \begin{scope}[xscale=-1]
        \duck[longhair=brown,
        water=cyan!50!blue]
        \end{scope}
        \begin{scope}[xshift=12pt]
        \duck[crazyhair=orange,
        water=cyan!50!blue]
        \end{scope}
        \end{tikzpicture} 
    \end{framed}
\end{column}
\begin{column}{.47\textwidth}
    \vspace{10pt}

    Posts like the one on the left have many flaws:
    \begin{itemize}
        \item generic title
        \item no explanation of what the problem is
        \item no example of code.
    \end{itemize}
\end{column}%
\end{columns}
\bigskip

Please \emph{never} ask such stuff. 

A little duck cries when he sees them, quack!
\end{frame}
\begin{frame}
\frametitle{How you should \emph{not} ask: \emph{crystal ball} questions}
Questions like the one below give not enough
information to be answered.
\begin{columns}[c]
\hspace{.02\textwidth}
\begin{column}{.47\textwidth}
\begin{framed}
    \noindent\textbf{Why doesn't my code work?}

    \vspace{\belowdisplayskip}\noindent My code worked till yesterday, but 
    now it gives me an error. Why?
\end{framed}
\end{column}
\begin{column}{.47\textwidth}
\vspace{10pt}

Do you think we have a \mbox{crystal ball}? 
\smallskip

Or that we can read \mbox{your mind}?
\smallskip

Which is the error? 
\smallskip

Where is an example of your code?
\end{column}%
\end{columns}
\bigskip

Please \emph{never} ask such stuff. 

A little duck despairs when he sees them, quack!
\end{frame}
\begin{frame}
\frametitle{The asking-a-good-question guidelines}
On the contrary, if you are a smart user, you will follow these guidelines:
\bigskip

\begin{tcolorbox}[adjusted title={Van Duck's rules},
attach boxed title to top]
\begin{enumerate}
\item Read the package manuals
\item Look at the log generated by the code
\item Search on \texse\ and, in general, on the Internet
\item Add a minimal working example (\mwe) to your question
\end{enumerate}
\end{tcolorbox}
\end{frame}
\begin{frame}
\frametitle{What you should do \emph{before} asking: read the \emph{manuals}}
One of the biggest benefits of \TeX/\LaTeX\ is its rich documentation.
\medskip

Reading the package manuals could be boring, sometimes 
even impossible (the Ti\emph{k}Z \& PGF one has more than 1,000 pages, quack!)
but information such as the incompatibilities or the loading order 
is usually written at the beginning. 
\medskip 

At least a rapid look at the documentation is mandatory, quack!
\end{frame}
\begin{frame}
\frametitle{What you should do \emph{before} asking: look at the \emph{log}}
The log is your friend in the case of errors.
\medskip

OK, \TeX\ error descriptions are not the ultimate in clarity, quack!
But if you search them on the Internet, you'll find the solution or, 
at least, you'll understand what they mean.
\medskip

The most important error is the first one, the 
others may be a consequence of that one.

\duckdecor

The command \texttt{\string\listfiles} writes on your log the versions of all 
the packages you are using (it also works when there are no errors).
\medskip

Many problems could be solved merely updating your \TeX\ distribution, quack!
\end{frame}
\begin{frame}
\frametitle{What you should do \emph{before} asking: \emph{searching}}
If you have a problem, it is very likely that someone else had the
same before: search on the Internet, quack!
\medskip

Pay attention: like everything you find on the web,  
some information could be incorrect or obsolete.
\medskip

Here a list of the reliable resources:
\url{https://tex.stackexchange.com/q/162/101651}.
\duckdecor
You could also directly use the search field on the top right of
\texse\ main site home page.
\medskip

For more info: 
\url{https://tex.stackexchange.com/help/searching}. 
\end{frame}
\begin{frame}
\frametitle{How you \emph{should} ask}
If all your searching was fruitless, let's see how to ask a question:

\begin{enumerate}
\item the title: be specific! Do not write things like
\emph{How can I do this in \LaTeX?} or \emph{Why doesn't my code work?}
\item the body: give all the details to understand 
your problem and add your \mwe\
\item the tags: add the correct tags!
Look at the tag description before using it. 
\end{enumerate}
\medskip

For more info:
\url{https://tex.stackexchange.com/help/how-to-ask}.
\end{frame}
\begin{frame}
\frametitle{The essential: the \emph{minimal working example (\mwe)}}
How to write an \mwe:

\begin{enumerate}
\item the \texttt{\string\documentclass}: always indicate it. Many things can 
change if you are using \texttt{beamer} 
instead of \texttt{article}, for example.
\item the packages: list all the packages needed to reproduce your problem,
and only those, do not be verbose, quack!
\item the \texttt{document} environment: 
put your code within \texttt{\string\begin\string{document\string}} and 
\texttt{\string\end\string{document\string}} and add only the lines strictly 
necessary to reproduce your problem. 
Do not post only code snippets.
\end{enumerate}

Test your \mwe\ before adding it to your question.
You have to be sure it works or, if it does not 
work, it gives the same error you are struggling about.
\end{frame}
\begin{frame}
\frametitle{Packages and pages useful for \mwe\ writing}
Many packages help you to create an \mwe. 
\medskip 

\texttt{lipsum} and 
\texttt{blindtext} produce some text with no 
meaning, just to fill your pages preserving your privacy or copyright. 

\texttt{graphicx} allows you 
to use some example images. 

There is also an \texttt{mwe} package, guess what it is for, quack!

\texttt{showframe} could be handy in case of
\emph{Overfull hbox} or, in general, for refining the alignment.
\duckdecor
For more info about \mwe: 
\url{https://tex.meta.stackexchange.com/q/228}

and about \mwe\ with bibliography (\mweb):
\url{https://tex.meta.stackexchange.com/q/4407}. 
\end{frame}
\begin{frame}
\frametitle{What you should do \emph{after} asking}
Once you have posted your question, your work is not over.
\medskip

Pay attention to the possible comments of other users
and reply to them. Usually, they ask for clarifications.
\duckdecor
When someone posts the answer with
the solution you were waiting for,
accept it by clicking the specific tick.

\duckdecor
If you have more than 15 reputation points, you can also 
upvote all the answers which are useful for you, please do it, quack!
\end{frame}
\begin{frame}
\frametitle{The correct way to say \emph{thank you!}}
Users who answered are
not paid for it, accepting and upvoting are the correct ways to say 
\emph{thank you!}
\medskip

\begin{tcolorbox}[adjusted title={How to thank},
attach boxed title to top]
\vspace{-4pt}\centering
\begin{tikzpicture}[%
tondo/.style={circle, draw=orange, thick, text width=1.5em},
quadro/.style={%
rounded corners, draw=orange, thick, 
align=center,
font={\small},
text width=12em,
minimum height=9ex
},
freccia/.style={orange, thick, -stealth}
]
\node[inner sep=0pt] (foto) {\includegraphics[width=.11\textwidth]{tick}};
\node[tondo, above right=-26pt and -24.5pt of foto] (upv) {};
\node[tondo, below right=-20pt and -24.5pt of foto] (acc) {};
\node[quadro, right=10em of upv.north, anchor=north] (dupv) 
{Click here to \emph{upvote} \\ any useful post};
\node[quadro, right=10em of acc.south, anchor=south] (dacc)
{Click here to \emph{accept} \\ 
the best answer to your question};
\draw[freccia] (dacc.west) -- (acc);
\draw[freccia] (dupv.west) -- (upv);
\end{tikzpicture}
\end{tcolorbox}
\end{frame}
\end{document}

P.S. = if someone can manage to share the pdf in a better way, I'll be grateful!

  • 11
    If anybody had a doubt whether the tikzducks package is useful, here's the answer! :-D – egreg Aug 25 '17 at 8:54
  • 2
    @egreg Nobody has a doubt about it! :):):) – CarLaTeX Aug 25 '17 at 9:32
  • I spend a disproportionate amount of time wondering how I can use tikzducks in the documentation of latexindent... – cmhughes Sep 1 '17 at 9:29
  • @cmhughes LOL! Eventually, have you managed to do it? Another one has joined the Duck Side of the Force! – CarLaTeX Sep 1 '17 at 9:56
21

I think discouraging newbies is a bad idea - we were all newbies once. If I'd faced a test before being allowed my first post I'd probably have gone away (and never known enough to regret that choice).

Perhaps showing a newbie a short sample question before they proceed to their own might help. Most people would probably dismiss it with a click (do you read all the licenses you accept) but a few would linger enough to learn something useful.

Or provide a (link to) a template to edit (put your mwe here ...).

  • 3
    Pre-populating the question box with hints about what to include would be good, I think. Bug-reporting sites often do this. Of course, you can select it all, delete it and post anything else, but there it does prompt people to try to provide the information needed, if they've a mind to do that. Something like <Your question>, <Your example code>, <Describe what you expect>, <Describe what happens instead>. – cfr Aug 19 '17 at 3:00
20

The question to be asked is why you are so frustrated. Past first page you wouldn't even see new questions.

There is a tendency in the residents; a bit of "come on ask me an interesting question" urge combined with a pinch of OCD which is perfectly fine. That's why they become residents. But that should stay as such otherwise this becomes a police station.Don't use this, don't do that, don't load that don't comment here.

The site is about questions and answers. There is no such nonsense as historical value or quality. Otherwise we only need about 500 questions answered by our gurus and we can lock the site.

If the new users don't act accordingly it means that SE design is broken and can't guide them into proper way of behavior. It does not mean that new users are bunch of assholes coming here and stealing your efforts. If you don't like the question then don't answer it.

I would strongly vote against this and would speculate that this would simply break the site as we know it.

  • 6
    I never intended to imply that new users are assholes. I can understand that many adopt a forum-like style because they are not used to Q&A sites. I also understand they may need something quick. This is why I proposed to introduce them to the concepts instead of rejecting them or leaving their questions unanswered. I was looking for an inclusive approach as opposed to the punitive one – Bordaigorl Aug 16 '17 at 18:54
  • @Bordaigorl it wasn't targeted at you anyways. There is a quite strong habit that got some users infected. – percusse Oct 31 '17 at 20:26
6

There's a shared sentiment here that while we want to help guide users to write better questions, we don't want to create a system that becomes a discouraging wall or obstacle to a new user. As has been noted in the comments we're playing around with a few changes here and there on Stack Overflow to address some of this, including potentially creating templates on the ask page and mentoring users. But those are still in much of test phases.

For stuff we can accomplish now, there's a few things.

  • The interstitial shown to new askers could be turned on, and further modified to cater specifically to the needs of TeX here. We've tried these on a few sites, the success seems highest in situations with a lot of dupes available for search (roughly half of closed questions here are marked duplicates), so this could be a handy way to target users when they're beginning to ask.
  • The How To Ask page (which, yes, shares the same title as the previous but is distinctly different) can also be customized to further address the needs of TeX specifically. This page gets linked to when a question is closed as Unclear or Too Broad (which 30% of closed questions here are), so this is more of a recovery for those who have already asked astray.
  • The sidebar shown on the Ask Page can also be modified, though offers less room. An example of customization can be found on sites like Mathematica.
  • Customized warnings based on tags used (example from Stack Overflow) can be implemented if there's particular tags that tend to draw more work attention to them.
  • The Tour page is already editable by moderators.

In experience, what tends to help a bit more than a required test or a long static tutorial (while cute, the current top answer's tutorial is... extremely meaty in length) is to have well-written and maintained advice kept, either in specific places like outlined above or on Meta, that can be succinctly and conveniently linked to askers in the moments most appropriate that they need them. Places like close reasons or tag warnings or sidebar notes can all be used for this manner of linking, to provide a more readable experience.

If there's still interest in pursuing this direction, we can look at implementing changes to the sections noted above. We'd need folks to band together and figure which parts they'd like to target, and what they'd like to see as the end result though, and submit it as a complete feature request.

You must log in to answer this question.

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