DEV Community

Cover image for Tentando Conquistar o Mundo da Programação: Dicas para Resolver Problemas
Ana Laura
Ana Laura

Posted on

Tentando Conquistar o Mundo da Programação: Dicas para Resolver Problemas

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 :(.


Imagem com a logo da plataforma Buy Me a Coffee

Top comments (4)

Collapse
 
1cadumagalhaes profile image
Cadu Magalhães

Vou denunciar o dev community que não me avisou do seu post 🫠
Acho que a maior dificuldade dos iniciantes é conseguir quebrar um problema! Por isso que sempre gostei de fazer live com desafio de código, porque ai eu vou tentando explicar como minha cabeça vai funcionando passo a passo.

E isso fica pior ainda quando é sobre tarefa de trabalho, o pessoal tem muita dificuldade de entender como um pedaço "pequeno" faz parte da entrega final

Collapse
 
analaura profile image
Ana Laura

Exatamente!! Aprender é juntar várias partesss hehe

Live de código é uma boa, ajuda muito quando vc ta cvs com alguém né

Collapse
 
raulferreirasilva profile image
Raul Ferreira • Edited

Muito bom rever conhecimentos que a gente aplica mesmo sem saber, utilizo bastante o debug com pato de borracha ("Rubber duck debugging" - em Inglês), basicamente seria fazer a revisão, mas explicando para um objeto inanimado, me ajuda bastante a me concentrar e ver aonde está o problema, se é em minha logica ou algo que estou deixando passar no código e algo que eu falo para a galera que trabalha/estuda comigo:

"O console.log ("Caso seja js") é seu melhor amigo. É aquele amigo que acusa seu erro sem dó e te mostra tudo, o que você acertou e o que você errou."

🦤.
💟 Vou deixar até nos comentários pra ver que eu li KKKKK

Collapse
 
analaura profile image
Ana Laura

O console.log ("Caso seja js") é seu melhor amigo. É aquele amigo que acusa seu erro sem dó e te mostra tudo
Exatamenteeee! Ajuda muito a ver o que ta rolando, as vezes a gente acha que tá retornando uma coisa e num tá hehe

Obrigada por acompanhar aqui <3