Conduta sugerida ao pedir ajuda em comunidades de TI
Published: 2023-03-01 00:21:52

É muito comum usarmos de comunidades de TI em ferramentas como Discord, Slack, TeamSpeak, fóruns etc. para buscar ajudas para problemas ou dificuldades que estamos enfrentando.

Este artigo traz algumas dicas valiosas que ajudam muito as outras pessoas a quererem ou se engajarem em te ajudar.

---
## 0. Não é pessoal 🕊️.
Por mais que possa parecer, não: **não é pessoal**. Se você recebeu este tipo de orientação de algúem, não leve pelo lado pessoal. A pessoa poderia ter ignorado a sua pergunta, mas ela provavelmente quer te ajudar e preferiu te orientar ❤️. Além disso, seguir essas dicas visa (e realmente contribui para):
- 🕜 Melhorar a qualidade da comunidade ao trazer mais produtividade e assertividade às interações e aumentar as chances de se obterem respostas aos pedidos de ajuda.
- 🙇‍♂️ Promover a cultura de respeitar a disposição, o tempo e o esforço daqueles que se dispõem a ajudar.
- 🎯 Tornar as interações mais objetivas, concisas, precisas e assertivas, que são valores críticos nos contextos de tecnologia da informação.

---
>Algumas condutas improdutivas são tão comuns que começaremos por:
>### **O que eu *não devo* fazer?** 🚫
---

## 1. Não peça para perguntar. Simplesmente pergunte. 🗣️
Não pergunte se pode perguntar ou se pode tirar uma dúvida.  É só chegar e perguntar. Simplesmente pergunte, detalhando sua necessidade o máximo possível. 😉

Então perguntas como *"Alguém que entende da Tecnologia X  por aí?"* não vão te ajudar (especialmente se for num fórum da Tecnologia X, em que, obviamente, com certeza alguém entende da Tecnologia X).

Perguntas assim não deixam clara a sua necessidade. Perguntas assim não permitem às pessoas identificarem se estão aptas ou não a te ajudar. Adicionalmente, "entender de Tecnologia X" *não é algo binário*, mas um mundo de possibilidades. 

Qual é a sua real necessidade? O que você realmente quer saber? 🎯

https://dontasktoask.com/pt-br/

---
## 2. Pergunta ruim traz resposta ruim... 🕳️
*(... ou resposta nenhuma - que, por sinal, normalmente é mais segura e mais responsável do que uma reposta ruim ou errada.)*

Atente-se a realizar a pergunta correta para a resposta que você espera obter. Estes são exemplos de **perguntas ruins**, ou de **como não perguntar**, mas que são muito frequentes:
- *"Tem alguém aqui que entende de Tecnologia X?"* não te ajuda e conseguir a resposta que você busca. 
- Se você pretende perguntar algo como *"É melhor aprender/usar a Tecnologia X ou a Y?"* sem informar qualquer outra necessidade, contexto, restrição, então qualquer resposta que vier será quase tão ruim quanto uma resposta aleatória. Compartilhe o contexto, as necessidades, os critérios, restrições etc. e, assim, você provavelmente terá mais e melhores respostas. ℹ️
-  Dizer simplesmente algo como *"Meu projeto / código / aplicativo / solução não está funcionando..."* também não ajuda as pessoas a te ajudarem e não te levam em direção à resposta que você busca. 🙊
- *"Fiz igualzinho ao do instrutor / curso / vídeo / referência, mas não está funcionando!"* Então ou não está igualzinho ao da referência (por mais que você ache que tenha conferido corretamente), ou as coisas mudaram, ou a referência está errada. Revise. Reveja cada detalhe. Se houver código: nossos olhos não são bons para olhar dois códigos-fontes e identificar as diferenças, então você deve (aprender a) usar ferramentas de "diff" para verificar as diferenças entre dois arquivos de código-fonte. Confira também outros pontos externos ao código (versões de componentes externos, variáveis de ambiente, parâmetros de linha de comando, arquivos de configuração etc.) 👀

---
>E agora sim:
>###**Então, o que eu *devo* fazer?** 🏆
---

## 3. Pesquise, antes de perguntar. 🔍
Não se trata só de respeitar o tempo dos outros (ao procurar consumir do seu tempo antes de recorrer ao tempo do outro), mas principalmente de ir desenvolvendo a **autonomia para pesquisar e resolver problemas** 🤔💡 por conta própria, que é uma habilidade crítica para quem trabalha com TI. 

### 3.1 Se houver erro, leia e interprete cuidadosamente as mensagens e logs. ⚛️
Se não entender, releia e esforce-se para entender. Você vai lidar com situações assim o tempo todo, então é melhor já ir se habituando a interpretá-los. 
Pesquise soluções com base nas partes invariantes das mensagens / logs (ou seja, os trechos que não contém informações ou valores específicos da sua implementação ou cenário).

---
## 4. Pergunte no local correto, para o público correto. 🎯
É muito comum que comunidades tenham fóruns / canais / tópicos específicos para assuntos específicos. Poste no canal correto, buscando o mais adequado possível (que normalmente é o mais específico possível), visando atingir a audiência correta. Isso traz mais chances de você ser ajudado.
Por exemplo, se a sua dúvida é sobre linguagem *Java*, procure um canal específico para *Java*, em vez de postar imediatamente no canal de *Programação* ou de "Profissionais de TI".
Se a sua dúvida é sobre *Spring Framework*, procure um canal específico para *Spring Framework*, provavelmente dentro de um canal de *Java*.
Se não houver um canal específico compatível com a especificidade do contexto da sua dúvida, verifique, dentre os canais disponíveis, qual é o mais adequado para a situação.

---
## 5. Descreva e detalhe o seu problema, dificuldade ou necessidade. ℹ️
Tente expor os detalhes relevantes, ao mesmo tempo tentando ser o mais conciso possível. Dessa forma, você terá mais chances de alguém conseguir e se dispor a te ajudar.

### 5.1 Compartilhe sua situação atual. 🚩
Diga o que você já tentou, diga em qual ponto está, o que já tem feito. Diga o que você quer que aconteça, em vez do que você não quer que aconteça. (Por exemplo: para um erro parar de acontecer, basta não executar o programa. Ou seja: o que você quer de verdade não é que o programa pare de dar erro, mas que ele produza um resultado específico.)

### 5.2 Contextualize. 🗺️ 
Compartilhe qual é o seu **requisito**, a **finalidade** do que você está tentando realizar. 
Por exemplo: se você precisa obter a extensão do nome de um arquivo, então pergunte exatamente isso: *"Como faço para obter a extensão do nome de um arquivo, que está numa String?"*)

Isso, porque nem sempre a solução que você está tentando implementar é a solução correta par ao problema ou requisito que você tem. Dentro do mesmo exemplo, essa seria uma pergunta ruim: *"Como faço para pegar os últimos 3 caracteres de um nome de um arquivo, que está numa String?"* - pois esta nem sequer é a solução correta para o requisito.

---
## 6. Ajude os outros te ajudarem. 🆘

### 6.1 Facilite para que seu problema possa ser facilmente reproduzido por quem for te ajudar. ▶️♻️
**Poste código, se houver.** Preferencialmente completo. Preferencialmente em repositório de código online através de um link. 
**Evite print de tela**, pois não dá pra executar código que está em print (e quem vai te ajudar provavelmente não vai querer redigitar o código que está no seu print). **Foto de tela, pior ainda.** É comum a foto sair torta e/ou cortando partes relevantes da tela e/ou sem foco e/ou com vários outros problemas. E mesmo que a foto esteja perfeita, ainda permanece a questão explicada no parágrafo anterior. 

Se você tiver certeza de que o problema está localizado em um pequeno trecho curto específico de código, está OK postar somente o trecho diretamente no chat. Neste caso, procure formatá-lo com base na linguagem. Isso ajuda muito a legibilidade do código. Na próxima seção, tem um exemplo de formatação em Markdown, linguagem de marcação usada por grande parte das ferramentas de comunicação, como Discord, Slack etc.

### 6.2 Exemplo de como formatar código-fonte em mensagens usando Markdown: 📃

**Modelo:**

    ```linguagemX
    // código escrito na linguagemX
    ```

- Substitua `linguagemX` pela linguagem do seu código, como `js` ou `javascript,` `java`, `html`, `css`, `c`, `cpp` etc.
- Substitua `// código escrito na linguagemX` pelo seu código na linguagem especificada em `linguagemX`.

**Exemplo:**

**Postar isso aqui:**

    ```javascript
    let x = 5;
    console.log(x);
    ```

**vai resultar em:**
```javascript
let x = 5;
console.log(x);
```
**Dica:** Para adicionar uma quebra de linha na mensagem, use *Shift + Enter* (alguns aplicativos usam *Alt + Enter*).

### 6.3 Se houver mensagem de erro, poste em texto... 📄
... e não em imagem. 
Assim, quem for te ajudar conseguirá copiar o texto para colar em uma busca *(que é algo que se espera que você também já tenha feito antes de pedir ajuda)*.

### 6.4 Escreva corretamente. ✔️
Não precisa ser formal e nem rebuscado, mas seu texto deve ser fácil de ler e de entender. A ideia é que os colegas gastem esforço *para te ajudar a resolver o seu problema*, mas que não tenham que gastar esforço *para tentar entender o que você escreveu*.
Procure escrever com pontuação, com acentuação, com coerência, com clareza. Se tem dificuldade, as ferramentas de revisão gramatical estão aí para te ajudar.

> **Ruim:** _olaaaaa meu nome e joao to com dificuldade de programa calculadora e do trab da facu queria entende melhor o que e notacao posfixa vlwwww glr_

> **Bom:** _Olá. Meu nome é João. Estou com dificuldade de programar uma calculadora para um trabalho de Orientação a Objetos da faculdade. Queria entender melhor o que é a notação posfixa. Valeu, galera!_

### 6.5 Se possível, procure colocar toda a sua dúvida em uma única mensagem, mesmo que fique grande. 📦
Com isso:
- evita-se "floodar" e causar o envio de diversas notificações para diversas pessoas sobre o mesmo assunto; 
- evita-se que quem for te ajudar precise ler / pescar mensagens intercaladas com outros assuntos / mensagens de outras pessoas;
- Pode ser interessante criar uma _thread_ / tópico (quando a ferramenta permite), para tratar da discussão específica sem misturar com mensagens de outros assuntos; 

---
## 7. Contribua com as dúvidas dos outros. 🆘

Procure, também, ajudar as pessoas com aquilo em que você estiver apto a ajudar. Mesmo se você estiver começando na área, tem muita gente que tem as mesmas dúvidas que você já teve antes. 

---
## Referências e outras dicas valiosas: 📚
- https://dontasktoask.com/pt-br/
- https://xyproblem.info/
- https://nohello.net/pt-br/
- https://stackoverflow.com/help/how-to-ask
- https://www.homeyou.com/~edu/perguntar-de-forma-inteligente
- Imagem da capa: https://br.freepik.com/fotos-gratis/imagem-de-close-up-de-programador-trabalhando-em-sua-mesa-no-escritorio_5698344.htm

---