Por Adriano Belisário e Anicely Santos

A Internet é um ótimo lugar para descobrir como fazer as coisas ou resolver problemas. É possível aprender muito com pesquisas online, mas nem sempre uma busca simples trará a solução desejada logo de cara. Ainda bem que existem diversas pessoas conectadas à Internet que podem compartilhar conhecimento voluntariamente para te ajudar a resolver problemas.

Isso é verdade especialmente quando o assunto é tecnologia, dados ou programação. Neste tutorial, reunimos dicas e referências para você formular perguntas melhores e aumentar suas chances de encontrar as respostas desejadas.

Exemplos reprodutíveis são uma das chaves para criar boas perguntas na Internet envolvendo programação e dados.
Créditos da imagem: tradução da Escola de Dados da ilustração de Allison Horst.

As recomendações iniciais são:

  • Não pense que as pessoas são obrigadas a te ajudar;
  • Não parta do pressuposto que alguém vai te ajudar;
  • Não espere receber “tudo mastigado”;
  • Não se irrite se não for respondido rapidamente;
  • Nem se irrite se alguém te fizer mais perguntas ou dizer que você fez algo errado;

Com tantas negativas, pode parecer um começo desencorajador. Mas reforçar tais pontos é importante para nivelar expectativas e evitar aborrecimentos.

Ciente disso, existem algumas medidas bem concretas que você pode tomar para perguntar e ser ajudado na Internet da melhor forma possível. Nós as dividimos em três etapas, que dão dicas do que fazer antes de postar uma pergunta online, durante o compartilhamento da mesma e após a resolução do problema.

Veja cada uma das recomendações em resumo abaixo e o detalhamento na sequência.

Etapa 1 – Faça uma boa pesquisa prévia
Escolha os termos certos para suas buscas
Busque em inglês
Leia o manual ou a documentação
Use operadores de busca avançada

Etapa 2 – Faça uma boa pergunta
Pergunte nos lugares certos
Escolha as categorias e tags certas
Faça títulos objetivos para suas perguntas
Escreva boas perguntas
Descreva as variáveis do seu ambiente
Compartilhe exemplos mínimos, completos e reprodutíveis
Adote boas práticas ao compartilhar dados
Adote boas práticas ao compartilhar códigos
Formate seu texto adequadamente
Seja cordial, capriche na escrita e mantenha a netiqueta
Amplie a comunicação

Etapa 3 – Resolvi meu problema! E agora?
Agradeça sempre
Indique ou documente as soluções adequadas
Conclusão e referências

Etapa 1 – Faça uma boa pesquisa prévia

Antes de pedir ajuda, é importante fazer sua própria pesquisa para tentar resolver o problema. Você deve partir do pressuposto que já a solução para seu problema já está descrita na Internet. Acredite: a chance disso ser verdade é muito, muito grande, especialmente em níveis básicos ou intermediários.

Então, antes de contactar outras pessoas, faça seu “dever de casa”, com uma busca online caprichada sobre seu problema. Mas como?

Escolha os termos certos para suas buscas

Um bom começo é sempre se familiarizar com os termos e conceitos envolvendo o tema em questão. Imagine a consulta abaixo:

importar módulos no python 

Nela, utilizamos os conceitos de “importação de módulos”, o que já demonstra algum grau de conhecimento sobre a linguagem de programação Python. Esta consulta traz resultados significativamente melhores do que os termos abaixo, pois – apesar de terem o mesmo sentido, em última instância – utilizamos neste segundo caso uma terminologia inadequada.

instalar softwares no python

Evite colocar termos de buscas que não sejam relevantes para o propósito desejado. E não se preocupe se você ainda não se sente totalmente confortável com os nomes. A familiaridade com os termos é algo que que se ganha com o tempo, mas tenha sempre este cuidado na escolha das palavras. Iremos retornar a este ponto logo mais.

Busque em inglês 

Lembre-se também que a disponibilidade de documentação em inglês é bem maior, então, fazer a mesma consulta com os termos em inglês amplia muito os resultados disponíveis. Se você tem dificuldades com o idioma, não tenha vergonha de usar um tradutor online para ler ou escrever em inglês.

Leia o manual ou a documentação

Outro bom ponto de partida é ler o manual, perguntas frequentes (FAQ) ou a documentação oficial do software/ferramenta em questão.

Em inglês, há até uma resposta em forma de sigla, RTFM (“read the fucking manual” ou “leia a p**** do manual), de tão comum que é o compartilhamento de perguntas já respondidas nas documentações. É verdade que uma resposta assim pode expressar má vontade ou falta de paciência das pessoas mais experientes em orientar aquelas que estão começando. Ainda assim, o conselho é válido: antes de você postar uma nova pergunta na Internet, veja se a documentação oficial já não responde sua dúvida.

Use operadores de busca avançada

Além disso, existem alguns “truques” na hora de fazer pesquisas online.

Para buscar por versões de softwares, é muito útil delimitar os termos entre aspas duplas, para buscar as expressões exatamente na ordem como foram declaradas. Veja um exemplo.

install “Python 3.9” “windows 10”

A busca acima traz resultados mais específicos do que esta outra abaixo.

install Python 3.9 windows 10

Quando o assunto é programação, muitas vezes é útil também restringir a consulta a certos sites, que são focados no compartilhamento de dúvidas técnicas, como o StackOverflow. Falaremos mais sobre ele abaixo, mas você pode restringir suas buscas no Google a uma certa plataforma com a expressão “site:”.

install “Python 3.9” “windows 10” site:stackoverflow.com

Você também pode usar o operador anterior com o Github, quando por exemplo for raspar dados de algum site e quiser olhar códigos já desenvolvidos sobre o site. Digamos que você queira buscar por códigos, dados ou raspadores da Secretaria de Saúde do Estado de Minas Gerais. Neste caso, a consulta abaixo pode retornar resultados interessantes.

saude.mg.gov.br site:github.com

Para dominar ainda mais a arte de fazer buscas na web, aprenda outros operadores de busca avançada do Google com nosso tutorial sobre o assunto

Etapa 2 – Faça uma boa pergunta

Às vezes, não tem jeito. Você fez seu “dever de casa”, leu diversas dúvidas e textos na Internet, mas mesmo assim a dúvida continua lá.

Então, é chegada a hora de compartilhar suas perguntas. Mas onde? E como?

Pergunte nos lugares certos

Por mais que as redes sociais hoje em dia sejam espaços para boas interações entre profissionais, postar suas dúvidas no seu perfil do Facebook, Twitter ou Instagram não é considerado uma boa prática. Existem outras plataformas, específicas para compartilhar dúvidas técnicas, onde você pode deixar sua dúvida melhor documentada e aumentar suas chances de resposta. Assim, no futuro, sua dúvida poderá ser útil na pesquisa de outras pessoas. 

Fóruns são os espaços ideais para conseguir ajuda online, seja consultando dúvidas de outras pessoas semelhantes às suas ou enviando uma questão nova. Listamos abaixo algumas indicações, voltadas especialmente para quem trabalha com dados abertos e/ou jornalismo de dados no Brasil:

  • StackOverflow em inglês: Este é o maior site de perguntas e respostas da Internet sobre tecnologia e programação. É ali que mesmo pessoas experientes com programação pedem ajuda ou passam horas lendo posts para resolver problemas, diariamente. O StackOverflow te dá acesso a toda sorte de perguntas, das mais simples às mais complexas, e uma quantidade enorme de resoluções, sem necessidade de fazer registro. Já para fazer uma pergunta ou apresentar respostas, é preciso se cadastrar na plataforma. Também existe um StackOverflow em português, a versão lusófona da plataforma. Para quem não tem familiaridade com inglês, pode quebrar um galho, mas a quantidade de pessoas ativas na plataforma e conteúdos são significativamente menor

“Será que os pesquisadores do StackOverflow pesquisam no StackOverflow?”, questiona o meme.

  • Fórum de Jornalismo de Dados: Um espaço de apoio e fortalecimento ao jornalismo de dados no Brasil. Lá, jornalistas iniciantes interagem com outros profissionais experientes, que podem ajudar a esclarecer dúvidas em português sobre o tema. É uma iniciativa da Escola de Dados – programa educacional da Open Knowledge Brasil – em parceria com a Associação Brasileira de Jornalismo Investigativo (Abraji).
  • Fórum da Open Knowledge: A Open Knowledge mantém também este fórum internacional, que conta com profissionais e especialistas ligados à área de dados abertos em todo mundo. É um bom lugar para discutir e acompanhar assuntos relacionados à transparência e dados abertos em inglês. A Open Knowledge Brasil e a Escola de Dados contam com grupos locais por lá também, onde algumas discussões acontecem em português.
  • Fórum Dados Abertos: Outro fórum aberto e colaborativo sobre dados abertos, mas com foco especialmente no Brasil. Conta com categorias sobre materiais educacionais, legislação, dicas para encontrar fontes de dados, entre outras.

Com tantas opções, pode ser que você esteja pensando em postar em vários lugares ao mesmo tempo, como forma de aumentar suas chances de obter uma resposta. Essa prática é conhecida como crosspost e nem sempre é bem vinda.

É até aceito repetir a pergunta em plataformas com idiomas diferentes, pois se tratam de públicos distintos, afinal nem todo mundo é bilíngue. No entanto, repetir a pergunta em vários sites diferentes não é legal. Sua pergunta pode acabar sem resposta e seu post fechado. Isto porque o crosspost acaba levando as comunidades ao retrabalho de ler e responder em vários espaços a mesma dúvida, tomando um tempo que poderia ser investido respondendo a mais dúvidas além da sua.

Além disso, se você colocar a mesma dúvida em mais de um lugar – por exemplo, o StackOverflow em inglês e a versão em português ou o Fórum de Jornalismo de Dados – sempre faça um link entre as postagens e, ao obter a resposta, compartilhe em ambos os posts. Falaremos mais sobre isso na etapa 3.

Escolha as categorias e tags certas

Em todos os fóruns acima, existem categorias e tags, que ajudam a organizar o conteúdo. Além de um bom título, tenha atenção também ao escolher quais categorias ou tags você irá utilizar.

Uma tag é uma palavra que serve para etiquetar o tópico da pergunta. É uma maneira das pessoas dispostas a ajudar encontrarem mais facilmente as dúvidas e também serve para facilitar a navegação de pessoas procurando respostas. 

Revise as categorias ou tags disponíveis e escolha apenas aquelas que são diretamente relacionadas à sua dúvida. Linguagens de programação ou softwares envolvidos são bons candidatos a se tornarem tags do seu post.

Faça títulos objetivos para suas perguntas

Lembre-se de nossas dicas sobre a escolha das palavras. Evite formulações genéricas: escreva no título de maneira resumida exatamente o que você quer saber. Isso ajuda as pessoas a entrarem no tópico sabendo o que vão encontrar lá, seja para ajudar a resolvê-lo ou para consultá-lo em pesquisas. 

Veja abaixo exemplos de títulos bons e ruins para dúvidas envolvendo o trabalho com dados.

Títulos ruinsBons títulos
Módulos PythonComo importar módulos no Python 3.9?
Erro no PythonErro “SyntaxError: invalid syntax” no Python 3.9
Dúvida sobre gráficosComo criar um gráfico de colunas no Google Spreadsheets?

Escreva boas perguntas

Dizer simplesmente que algo “não funciona” é péssimo, tanto para quem pergunta, como para quem responde. E tudo que você quer ao compartilhar uma dúvida na Internet é facilitar ao máximo a vida de quem vai te responder – e não obrigar a pessoa a te fazer várias perguntas que já poderiam ter sido respondidas de antemão.

Uma boa descrição do problema é fundamental. Investir tempo descrevendo seu problema demonstra não só que você tem interesse na resposta. Uma pergunta bem descrita indica também respeito ao tempo das pessoas que irão te ajudar voluntariamente e demonstra seu interesse de que aquela postagem seja útil para outras pessoas no futuro.

Uma boa descrição de problema deve responder pelo menos às seguintes perguntas:

  • Quais são as operações, códigos ou dados necessários para reproduzir o problema? Se você está usando algum site, forneça os links envolvidos de antemão.
  • Qual o comportamento esperado?
  • Qual o problema encontrado? Reproduza integralmente os erros encontrados. Procurar na web pelo erro já é muito esclarecedor. Mesmo que você não entenda tudo, tente se acostumar a ler mensagens de erros. Com o passar do tempo, isso se tornará mais simples e você conseguirá identificar mais facilmente os problemas. Se o problema envolve algo visual, coloque um print da tela em questão para facilitar que as pessoas identifiquem o problema.
  • Quais as tentativas já feitas até agora para resolver o problema? Por que elas falharam? Inclua também os links das perguntas, tutoriais e outras referências já consultadas.
  • Quais são as informações relevantes do seu ambiente para o problema em questão? Veremos mais sobre este tópico abaixo.

Por fim, não junte duas dúvidas sobre assuntos diferentes no mesmo tópico. Se necessário, crie tópicos diferentes para cada questão.

Descreva as variáveis do seu ambiente

Quase sempre as configurações do computador em que você está trabalhando não são as mesmas do computador das outras pessoas. Por isso, ao descrever um problema, informar esses detalhes é de suma importância para o diagnóstico do problema. 

Por isso, é recomendável sempre incluir os principais aspectos da configuração do seu computador.

A depender do seu computador, ao trabalhar localmente no seu computador com grandes volumes de dados, é possível encontrar problemas de travamento e lentidão. Para estes e outros casos, é importante saber características das peças do (hardware) do computador, tal como o total de memória RAM disponível ou o processador.

Porém, na maioria das vezes, será necessário apenas detalhar aspectos relacionados aos softwares envolvidos e suas respectivas versões, que geralmente são indicadas por números após o nome dos programas. 

Confira abaixo alguns elementos importantes a serem reportados na sua dúvida.

CaracterísticaDescriçãoExemplo
Sistema operacionalNome e versão do sistema operacional utilizado. Se for uma dúvida relacionada à instalação de softwares, a arquitetura do processador (32 ou 64 bit) também pode ser importante. Em casos de sistemas Linux, detalhe também a distribuição utilizada.

Para saber isso em sistemas Windows basta clicar com o botão direito do mouse no ícone ‘Meu computador’ e escolher a opção ‘Propriedades’. No Linux, basta rodar o comando abaixo no terminal.

cat /etc/*-release

Windows 10 32 bit  (respectivamente, o nome do sistema operacional, versão, arquitetura 

Linux Ubuntu 12 64bit (respectivamente, o nome do sistema operacional, nome da distribuição, versão e arquitetura)

SoftwaresNome e versão do softwares utilizado. Em casos de programas com interface gráfica, geralmente esta informação fica no menu ‘Ajuda (Help) > Sobre (About)’DB browser 3.12.1

Excel 2016
Linguagem de programaçãoCaso a dúvida envolva códigos, descreva o nome e versão da linguagem de programação utilizada. A documentação ou uma consulta rápida na internet irá te ajudar a descobrir como obter essa informação.Python 3.9
Ambiente de desenvolvimento integrado (IDE)Caso o erro esteja relacionado à execução de algum código, indique o nome e versão da ferramenta de desenvolvimento utilizada.Vs Code 1.50.1

Jupyter Notebook 6.2.0


 

Compartilhe exemplos mínimos, completos e reprodutíveis

Pense no seu problema ou erro encontrado como um experimento, que precisa ser reprodutível para outras pessoas. Em geral, é importante que as pessoas possam refazer cada etapa do problema para poder te ajudar.

Para isso, é recomendável criar exemplos mínimos, completos e reprodutíveis.

Mínimo pois, como já dissemos, você deve descrever apenas o que é estritamente necessário para o problema em questão. Se você está lidando com várias etapas, tente começar do zero e separar cada operação feita, para identificar onde está o problema sendo gerado. Compartilhe apenas as etapas ou códigos necessários para reproduzir o problema e elimine todo o resto da descrição da sua dúvida.

Completos porque, ainda que mínimos, os exemplos devem ser plenamente funcionais, ou seja, sua descrição deve fornecer todos elementos necessários para a reprodução do problema em outros lugares. Se você tem um problema envolvendo análise de dados com alguma linguagem de programação, não adianta fornecer acesso ao código, mas não os dados envolvidos no problema, por exemplo.

Reprodutíveis pois você deve apresentar tudo necessário, inclusive os dados, para que seja possível reproduzir o problema em questão. Certifique-se de que o exemplo fornecido realmente permite reproduzir o erro.

Adote boas práticas ao compartilhar dados

Quando seu problema é relacionado a operações com um conjunto de dados em específico, então, para fornecer um exemplo completo, você precisa também referenciá-los na sua pergunta.

Isso não implica na obrigatoriedade de fornecer os dados originais do seu trabalho, ainda que seja recomendável fornecer um link para a fonte, caso se tratem de dados abertos. Mas mesmo que você trabalhe com dados sigilosos é possível pedir ajuda publicamente, pois o mais importante e recomendável é fornecer uma amostra mínima que tenha as mesmas características necessárias para a reprodução do erro. 

Se você está trabalhando com dados pessoais, certifique-se de remover qualquer informação sensível desta amostra. Não importa que os valores reais e os do exemplo sejam diferentes. O crucial é que as informações tenham as características que permitam reproduzir o erro, como já indicado.

O mesmo princípio vale para bases de dados muito grandes. Se possível, crie condições para que a pessoa que vai te ajudar não precise baixar todos os dados para conseguir reproduzir o problema. 

Adote boas práticas ao compartilhar códigos

Se seu problema envolver linguagens de programação, é ainda mais importante fornecer um exemplo reproduzível, ou seja, trechos do código que outras pessoas consigam reproduzir na sua máquina sem precisar ter o script completo.

Neste caso, não compartilhe uma captura de tela. Um “print” do código não é acessível para leitores de tela, nem facilita o trabalho de quem te ajudar. Além disso, imagens dificultam o trabalho de indexadores de páginas na web, tornando mais difícil que sua dúvida seja útil para outras pessoas.

Um bom código reproduzível deve possuir 4 coisas: 

  • pacotes necessários para reproduzir problema;
  • trechos do código implicados no problema em questão;
  • dados utilizados ou amostra dos mesmo;
  • uma descrição do seu ambiente de desenvolvimento;

Algumas linguagens de programação possuem pacotes específicos para fornecer códigos ou dados reproduzíveis, tais como o reproducible (Python) ou o reprex (R).

Formate seu texto adequadamente

Se seu problema envolve alguma linguagem de programação e você vai compartilhar um código, faça isso da maneira adequada.

Em geral, recomenda-se que o código seja compartilhado de maneira indentada, para que o script consiga ser lido mais facilmente. Geralmente, os fóruns possuem uma informação de como fazer isso ou usam a linguagem Markdown. 

Três dicas para formatação com Markdown

Markdown é uma linguagem de marcação simples, fácil e completa, utilizada em muitas ferramentas e fóruns na web. Veja algumas dicas para compartilhar códigos em markdown.

Formate código em linha com aspas simples

Caso você queira citar o nome de alguma função no meio do seu texto descritivo do problema, basta colocar aspas simples antes e depois do nome.

Exemplo: Para exibir o código na tela, usamos o ‘print’

Formate bloco de códigos com três aspas

Use três aspas antes e depois do trecho de código que você quiser citar. Em alguns casos, como no Github, é possivel incluir após as aspas de abertura o nome da  linguagem que você está utilizando, para adaptar a indentação. 


‘‘‘
import pandas as pd
print (‘Hello World’)
’’’

Use chaves e parênteses para citar links

Para citar recursos na Internet, utilize chaves no trecho que você quer que seja linkável e coloque o endereço URL entre parênteses.

O [Google] (https://www.google.com/) é um buscador popular.

Seja cordial, capriche na escrita e mantenha a netiqueta

Assim como você considera sua dúvida importante, as outras pessoas pensam o mesmo sobre as dúvidas delas. Fale com educação e não tente evidenciar urgência ou importância da sua dúvida usando vários sinais de exclamação (!!!!!!!) ou interrogação (??????). 

Também que NÃO É BOM DESCREVER SUA DÚVIDA EM MAIÚSCULO, POIS ASSIM PARECE QUE VOCÊ ESTÁ GRITANDO – e ninguém gosta de falar com pessoas que estão gritando. 

Tenha calma e mantenha a netiqueta.

Outra recomendação é caprichar na escrita do texto, evitando abreviações em excesso. Ao terminar de escrever, antes de postar, releia o texto, corrija erros de escrita e tenha certeza de que o significado de todas as frases está claro para quem vai tentar entender sua situação pela primeira vez.

Amplie a comunicação

Redes sociais como Facebook e o Twitter, bem como grupos de Whatsapp ou no Telegram, também podem ser utilizados para divulgar o post nos fóruns. Apesar de serem muito eficientes para se conectar com outras pessoas da área, na hora de resolver dúvidas ou consultar questões já feitas, estas plataformas podem ser bem confusas, especialmente quando temos um volume de informações muito grande.  

Ainda que muitas dúvidas sejam compartilhadas e respondidas diretamente em grupos de aplicativos de mensagens como o Telegram, nossa sugestão é postar a sua dúvidas em fóruns como aqueles indicados acima e usar espaços como os grupos abaixo para compartilhar o link que descreve o problema. 

Confira abaixo alguns de grupos relacionados a dados abertos, ciência de dados, jornalismo de dados, Python e R, em português no Telegram. O número de participantes abaixo é referente a 25 de março de 2021.

  • DDJBR: grupo de jornalistas de dados brasileiros. Está integrado ao Fórum de Jornalismo de Dados, de modo que todo novo tópico criado no fórum é automaticamente compartilhado neste grupo do Telegram. Atualmente, conta com 98 participantes.
  • PyData Brasil: uma comunidade para desenvolvedores Python que lidam com dados.. Hoje, tem 246 participantes.
  • Pt-br Data Science & Python: Voltada para estudantes ou desenvolvedores que utilizam Python na área de Ciência de Dados. Conta com 5.223 participantes.
  • Python Brasil: Reúne grupos de usuários de todo o Brasil interessados em utilizar, difundir, dar suporte e divulgar a linguagem de programação Python. Reúne 4.464 participantes.
  • R Brasil: Grupo de pessoas de todo o Brasil que desenvolvem ou são entusiastas da linguagem de programação R. Tem 2.131 participantes.
  • Data Science e R: Destinados a estudantes e desenvolvedores da linguagem R aplicada à ciência de dados. O grupo conta com 2.194 pessoas inscritas.
  • Dados Abertos.Br: Concentra discussões sobre tudo relacionado ao tema ‘dados abertos’ no Brasil e no mundo. O grupo tem 3.192 pessoas participantes.
  • CKAN em Português: Grupo para pessoas usuários ou mantenedoras de instâncias da plataforma CKAN, a principal solução de código-aberto para construção de repositórios de dados online. A ferramenta foi criada pela Open Knowledge e é amplamente utilizada especialmente na gestão pública. Reúne 39 participantes.

Etapa 3 – Resolvi meu problema! E agora?

Sucesso! Você conseguiu ajuda de uma pessoa estranha na Internet. Então, é hora de voltar direto para suas tarefas e abandonar o tópico que você criou, certo? Errado!

Agradeça sempre

Todo mundo tem um milhão de coisas para fazer na vida, inclusive você. Se alguém parou para dar atenção a sua dúvida e responder, o mínimo que pode ser feito é dar um feedback dizendo se ajudou ou não – e agradecer à pessoa, mesmo que a orientação não tenha sido útil. Isso motiva as pessoas a continuarem contribuindo. 

Indique ou documente as soluções adequadas

Em alguns fóruns, como o StackOverflow, é possível votar nas melhores respostas ou indicar qual delas resolveu seu problema. Isso ajuda bastante a sinalizar para outras pessoas como aquele problema pode ser resolvido.

Se você conseguiu resolver o problema por conta própria ou obteve respostas por meio de grupos no Telegram, não se esqueça de voltar ao fórum na web onde a dúvida foi documentada para registrar também qual foi a solução encontrada

Não existe nenhum problema em você postar uma dúvida e, em seguida, você mesmo postar a resposta para aquele problema. Pelo contrário, isso indica sua disposição em ajudar outras pessoas!

Além disso, se você quiser dar um passo além, é interessante também documentar o problema e a solução por meio de um blog pessoal, para ajudar quem no futuro possa vir a ter essa dúvida novamente, inclusive você. A criação de post abertas contribuem para que as soluções apareçam nos resultados dos buscadores e mais pessoas consigam ter acesso a essa informação.

Conclusão e referências

Existe muita gente disposta a ajudar, não tenha dúvidas quanto a isso. Formular bem sua pergunta, incluir o máximo de informações sobre ela, agradecer e dar feedbacks é a fórmula ideal para você ser sempre considerado na hora das respostas. 

Se você tem alguma outra dica ou recomendação, compartilhe conosco nos comentários!

Abaixo, segue alguns outros conteúdos sobre o tema, que foram utilizados como referência para a elaboração deste material.

Referências

Como fazer uma boa pergunta? (StackOverflow)
How do I ask a good question? (StackOverflow)
How to create a Minimal, Reproducible Example (StackOverflow)
How to ask for (and receive) technical help on the internet