Tentando Conquistar o Mundo da Programação: Dicas para Resolver Problemas
Tags: webdev, braziliandevs, beginners, programming
Published: 2023-11-02 05:28:59

Eai, cês tão bem? 

Eu gosto muito de escrever sobre coisas que acabo vivenciando e pensando: _**E se eu fizer um post pra falar disso?**_

No meu trabalho, me deparo frequentemente com desafios que são bem comuns para quem está começando a explorar o mundo da programação. São aqueles obstáculos típicos que, de vez em quando, nos deixam um tanto desanimados na nossa jornada nesse universo meio "maluco" que é a programação.

Então, eu tô aqui hoje para conversarmos um pouco sobre essas situações e, quem sabe, eu consiga te dar uma mãozinha nessa jornada. :) 

## Dicas e Lembretes Essenciais 📝

1. É perfeitamente normal ter dúvidas, seja quando você está aprendendo ou mesmo depois de algum tempo. Ter dúvidas simplesmente significa que existe algum conhecimento que ainda não foi adquirido. Portanto, não hesite em fazer perguntas e buscar esclarecimentos sempre que necessário.
2. A aprendizagem muitas vezes requer repetição. Ver um conteúdo uma vez, duas vezes, ou até mesmo por vários dias seguidos não garante um conhecimento sólido sobre o assunto. É importante continuar praticando e revisando.
3. Evite comparar sua velocidade de aprendizado com a de outras pessoas, acredite, não vale a pena e só gera frustração. Cada um tem seu próprio ritmo de aprendizado, e o importante é progredir de acordo com suas próprias metas e necessidades.

---

## "Travei" num desafio/problema. E agora? 🥶

Para tornar minha missão de ajudar a resolver seu desafio sem nem mesmo ver seu código mais eficaz, vou começar fazendo algumas perguntas:

**Como você iniciou a resolução desse problema?** ❓

- Comecei a codar sem dividir em partes e estou perdido, sem saber onde está o problema. 🤯
- Dividi em partes e estou enfrentando um problema em uma etapa específica. 🤧

Se você escolheu a primeira alternativa, vamos começar dividindo seu problema em partes. Essa prática é muito útil; eu pessoalmente a utilizo muito. Pego uma folha de papel e escrevo tudo o que meu programa deveria fazer, só depois parto para o código.

Para ser mais assertiva, vou dar um exemplo de como podemos fazer isso:

> **Desafio: Calcular a Média de uma Lista de Números** 🤓

**Dividindo meu problema:**

**Definir o Objetivo:** O objetivo é calcular a média de uma lista de números.

**Entrada de Dados:** Identificar a entrada necessária para o problema. Neste caso, é uma lista de números.

**Processamento dos Dados:** Dividir o problema em etapas menores:
- Inicializar uma variável `total` como 0 para rastrear a soma dos números.
- Usar um loop para percorrer a lista de números.
- Adicionar cada número à variável `total`.
- Calcular a média dividindo o `total` pelo número de elementos na lista.
- Retornar o valor da média.

**Saída de Dados:** No final, você obtém a média dos números e a imprime na tela.


_Aqui nós dividimos o problema em etapas menores e ajuda a organizar a resolução do problema de maneira mais eficaz. Cada etapa lida com uma parte específica do problema, tornando-o mais "gerenciável" e fácil de implementar._ 

_Isso foi uma das formas que eu pensei em como resolver esse desafio, mas existem outras formas. :)_

Tenta resolver o desafio e depois, se quiser me conta como foi!

--------

Se você respondeu a segunda alternativa, vem comigo que eu vou tentar te ajudar:

- Compreenda o problema: Certifique-se de entender completamente o problema antes de começar a escrever código.
- Divida em partes: Divida o novo problema em partes menores e bem definidas.
- Faça perguntas: Se estiver travado em uma parte, faça perguntas específicas para entender a dificuldade.
- Pesquisa: Busque em recursos como documentação, tutoriais, para obter informações, use alguma das perguntas feitas no tópico acima para pesquisar no Google ou até mesmo usar nosso amigo chat GPT. 
- Pseudocódigo: Crie um pseudocódigo ou fluxograma para visualizar a lógica da solução.
- Revisão: Explique sua abordagem lógica a alguém para identificar problemas, isso me ajuda MUITO. Eu converso até meio sozinha as vezes, rs. 😅
- Testes: À medida que avança na resolução do problema, teste partes individuais do seu código e, sempre que possível, exiba as saídas na tela. Isso ajuda você verificar se cada parte do código funciona conforme o esperado e a identificar problemas mais cedo. Isso acontece bastante, quando achamos que uma variável está retornando um valor, mas na realidade, está nos surpreendendo com outro. 
- Depuração: Utilize ferramentas de depuração para rastrear o comportamento do programa.
- Seja paciente: Todos enfrentam desafios, seja persistente e paciente.
- Aprenda com os erros: Veja os desafios como oportunidades de aprendizado e crescimento profissional. 

--------

O livro 'Fomos Maus Alunos' traz uma reflexão muito interessante sobre o erro. Vou deixar um trecho desse livro aqui para finalizar este conteúdo. ❤️

> Faz parte da aventura chegar e dizer: Estava errado. Vou dar um exemplo. Uma pessoa se dedica à exploração de cavernas. Há uma bifurcação. Não sabe qual delas seguir. Assim, vai na sorte. Depois de muito caminhar, chega a um beco sem saída. Aquele corredor da caverna não leva a lugar algum. Ela volta e escreve à entrada da bifurcação: Beco sem saída. Essa informação é importante? É conhecimento? Importantíssima para os outros que virão depois dela. Conhecimento de que aquele caminho vai dar em nada. Aquelas palavras lhes pouparão trabalho. Um doutorando se propõe fazer uma pesquisa. Pesquisa durante cinco anos. Ao final de cinco anos, verifica que todas as suas hipóteses estavam erradas. Para mim seria perfeitamente válido que ele escrevesse, como conclusão de sua tese: Depois de cinco anos de pesquisa verifiquei que todas as hipóteses estavam erradas. Isso é conhecimento.


Até a próxima e bons estudos! 

~~Se você leu até o final reage com um 💟 se não, não precisa reagir :(.~~


<a href="https://www.buymeacoffee.com/analaura">
  <img src="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q5lmes6jh7hxyeqiuvd0.jpg" alt="Imagem com a logo da plataforma Buy Me a Coffee">
</a>