O décimo aniversário da minha presença no Stack Overflow está chegando. Ao longo dos anos, minha abordagem para usar o site e sua percepção mudou muito, e quero compartilhar minha experiência com você. E escrevo sobre isso do ponto de vista do usuário médio que não está muito envolvido na vida da comunidade do site ou de sua cultura. Nos últimos dias, tenho respondido apenas a perguntas relacionadas ao VS Code, o produto em que estou trabalhando. No entanto, antes, participei ativamente da discussão de uma ampla gama de tópicos. Durante dez anos, fiz
cerca de 50 perguntas e dei 575 respostas , examinei uma infinidade de comentários de outras pessoas.
John Skeet
descreveu a cultura Stack Overflow muito melhor e com mais autoridade do que eu jamais poderia fazer. Sua publicação influenciou alguns capítulos deste artigo, embora em geral sejam meus próprios pensamentos francos sobre minha experiência com o Stack Overflow, o que é bom e o que é ruim neste site e como ele pode ser usado hoje. Essa discussão será bastante superficial, sem imersão profunda no trabalho do site ou em sua história.
Então foi isso que aprendi ao longo de 10 anos usando o Stack Overflow.
Você precisa poder fazer perguntas
À primeira vista, nada é mais simples: digite algumas palavras na caixa de texto, clique em "Enviar" e a Internet ajudará magicamente a resolver todos os seus problemas! Mas levei quase 10 anos para entender quais palavras precisam ser inseridas nesse maldito campo para realmente obter o resultado. Na verdade, eu ainda aprendo isso todos os dias.
A capacidade de fazer boas perguntas é uma habilidade realmente subestimada (a propósito, está escrevendo uma boa mensagem sobre um problema). Primeiro, como determinamos que uma pergunta é "boa"? O Stack Overflow oferece uma
dica que lista essas qualidades de uma boa pergunta:
- Faz o tema do site.
- Implica uma resposta objetiva.
- Ainda não foi definido.
- Foi investigado.
- Descreve claramente o problema, geralmente com um exemplo mínimo e facilmente reproduzível.
Ok, mas como é a "descrição clara do problema" na prática? Quais informações são relevantes e quais não são? Às vezes, você sente que, para fazer uma boa pergunta, primeiro precisa saber a resposta.
Infelizmente, uma pequena caixa de texto não ajuda aqui. Então, é de admirar que tantos usuários publiquem perguntas abaixo do padrão? Às vezes, a única resposta que recebem é um link para alguma documentação confusa. E eles terão sorte. Muitas perguntas abaixo do padrão são simplesmente negligenciadas silenciosamente e desaparecem em um fluxo interminável de perguntas.
Fazer boas perguntas é uma habilidade. Felizmente, pode ser desenvolvido. Eu basicamente estudei lendo várias perguntas e respostas, observando o que funciona e o que não funciona. Quais informações são úteis e quais interferem? Embora você ainda tenha medo de usar o conhecimento adquirido na prática e fazer perguntas. Apenas tente aprender com o resultado. Devo admitir que estou um pouco confuso com algumas das minhas perguntas ignorantes iniciais, embora talvez isso prove que melhorei bastante minha capacidade de fazer perguntas desde que cheguei a este site.
Perguntas ruins e não muito boas não são a mesma coisa
Não vou adoçar a pílula: algumas perguntas são simplesmente ruins.
A pergunta, que consiste em uma captura de tela e a frase “POR QUE NÃO FUNCIONA!?!”, É ruim. Porque Obviamente, o autor quase não fez nenhum esforço. Isso não é tanto uma pergunta, mas uma exigência: "faça isso funcionar para mim!" Por que devo fazer isso? Meu tempo é valioso demais para ser gasto em ajudar alguém que não quer estudar desde o início e não vai gostar da minha ajuda. Saiba o que é o Stack Overflow.
Agora considere a pergunta intitulada "Como remover bordas azuis na minha página", consistindo em vários parágrafos de texto que falam sobre a propriedade CSS da propriedade outline, mas sem menção explícita das palavras "CSS" ou "outline". Embora essa pergunta possa contradizer muitas das recomendações do Stack Overflow, eu não concordo com isso, essa não é uma pergunta ruim. O autor pelo menos tentou dar algumas informações, sem nem mesmo saber o que dar. A tentativa conta, assim como a vontade de perceber e aprender.
No entanto, é provável que muitos participantes do Stack Overflow se relacionem aos dois problemas da mesma maneira: culpar e fechar. Isso é desagradável, pois afasta muitos usuários inexperientes antes que eles possam aprender a fazer perguntas melhores e geralmente entender como o site funciona.
Perguntas realmente ruins não valem o tempo. Mas lembre-se de que aqueles que fazem perguntas não tão boas o fazem sem querer. Eles querem fazer boas perguntas, simplesmente não sabem como. Se você cegamente e sem explicação castiga os iniciantes, como eles aprenderão?
Uma boa pergunta não garante uma resposta
Normalmente, o Stack Overflow responde a perguntas simples e rápidas que muitos podem responder. Tem uma pergunta sobre a pesquisa binária em JavaScript ou HTML? Ótimo! Obtenha cinco respostas em menos de uma hora. Porém, quanto mais complexa ou específica for a pergunta, menor a probabilidade de elas responderem a você, independentemente da qualidade da redação.
A probabilidade de obter uma resposta também diminui rapidamente ao longo do tempo. Quando uma pergunta entra algumas páginas no feed, ela é perdida. Depois de uma semana, você apenas precisa rezar para que alguém que possua o conhecimento necessário tropeça acidentalmente na sua pergunta (ou clique nela generosamente).
Você pode não gostar das respostas corretas.
Todo mês eu recebo alguns pontos negativos para as chamadas respostas impopulares. Estas são respostas que, de fato, dizem: “o motivo é que ele foi projetado” ou “isso é impossível, porque ...” ou “esse é um bug que precisa ser corrigido primeiro”. Em todos esses casos, os autores não recebem uma decisão ou mesmo uma solução alternativa. E suspeito que, quando as pessoas não gostam do que a resposta diz, elas a menos. Eu até os entendo, mas isso não significa que as respostas estejam erradas.
Obviamente, o oposto também é verdadeiro: boas respostas não necessariamente dizem o que você quer ouvir. Algumas das melhores respostas respondem primeiro à pergunta original, mas depois descrevem outras abordagens para resolver o problema. Às vezes, respondo à pergunta de um usuário e escrevo um texto grande sobre o motivo pelo qual não é recomendável fazê-lo.
Sempre que a expressão de um relacionamento é simplificada para prós e contras ou botão similar, diferenças importantes são perdidas. Esse problema geralmente é encontrado na Internet. Quantas redes sociais podem distinguir "eu apóio isso" e "eu acho que é bem dito, mesmo que eu não goste ou não concorde com isso"?
Em geral, apesar dos contras mensais, acho que a comunidade Stack Overflow vota objetivamente. Vamos nos ater a esse caminho.
Eu quase nunca pergunto no estouro de pilha
Quanto mais tempo eu usava este site, menos frequentemente fazia perguntas. Isso se deve em parte ao meu crescimento profissional. Muitos dos problemas que encontro no trabalho são complexos demais para serem expressos em perguntas simples ou específicos demais para que alguém possa me ajudar. Percebi as limitações do site, por isso evito fazer perguntas às quais quase certamente não receberei uma boa resposta.
Mas raramente fazia perguntas aqui, mesmo quando estava aprendendo um novo idioma ou estrutura. Não porque esse gênio, muito pelo contrário. Só que, depois de anos no Stack Overflow, quando tenho uma pergunta, chego à profunda convicção de que é improvável que seja o primeiro a fazer isso. Começo a procurar e quase sempre descubro que alguém já perguntou sobre o mesmo há alguns anos.
Observar as perguntas de outras pessoas é uma ótima maneira de aprender coisas novas sobre o seu produto.
Agora, estou trabalhando no
VS Code , então adquiri o hábito de visualizar perguntas com a tag vscode. Essa é uma ótima maneira de descobrir como meu código é usado no mundo real. Quais problemas os usuários têm? Como a documentação ou APIs podem ser aprimoradas? Por que o que eu achei absolutamente compreensível causa tanto mal-entendido?
As perguntas são um sinal importante que mostra como seu produto está sendo usado. Mas o objetivo não é responder e seguir em frente, mas primeiro tentar entender por que uma pessoa tem uma pergunta. Talvez o produto tenha um problema desconhecido para você ou algumas suposições que você fez sem saber? As perguntas também me ajudaram a descobrir muitos bugs e me inspiraram a continuar trabalhando.
Se você acompanha um produto para desenvolvedores, não tome o Stack Overflow como um despejo (ou, pior, como um cemitério de perguntas). Verifique regularmente se há perguntas e respostas. Isso não significa que você precisa responder a cada pergunta, no entanto, os sinais do Stack Overflow são importantes demais para serem ignorados.
Os limites entre a pergunta, o relatório de erro e a solicitação de recurso são obscurecidos
Um bom número de perguntas sobre o VS Code no Stack Overflow eram, na verdade, relatórios de erros. E muitos outros - de fato, solicitações de novos recursos.
Por exemplo, uma pergunta com o título "Por que o código VS falha quando eu faço ...?" É um relatório de erro. O Código VS não deve se enquadrar em várias situações. Responder a perguntas que são relatórios de erros é improdutivo, porque os autores podem ficar satisfeitos com uma solução alternativa e nunca preencherão um relatório de erros real. Em tais situações, costumo escrever para que os usuários preencham um relatório de bug no Github.
Em outros casos, as diferenças podem ser menos óbvias. Por exemplo, a pergunta "Por que o JavaScript IntelliSense não funciona no VS Code?". Dependendo de como exatamente o JavaScript IntelliSense não funciona, a pergunta pode ser classificada em uma de três categorias:
- Se esse é um problema de configuração do usuário, essa é realmente uma pergunta para o estouro de pilha.
- Se o IntelliSense deve funcionar nesse caso, mas não funciona, então este é um relatório de erro.
- Se o IntelliSense não funcionar nesse caso, é uma solicitação de um novo recurso.
No final, para a maioria dos usuários, essas nuances não são importantes - elas apenas querem que o JavaScript IntelliSense funcione.
E, embora para mim, como responsável pelo projeto, essas diferenças sejam importantes, em geral, elas também não devem importar para mim. Como perguntas, relatórios de bugs e solicitações de recursos são formas de expressar uma idéia: o usuário espera algo do meu código e não o recebe. Se o produto fosse perfeito, os usuários nunca fariam perguntas sobre o assunto, porque entenderiam tudo e fariam exatamente o que queriam (ou pelo menos diriam claramente por que não podia).
Desenvolvedores também são pessoas
As pessoas são emocionais. As pessoas são irracionais. As pessoas são idiotas. Nem sempre, é claro, mas às vezes! E você não acredita, mas os desenvolvedores também são pessoas.
Existe uma invenção que nós, desenvolvedores, gostamos de repetir para nós mesmos: “Trabalhamos com computadores, portanto, devemos ser racionais. Entendemos símbolos misteriosos, portanto devemos ser inteligentes. Os programas dominaram o mundo, por isso temos que ser legais! Legal! Vá !!! "
Isto não é verdade. E se assim fosse, então Deus ajude outras pessoas. Mesmo no Stack Overflow, essa ferramenta para profissionais, criada como uma base de conhecimento objetiva, mesmo no meu canto muito específico do VS Code, continuo encontrando todos os tipos de feiura: erros lógicos, insultos, pensamento de rebanho, etc.
Não se deixe enganar: você provavelmente não é tão perfeito quanto pensa. Mas isso não significa que não precisamos nos livrar de nossas falhas.
Cara, sou eu quem o criou
Eu também sou uma pessoa e, de tempos em tempos, o que acontece no Stack Overflow me incomoda. Por exemplo, quando um usuário autoconfiante escreve bobagens ou simplesmente responde erroneamente a uma pergunta relacionada ao VS Code - um produto que eu criei e que conheço muito bem. Estranho, mas a impressão é que, quanto mais errônea é a resposta, mais provável é que alguém a chame de fato indiscutível.
Quando isso acontece, ajo como na figura e escrevo a resposta correta.
E várias vezes isso levou ao surgimento de longos ramos: ai de mim que ousei questionar o conhecimento deles sobre o que criei! Pare de tentar estar certo o tempo todo, malditos caras espertos! Porque eu estou certo !!!
É fácil tornar-se cínico nessa desesperança
Diante de um fluxo interminável de questões abaixo do padrão, é fácil tornar-se cínico. Ele já ouviu falar do Google? Mas ele sequer imagina como criar frases conectadas? O que você é, cachorro?
Às vezes, olho para dezenas de novas perguntas por dia. Observando constantemente todos esses problemas de baixa qualidade, você corre o risco de cair em desprezo ou cinismo. Esse cinismo pode transbordar para o site, o que será confirmado por qualquer um que tenha encontrado um moderador zeloso ou tenha passado algumas horas pesquisando e compilando uma pergunta para obter apenas contras e desaparecer no esquecimento sem nenhuma explicação.
Obviamente, existem usuários que não fazem um único grama de esforço e postam perguntas ruins. Mas acredito que a maior parte dos problemas de baixa qualidade vem de pessoas com boas intenções (embora estúpidas). Eu sempre tento lembrar o que significa ser iniciante. Quando você começa, não entende como tudo está realmente organizado aqui. Em alguns casos, você nem sabe em quais palavras expressar corretamente seu problema. Acredite, é difícil estar nessa posição. E é desagradável quando você despeja o lixo apenas para fazer uma pergunta.
Embora o Stack Overflow tenha feito muito para ajudar os iniciantes, muito mais precisa ser feito. Tentei encontrar um equilíbrio entre aderir aos padrões aceitos no site e condescendência com usuários inexperientes. Isso pode incluir uma explicação do motivo pelo qual votei para encerrar a pergunta ou postar um comentário solicitando que o usuário forneça informações adicionais. Eu ainda tenho espaço para crescer.
Por outro lado, não hesito em menos usuários com uma reputação de 50.000 que postam as perguntas "O melhor design para o VS Code para desenvolvimento de JavaScript?" Ou que enviam capturas de tela com sabão de código em vez de texto.
Às vezes eu só quero te agradecer
O Stack Overflow possui uma cultura de apreciação pouco desenvolvida. Lembro-me de uma vez em um site que as palavras "olá" e "obrigado" foram automaticamente excluídas das perguntas. Talvez isso ainda esteja sendo feito, eu não testei.
Hoje, qualquer pessoa que tenha trabalhado no suporte ao cliente sabe bem que um excesso de cortesia pode atrapalhar e até parecer fingido. Mas, às vezes, neste site, alguém faz algo muito importante para você, e a única maneira de agradecer a ele é colocar um sinal de mais. Suga.
Eficiência não exige que nos transformemos em robôs sem alma. O canal lateral pode fornecer uma comunicação mais autêntica entre as pessoas, se os usuários, é claro, eles mesmos quiserem.
Às vezes, quero saber o que aconteceu depois de receber uma resposta
O Stack Overflow opera com base no princípio das transações: algumas pessoas fazem perguntas, outras respondem. E o que acontece depois de receber uma resposta? Quem sabe Às vezes acho interessante descobrir. Minha resposta foi útil? Que projeto modesto ele ajudou? O que o autor da pergunta aprendeu?
Obviamente, essa curiosidade não pode ser satisfeita. Exigir que os usuários relatem como usarão as informações recebidas seria muito problemático, mesmo que você pudesse fazê-lo. Mas refletir sobre isso é interessante.
Gamificação é eficaz ...
... ao transformar processos em um jogo.
Ainda estou um pouco preocupado quando vejo um pequeno ícone de +10 ou +25 na barra de status. Talvez essas pequenas correções de gamificação sejam a razão pela qual volto ao site há 10 anos. Mas ao longo dos anos, também comecei a me perguntar que tipo de jogo é o Stack Overflow e o que significa vencer.
Estou certo de que o sistema foi criado com as melhores intenções: recompensar as pessoas por perguntas e respostas úteis. Porém, assim que você adiciona notas altas,
a lei de Goodhart entra em vigor e alguns usuários começam a ajustar suas ações não para atingir o valor máximo, mas para receber classificações máximas. E isso é importante porque ...
Reputação não significa o que você pensa
Reputação não é equivalente a competência técnica, habilidades de comunicação ou entendimento de como o Stack Overflow funciona ou deve funcionar.
Não quero dizer que a reputação não vale nada. Apenas não significa o que a administração do Stack Overflow implica ou o que a palavra "reputação" deve significar. Eu percebi que a reputação é uma medida de influência. Considere duas respostas hipotéticas publicadas no site:
- Um sobre a operação git comum. Em dois minutos, usando o Google, escrevi uma resposta em três linhas.
- Outra é sobre a teoria dos grafos confusa. Talvez apenas cem pessoas ao redor do mundo possam responder. Escrevi alguns parágrafos e um exemplo de código explicando a essência do problema e como resolvê-lo.
Durante cinco anos, eles analisaram a primeira resposta 5 milhões de vezes e colocaram 2.000 vantagens. Eles olharam para a segunda resposta 300 vezes e colocaram duas vantagens patéticas.
Até certo ponto, isso é muito desonesto. Por que recompensar o que está no lugar certo, na hora certa? (nem tudo é determinado pela sorte, a compreensão das regras do jogo desempenha um papel enorme). Por outro lado, a primeira pergunta realmente ajudou muito mais pessoas que a segunda. Talvez valha a pena reconhecer que, em certo sentido, o reconhecimento leva a um monte de "reputação"?
Portanto, considero a "reputação" do Stack Overflow uma medida de influência. A reputação real não pode ser medida com pontos simples; ela surge na comunidade. Em que conselho eu escuto, quem ajuda outras pessoas em quem eu confio? Talvez todas essas pessoas sejam diferentes, dependendo se eu escrevo em PHP ou no iOS.
Com isso dito, não sei o que o Stack Overflow deve fazer a esse respeito. Os usuários ficarão tão motivados se, em vez de "reputação", ganharem "pontos de vida"? Os usuários ainda estarão envolvidos se não houver um sistema de pontos? Eu acho improvável. E o mito de que a “reputação” no Stack Overflow é equivalente a uma reputação real beneficia não apenas o site em si, mas também os usuários mais ativos. Bem, sério, quem não gosta de melhorar sua reputação?
Não, como isso acontece com mais frequência na vida, para se ter uma idéia real do que está acontecendo, é necessário analisar não apenas números. Se uma postagem tiver 10 mil pontos no Stack Overflow, veja como essa pessoa se comunica, quais perguntas e respostas ele publica. Em todos os casos, exceto nos excepcionais, lembre-se de que é improvável que as próprias pontuações do Stack Overflow digam algo além da capacidade da pessoa de usar este site. E na minha experiência, eles nem sempre falam sobre isso.
Meu trabalho não seria produtivo sem o Stack Overflow
Toda vez que preciso fazer algo complicado no git, vou ao Stack Overflow. Toda vez que preciso de algo simples no bash, vou ao Stack Overflow. Toda vez que recebo um erro de compilação estranho, vou ao Stack Overflow.
Não sou produtivo sem o IntelliSense, o mecanismo de pesquisa e o Stack Overflow. A julgar por alguns livros, isso me torna um programador muito ruim. Provavelmente eu teria falhado em muitos testes e não resolvido muitos problemas no quadro. Que assim seja. Sério, toda vez que uso .sort no JavaScript, preciso procurar informações sobre quando recebo -1, 0 ou 1 e escrevo em JS todos os dias, desenvolvendo o editor mais popular para esse idioma.
Não, o Stack Overflow é uma ferramenta incrível. Apenas um tolo não usará todas as ferramentas disponíveis para ele. Então, por que não ser um tolo interior como eu? , , «» ( , , ).
Stack Overflow —
Stack Overflow , , , . , .
Stack Overflow. , , , . , , .
Stack Overflow . - . , - Stack Overflow . , , . , , . , , , — , — . , , , .
PS
, Stack Overflow. (ES5!) JavaScript Eclipse, , 90 % « jQuery, ...». , , . , - , .
, Stack Overflow - : -; ; . , , , . . , Stack Overflow 10 , , . , .