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

Como aprender isso !!!

Eu já tenho uma base sólida em algoritmos e atualmente estou focando meus estudos em Programação Orientada a Objetos (POO). Recentemente, ao enfrentar desafios no HackerRank, consegui resolver apenas cinco deles, o que me deixou desanimado. Mesmo após intensificar meus estudos, sinto-me perdido e estagnado. Estou em busca de orientações sobre como avançar, pois já venho praticando há algum tempo. Se alguém tiver sugestões de cursos, livros ou qualquer outra fonte para aprimorar meus conhecimentos, estou aberto a ideias.

Carregando publicação patrocinada...
6

Meu caro! Deixo aqui meus míseros 2 centavos de contribuição.

Não se atenha tanto a esses detalhes. Eu gosto muito dos jogos "soulslike" da From Software, e aprendi algo com aquela dificuldade "exagerada" que trago para a vida toda: A dificuldade existe para fixar o aprendizado na nossa mente. Existem dois tipos de pessoas, as que desistem na primeira dificuldade e a que continua tentando até conseguir. Sempre busco ser o segundo tipo.

Ao mesmo tempo que você está encontrando dificuldades nos desafios subsequentes, lembre-se que você já resolveu alguns. Quando se encontrar em dificuldades, se lembre do passado e de tudo que já superou. Na nossa profissão, todo dia existem 300 "desafios do HackerRank" a serem superados.

Tente ver de outra perspectiva. Talvez, e digo isso como um amigo e com o coração focado em te ajudar, mas taaalvez você não tenha uma base tão sólida quanto você pense. E ta tudo bem! Nesses longos anos que passei como desenvolvedor, diversas vezes precisei voltar ao básico e reforçar minhas bases. A base de conhecimento não é como um pedaço de ferro sólido que colocamos na fundação de uma casa. Está mais para um músculo. Você precisa fortalecer os músculos core do seu corpo até ter força o suficiente para treinar os músculos menores e periféricos. Mas se deixar de treiná-los, eles atrofiam.

Por último, e esse é um conselho de ouro: dê um cochilo. Funciona pra mim 100% das vezes; toda vez que me encontro travado em uma solução de algorítimo, dou uma cochilada ou deixo pro outro dia, me esqueço completamente, e a ideia de solução magicamente "aparece" na minha mente. Não existe curso ou livro que vai ajudá-lo mais que isso. Testa, vai que dá certo pra você também.

No futuro você vai olhar pra trás, lembrar desses problemas e pensar "hoje eu consigo fazer isso de olhos fechados" :)

1
1
0
1

Um conselho que poderia te passar é o seguinte: desenvolva projetos a qual você se sinta a vontade de aplicar os conhecimentos aprendidos. Por exemplo: Talvez tudo isso que você esteja vendo faça sentido quando aplicados em um contexto a qual você se sinta mais a vontade. Acredito que o único problemas com exercício é que eles limitam aquilo que de fato pode ser aplicado, são interessantes, em um primeiro momento para aprendizado por repetição. No entanto, nunca vão substituir o contexto real ou a imaginação.

Talvez Programação Orientada a Objetos faça sentido quando você estiver desenvolvendo um jogo legal ou talvez Estrutura de Dados finalmente tenha alguma sentido quando você estiver lidando com um problema em seu projeto onde você precisa otimizar o tempo de resposta do usuário. Desafios e exercícios são essenciais, não estou falando que não importantes, mas o melhor aprendizado vem do surgimento de um problema em seu estado natural onde você identifica ele, formula e aplica a solução!

2
1
0
1

Continue praticando. Quando tiver algum que você não consiga resolver depois de muito esforço, então veja a resposta na internet. Por que muitos tem truques que não são óbvios de início, mas que são repetidos em muitos desafios

0
1

Olá, sofri com isso no início quando comecei a programar, mas não existe regra, é treino e leitura de código.

Eu não sei em qual linguagem você está estudando, mas eu acredito que este canal, que é o que me ajudou bastante, vai te ajudar: https://www.youtube.com/@ArjanCodes

Fora isso, eu recomendo a leitura de códigos open-source no GitHub, exemplos:

Estes softwares possuem diversas implementações que são voltadas a OOP, no caso Rust não possui Classes mas possui Structs e Traits que podemos entender como similares (quase idênticos quando usados juntos haha).

Ler o código de outras pessoas é uma coisa bem fundamental que vai te ajudar a melhorar sua capacidade de escrita. Contudo, eu já deixo claro que é bem important tomar cuidado e transformar o código de outros como a verdade absoluta, ou seja, não é porque o padrão X existe na empresa Y que ele é o melhor e eu vou usar em todos os meus projetos. Talvez funcione para você em algum momento, mas OOP possui diversos padrões que possuem aplicações diversas. Não que você não possa usar, mas fica a critério do desenvolvedor usar a experiência dele para dizer o que vai ser melhor. As vezes você vai errar, que ótimo! É bom errar e errar o quanto antes e, ainda mais, saber que errou. Dessa forma que eu aprendi e levo comigo pra minha vida toda.

E pra estudo de algoritmos, eu recomendo estes canais para você usar como base:

Recentemente eu voltei a fazer estes desafios e sempre opto por C++ porque se eu fizer em Python sei que vou roubar porque eu programo em Python há muito mais do que programo em C++. Então geralmente eu faço as coisas do zero, o que, para mim, é uma coisa muito útil. E eu uso bastante o ChatGPT para me ajudar a melhorar e a entender implementações.

2

Agradeço pelo seu comentário! Fico feliz que tenha apreciado a sugestão. Meus estudos realmente se concentram em canais em inglês, e é ótimo saber que você já pratica o idioma e aprende o que deseja em seguida. Concordo plenamente sobre a importância de ler códigos open-source e documentações das linguagens. Também acho fascinante acompanhar esses experts que resolvem algoritmos da Google em apenas 3 minutos. Mais uma vez, muito obrigado!

1

Se ta dificil você ta no caminho certo, você não vai evoluir resolvendo exercicios que ja sabe a resposta, mas sim quebrando a cabeça e estudando aquele problema que não consegue.

0