Executando verificação de segurança...
4

Dificuldade na hora de resolver problemas/desafios

Tenho muita dificuldade na hora de resolver "problemas"

Estou no inicio da programação web e estou focado em JavaScript, porém, quando eu quero *praticar*, *revisar* eu tenho dificuldade, principalmente nos desafios. O desafio me diz o problema e eu não consigo resolver (racicionar).

E eu entendo como funciona bastante coisa do javascript, mas na hora de racicionar e resolver o problema/desafio, não consigo.

2

Você raciocina resolvendo vários problemas matemáticos? Pega um enunciado genérico e consegue criar uma solução matemática para o que foi descrito?

Consegue ler um texto que propõe atividades relativamente complexas e consegue executar tudo sem maiores problemas seguindo todas instruções dadas de forma adequada, entendendo tudo, e cria novos procedimentos que estão implícitos no texto?

Já tentou fazer um texto detalhado de toda atividade que realiza no seu dia, com todos os detalhes possíveis, decompondo cada mínima atividade e decisão realizada? Alguém avaliou isso?

Em muitos casos o problema não é de programação. Sendo isso, não será estudando mais programação que vai resolver. Pode decorar o que for de tecnologia, não vai conseguir realizar nada.

A escola no Brasil nunca foi um exemplo, mas neste século houve uma decadência absurda, começaram fazer o que grande parte da sociedade passou fazer: não critica nada e só fala se tiver algo positivo para dizer. A consequência é que as pessoas foram avançando sem aprender. E cada avanço foi ficando mais difícil, porque elas erraram, foram aplaudidas, ficaram felizes, e permaneceram com o erro em sua estrutura.

Não estou aqui analisando seu caso, isso é impossível, não sou especialista e não tem informação que eu possa fazer uma avaliação, estou falando genericamente para qualquer pessoa. E tem casos que a pessoa tem alguma deficiência específica, e isso precisa ser diagnosticado por profissionais.

Eu gostaria que alguém aparecesse com alguma solução, e se isso já tivesse acontecido antes eu estaria replicando aqui. Eu só consigo dizer que se não tiver alguma condição específica, o processo de aprendizado está falho e tem que recomeçar de novo lá na base. Eu sei que é bem difícil fazer isso, mas eu desconheço outra forma. Eu nunca vi alguém forçando na programação e resolvendo essas questões assim.

Lamento se eu estiver dando uma má notícia, mas não dizer nada ou só incentivar não vai mudar alguma coisa, em alguns casos a pessoa sabe disso mas ela não fala para não parecer chata.

Também pode ser alguma outra questão, e também não tenho como saber ou ajudar mais.

Eu sempre disse que acho um erro as pessoas aprenderem do jeito que eu vejo por aí. Tem que aprender passo por passo, sem ir para frente sem aprender o anterior, tem que aprender de forma concreta, entender todos os mecanismos, saber porque está fazendo aquilo. Depois tem que treinar muito e sempre procurando fazer melhor da próxima vez, mas isso já é algo avançado, é para quem está evoluindo.

Eu dei aulas para alunos que eu dava pronto o código para imprimir uma sequência de números, e só falava para eles mudarem para imprimir os pares. Muitos não conseguiam fazer. Você consegue? Alguns conseguiam, já era alguma coisa, mas usavam um if, você vê que falta algo que deveria ter sido aprendido nos primeiros anos de escola.

Eu sempre fui incompetente para resolver isso, eu tinha que tentar fazer os outros que eu não tinha que falar nada sobre esse tipo de coisa, só falava o que era novidade. Um amigo meu que é muito bom intelectualmente, com uma paciência incrível, uma vez me disse que estava restringindo o que fazia com aulas porque ele não sabia explicar para os alunos "o que era uma mesa, ele sabe o que é, os alunos deveriam saber" (exemplo dele). Não sei se eu deveria dizer que ele é professor da Unicamp.

Eu vi um relato esses dias, de um professor que se recusava ensinar o que deveria ter sido aprendido no ensino médio. Embora um pouco rude, ele está certo, é uma pena a pessoa ter chego em um curso que exige capacidade sem tê-la. Hoje ele é exceção, em geral os professores estão aprovando e dando diploma sem a pessoa ter base alguma. Por isso muita empresa nem acha o diploma tão importante mais.

Todos os alunos que eu tive e chegavam com uma base boa, iam bem comigo e se deram bem na área, todos os outros, mesmo aprendendo com outros professores, não se deram, e até onde eu sei, nenhum está na área.

Daí eu desenvolvi a teoria de que é necessário vocação. Algumas pessoas ficam bravas que eu falo isso, então podem insistir, e ficar com a ilusão. Eu não sei se pode desenvolver vocação, mas eu tenho certeza, só pela minha observação, nada mais, que a pessoa não se dará bem em qualquer área sem ela, algumas áreas mais que outras. Eu não me dou bem com futebol, sou péssimo na cozinha mesmo gostando bastante e tentando melhorar. Algumas pessoas não conseguirão programar. Em alguns casos para bem porque ela pode estar desperdiçando o talento em outra coisa.

Eu vejo que começou se tornar obrigação ser programador, isso não tem como dar certo.Eu aprendi a programar com 13 anos, sem internet, livros bons, pessoas para perguntar e me explicar nada, sem saber inglês, e até computador no começo (eu tinha pencas de códigos escritos em papel no dia que tive acesso ao primeiro computador). E tenho problemas neurológicos que dificultam o aprendizado. Mas sempre fui muito curioso, questionador e tive boa escola (em certo ponto de vista). E eu tinha vocação, é um enorme facilitador. Junto com dedicação, fica "fácil".

Se eu descobrir uma forma de fazer as pessoas que querem isso conseguir se dar bem em algo que ela não tem vocação, eu ficarei muito feliz e aplicarei.

Infelizmente somos um país que está entre os maiores em violência, em acidentes de trânsito,m no trabalho, com problema sanitários, com falhas técnicas, com atendimentos ruins, e com escola abaixo da crítica, que é causa de tudo isso, mas também porque há escolha de que seja assim, ainda que por falta de boa educação (é quase uma galinha e ovo).

O que quero dizer é que você que está lendo precisa fazer uma avaliação por conta própria ou com um profissional para descobrir se é o que quer e o que pode fazer para resolver a dificuldade. Aqui mesmo eu nunca vi alguém dando uma dica que mudasse alguma coisa. Ou a pessoa recebe um "tapa na cara" para acordar, como eu costumo fazer, ou recebe palavras de incentivo que dá moral, mas não resolve o problema e cria ilusão e gera extrema decepção.

Aqui vai meu incentivo. Torço de verdade para achar um caminho. Algumas pessoas, se puderem, precisam de aulas particulares e não de programação.

O segredo é a base.

Faz sentido?

Espero ter ajudado.

Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

Muhamed Ali: Eu odiava cada minuto dos treinos, mas dizia para mim mesmo: Não desista! Sofra agora e viva o resto de sua vida como um campeão.

1

Meu problema não é exatamente assim! fora da programação, eu consigo aprender, praticar de varias formas e com facilidade. Não é um nivel extremo, mas digamos que você me diga pra fazer um "fluxo de caixa familiar" onde você tem as receitas e as despesas, ambos são Arrays e preciso somá-los e descobrir qual é o saldo atual. Eu fico meio que "parado" tento algo e não da certo,as vezes dá certo e quando vou ver a resolução é muito diferente da minha, as vezes penso que fiz da maneira errada, maneira porca e etc, e eu tenho 13 anos 👌

1

Seus comentários são os melhores, espero encontrar em todos os posts daqui!
As vezes me sinto como esse jovem e o meu maior problema é entender o que a pessoa quer de fato, os motivos, pra que serve tal demanda.
Eu fico mirabolando idéias e no final é uma demanda simples que me levaria 1/4 do tempo que tirei só pensando nela.

1

Estou no início do caminho da programação e acho isso uma coisa normal, passei exatamente por isso no início do meu aprendizado. Quando percebi que não conseguia resolver os desafios descobri que na verdade era minha base que não era boa. Ainda estou aprendendo e vez por outra aparece algo em que travo, mas se você quiser realmente diminuir essas dificuldades, minha dica é rever todo o conteúdo do zero, mesmo o que você já viu. Se você está fazendo um curso, procure outros professores que estejam ensinando os fundamentos. As vezes tem professores que pulam conteúdos, e para algus é bom e outros é pessimo. No meu caso, essa dificuldade era meramente falta dos conhecimentos básicos e saltar etapas do aprendizado.

Espero ter te ajudado, mas acho que estamos no mesmo barco 🙂. Estou torcendo por você 🙏

1
1

tem muitas opções, mas o curso em vídeo do Guanabara é uns dos melhores em português. Existe também o canal do feliz, o serlev e clubefullstack. Isso no YouTube,caso você queira pode até comprar algum curso baratinho na udemy, sempre tem promoção de cursos por 22,90. Eu fiz o curso de logíca de programação do YouTube da serlev e acabei comprando o curso dele na udemy de fundamentos do frontend por 22,90. E muito simples a forma que ele explica, e ele foca em conteúdos iniciais. Para mim funcionou muito bem. Existem outras opções gratuitas como o site da freebootcamp, mas ai vai depender de você ver o que é mais fácil de entender. Eu comprei um curso na udemy da cod3r, um fullstack, não digo que o professor seja ruim, mas ele passou um basicão de js no inicio do curso e passou mais de 100 desafios para resolver , eu comecei a fazer e fiquei muito frustrado não consegui resolver nem 30, parecia que eu não tinha aprendido nada, até parei de estudar achando que isso não era para mim. Depois de vários meses parado, decidi voltar a estudar assistindo o curso do Guanabara de algoritmo, cara, foi um choque para mim, não era eu que era burro, o curso que pulou muitas etapas. Para mim, não funcionou, mas isso depende de cada pessoa, do conteúdo que ela já sabia. Vou voltar e fazer o curso depois, com essa nova bagagem já adquiridas.
Espero ter ajudado 🙂😃

1

Você é jovem ainda, tenho 24 anos, comecei a programar com 17, como o maniero descreu muito bem, você precisa focar na base, algoritos, logica de programação, arquitetura de computadores, redes e por ai vai.

Em programação um mesmo problema pode ser resolvido da várias maneiras o que muda é a implementação, e isso depende muito da experiência de cada pessoa.

Você tem tempo ainda e se for comparar esta adiantado pois tem jente começando aos 30, não se cobre tanto foca na base em vez da ferramenta/tecnologia pois se você possui uma base solida é a curva de aprendizado de novas ferramentas com o passar do tempo vai diminuindo.

Sempre é válido procurar ajuda, não sei se você estuda por conta própia, talvez lhe falte um roteiro de estudo eu mesmo sinto falta disso quando vou estudar, você pode se programar e fazer um curso ead, uma etec(se tiver onde você mora).

O fato é que todo mundo tem suas dificuldades e você precisa descobrir o melhor jeito de cortona-las da melhor forma possível, espero que ajude em algo segue alguns links:

https://trilha.info/

https://roadmap.sh/

1

Não li os outros comentários então desculpa se eu estiver sendo repetitivo.

Também sou novo na programação frontend e duas coisas que me ajudaram foram:

  • Resumos: Não só assista aulas, faça um resumo do significado de tal coisa e também coloque no seu resumo um exemplo de código sobre aquilo.
  • Ao se deparar com o problema, consulte seus resumos: Se você sabe exatamente o que resolveria seu problema, como exemplo seria usar um ".map", vai no resumo do .map, relembre como faz e tente implementa-lo. Se você ve o problema e não nem por onde começar, releia os tópicos do seu resumo e vai olhando o problema para analisar "será que isso resolve meu problema?" se a resposta for não, vai para o resumo de outra coisa do javascript que você fez e assim por diante.

E claro, tente olhar algum curso gratuito ou pago (se não tiver muita grana, tem curso na udemy por 29 reais) para você ter uma noção das principais funções que existem no js, mesmo que você nao saiba usar todas, mas vai saber que ela existe, aí quando você precisar usar, já vai saber onde procura-la, voltando no curso, nas suas anotações ou até mesmo perguntando pro chatgpt algo como "como implemente renderização condicional no código X" e assim você vai indo, com o tempo vai se familiarizando com as coisas e tudo vai ficando mais fácil.

Boa sorte!

1

Para resolver problemas o primeiro passo é entender o problema.
A filosofia nos indica algumas formas de pensamento lógico.
Sugiro que compreenda os pensamentos indutivo e o dedutivo. São mais conhecidos como pensamento científico. O primeiro parte do caso particular para o geral enquanto que o segundo faz o contrário.
Você deve estar pensando mas como aplico isso na resolução de problemas?

Veja bem... Imagina que você tem uma situação problema em que precisa de identificar padrões em palavras, muitos problemas de desafios trazem isso.

Vamos supor o seguinte problema:
Dado uma lista de tamanho "n" sendo que 0 < n < 10000, contendo strings de tamanho "m" sendo que 1 < m < 10 encontre e retorne todos os casos em que há agrupamento de vogais, agrupados por tamanho de agrupamento.

Partindo do pensando indutivo teríamos o seguinte raciocínio. Quero encontrar o padrão vogais, o primeira caso particular mais óbvio seria "aa", dessa forma poderia escrever um algoritmo passe por cada um dos itens e me retorne se existe "aa".
Feito um teste para isso e verificando que está encontrando o que eu preciso, vou para os próximos casos: "ee", "ii", "oo", "uu".
Realizado essa parte de acordo com o método indutivo partiria para casos mais gerais, o pensamento seria quais as demais situações em que há agrupamento de vogais?
Obviamente "aaa", "aaaa", "aaaaa" e assim por diante.
Observe que tratar cada caso particular seria tedioso e desgastante.
Dessa forma precisamos de mudar de estratégia. Outra estratégia que podemos tentar utilizar é procurar por vogais e verificar se o próximo caracter é vogal. Com isso podemos repetir até que mude o caracter.
Essa estratégia parece resolver parte do problema, porém podem surgir situações não pensadas... Por exemplo "aankugeee", este caso é um duplo match e precisa de ser tratado de forma diferenciada, como o enunciado não menciona como tratar esse caso específico precisa-se de tomar uma decisão. Vamos considerar apenas que o caso maior ganha, dessa forma não terá repetição na lista. Isso gera o problema de que talvez precisemos de fazer mais de uma interação em cada palavra. E assim continua o raciocínio.

Partindo do pensando dedutivo, partiremos do caso mais geral, qual o caso mais geral? Não ter vogal! Ótimo, eliminamos todos os itens que não tem nenhuma vogal. Agora temos a garantia que não existe nenhum caso que não teria um agrupamento, mas note que poderia haver "a" e "ahifva" esses casos não nos interessa então eliminamos palavras com tamanho 1. O outro problema pode ser tratado agrupar as palavras por quantidade de vogais, palavras podem aparecer em mais de uma lista por conta da situação "aahikifdir". Assim pra cada lista verificamos de acordo com o raciocínio de ver caracteres agrupados mencionado anteriormente. E assim por diante

Veja que lista remete a loop, se a if, identificar a if ou a array.includes().

O resto é experiência de desenvolvimento. Quanto mais praticar melhor você fica.
Espero ter ajudado.

1
1

Em várias situações da vida, desafios podem parecer ser mais do que podemos lidar em um dado momento. Para o caso de sentar e aprender um tópico, nós temos o luxo de usar o tempo a nosso favor: nós podemos dividir um desafio grande em partes menores e lidar com cada tópico em separado, para amarrar tudo no final e resolver um problema.

Meu primeiro conselho para resolver um problema de programação novo é: olhe um exemplo semelhante. Procure as "fases" que compõe a solução e que tipo de informação é passada de uma fase para a próxima. Volte ao seu problema inicial e veja se vc pode estruturar sua própria solução em fases similares. A partir daí, pense em cada parte por si só, sabendo que seu objetivo é fornecer a informação que permite passar para o próximo passo. É natural perceber que vc precisa voltar um ou dois passos pra "resgatar" uma informação que não parecia importante antes.

Ah, e paciência sempre ajuda. Tem vezes que um problema fica na cabeça por diiiiias - e aí vc tem aquele estalo de uma nova ideia nos momentos mais inusitados, como no ponto do ônibus ou até no banho. Mesmo depois de anos codando, eu ainda me encontro resolvendo situações cujas soluções vem das inspirações mais aleatórias.

Que a Força esteja contigo!

1

Eu tinha muito medo de desafios no começo e muitas vezes ficava travado neles, então eu sei o que você está passando.

  • A primeira coisa a fazer é tentar um problema mais fácil, praticar bastante nos fáceis e ir aumentando a dificuldade aos poucos. É como estar aprendendo a chutar a bola na escola e querer jogar que nem um jogador profissional. Não vai rolar. Você tem que treinar bastante o básico antes de se jogar em coisas mais difíceis.
  • Outra coisa é entender bem o problema e escrever pseudocódigo em português antes de escrever o código em si, descrevendo os passos necessários para resolver o problema.
  • Uma outra estratégia é dividir o problema em partes menores e focar em uma parte de cada vez, mesmo que você ainda não saiba resolver o problema inteiro.
1

Indico reiniciar o curso, ou até mesmo dar uma conferida em outros começos de cursos, onde o pessoal explica a importância da lógica em programação