Problemas de um iniciante

Yoo, eae gente ! Sendo direto aqui, eu retornei depois de ANOS sem contato, não que eu soubesse muito, mas um contexto quebrou minhas pernas, enfim.

Vim fazer um questionamento para vocês, o que acontece comigo é simples, estou estudando HTML e CSS (uma base mínima pra WEB), ao mesmo tempo que estou tentando aperfeiçoar e aprender lógica, com Python, também fui atrás de livros para melhorar e estou fazendo tudo, lentamente, mas to kk

O ponto aqui é que comecei a perceber coisas complicadíssimas

1 - É FRUSTRANTE

Já esperava e sabia que seria, mas é mais ainda por que aprender essas bases é algo NECESSÁRIO, QUE EU ME RECUSO A DEIXAR PASSAR, mas me frustra muito as vezes eu ver que a resolução de um Exercício simples por mim foi feita de uma forma, pelo professor por outra EXTREMAMENTE EFICAZ/LIMPA, saca ? Sei que é experiência, mas aí eu me pego naquelas:

"Preciso de experiência para fazer isso, então vou pensar em projetos !"

Aí eu percebo que além do nível pra começar com os projetos estar lá embaixo pelo fato de não ter muita experiência, a minha lógica as vezes é fraca, e o código fica longo ou dá um resultado que poderia ser simplificado.

O melhor de tudo é que eu sei que esse amadurecimento nas linhas de código vem com o tempo, mas aí eu me pego pensando, e como eu exercito isso sem conseguir fazer quase nada sozinho ?

2 - O que diabos eu defino como base ?

"Estude lógica, estude HTML e CSS, entenda JS e melhore gradativamente indo pra outras linguagens"

Bem resumido, mas literalmente qualquer conteúdo, hoje no geral diz isso. Não é meu primeiro quem dirá o último post pedindo ajuda, porém das últimas vezes (anos/meses), eu percebi que fiquei preocupado demais com o conjunto da ópera, o geral! Agora eu me encontro numa situação que é cômico por que, oh coisa difícil do inferno!

Tenho ouvido vários termos que são "bases", e que eu sequer entendo por onde começar a entender k, os famosos termos técnicos, pra ter ideia e tenho jogado cada um que vejo ou leio no Trello pra pesquisar depois e descobrir, faz 3 dias contando com a data do post que criei o Trello, no primeiro dia já tinham 20 palavras, e só não tem mais por que esqueci de anotar algumas ainda. E tem tanta coisa que você não sabe que senhor Deus!

No momento eu quero principalmente e logo, chegar no ponto de poder começar a criar coisas, nem que seja uma página estática estilizada sobre algum tema que eu goste.

3 - Livros

Eu gosto de ler, e tenho feito isso, achei bibliotecas no Github e fiz download de alguns livros para poder ir fazendo, mas aí eu reparei no seguinte:

Não tenho ideia de como estudar com um livro

São termos técnicos (normalmente), e sinceramente sinto que apenas ler não é o bastante, então queria questionar quem é adepto desse método, para me passar algumas dicas se possível, claro!

4 - Prática

Olhei e pesquisei sites, procurei livros e VÁRIAS outras coisa, treinei até um chat pra me ajudar com pesquisas de termos, dúvidas e até uma coisa ou outra em formato de exercícios para que ele pudesse me ensinar, mas como eu disse acima. É dificil sem saber muito, e sinto que mesmo se eu soubesse mais, esse tipo de site é difícil até nesses casos (pode ser uma falsa impressão por estar "muito longe", mas é o que parece as vezes)

Bom, tirei um pouco desse "peso", adoraria ter criticas a minha pessoa, contato que sejam construtivas, e sim eu sei que deve ser irritante mais um novato perguntando coisas "obvias", mas adoraria pode debater com alguém pudesse me ensinar algo novo.

Valeu !

Cara, no seu caso eu recomendaria uma faculdade. Pelo q percebo, seu problema é pq vc não consegue se auto gerenciar e por mais q vc tente, vc nunca irá conseguir sozinho pq vc está preso mentalmente num ciclo. E não digo isso pra te jogar pra baixo, mas é pq estou sendo realista. Vc está literalmente patinando mesmo ponto no gelo.

Uma alternativa além da facul é vc ter alguém te orientando. Sinceramente isso é bemmm mais difícil achar. Eu por exemplo estou orientando um amigo, mas faço isso pq quero fazer isso por ele, mas nem todos estão dispostos a perder tempo orientando outros.

Mas assim dá pra vc conseguir isso sozinho, porém eu acho q a chance de falha é alta pq ao meu ver, seu problema não é aprender a programar e sim como vc lida com aprendizagem. Eu posso estar errado, pois não sou expert, mas sempre uso como base minhas experiências de sucessos e fracassos e acho q seus problemas podem ser esses:

  • vc está tentando evoluir rápido demais (a famosa ansiedade). Vc deve ter N razões para querer aprender, normalmente é entrar na área o mais rápido possível para ganhar dimdim, mas se vc não souber controlar essa ansiedade, vc não consegue perceber o q está aprendendo.
  • vc está pulando a parte de ambientar e está querendo ir direto ao produzir. Qndo eu digo isso, vc está mais preocupado em produzir um produto ao invés de aprender sobre o q vc está estudando. Esse NÃO É seu momento de criação, a não ser q vc ame programação, vc nunca irá conseguir logo de cara. Pessoas normais precisam entender sobre a ferramenta primeiro antes de querer criar algo com ela. Imagina o seguinte. Vc ganha uma impressora 3D. Ai vc quer produzir um monte de peças e tals. Mas como vc irá produzir algo se vc nem sabe como mexe na impressora? Vc nem sabe configurar, vc nem sabe como colocar o arquivo digital nele, vc nem sabe como é o funcionamento básico dele. Entende? Eu acho q vc está nisso. Vc tem q parar de querer criar coisas e aprender sobre a ferramenta. E em consequência vc será redirecionado para aprender a base. Então minha sugestão é por enquanto parar de tentar criar projetos e começar a fazer mais tutoriais, começar a procurar como funciona tal coisa da tecnologia q estiver usando, aprender mais sobre a linguagem, aprender mais sobre o framework. Essa coisa de produzir só serve para quem já sabe usar a ferramenta, pq se não sabe, vai continuar é sonhando com sua criação, pq vc não saberá colocar no papel, nesse caso em códigos.
  • uma coisa q eu discuti (não no sentido de brigar) com meu colega de trabalho no começo do ano e uma coisa q ele me convenceu é q iniciantes não devem aprender clean code. E ele tem razão pq pensa o seguinte. Se um iniciante q sabe qse nada de programação pegar o livro, começar a ler sobre um tópico, quantos porcento daquele tópico ele irá entender? É bem provável q entre 0-10%. Sabe pq? Pq ele não tem experiência o suficiente para entender aquilo. E isso é normal acontecer, pois esse livro exige q a pessoa saiba comparar a experiência dele com os exemplos e conhecimento descrito ali no livro. Então assim, se quer minha recomendação, por mais q isso seja estranho, pare de ler livros para melhorar seu código. Esse não é o momento de vc aprender como melhorar e sim momento de errar.

Bom, são esses os pontos q vejo (e sempre lembrando q posso estar errado) q vc pode estar falhando. As minhas recomendações iniciais ainda prevalecem, q vc precisa de orientação, seja uma facul ou alguém te ajudando.

Mas se ainda é teimoso o suficiente para tentar aprender por conta, então vou sugerir o formato parecido com o q estou ensinando para meu amigo. Meu foco é fazer o estudante se ambientar com a linguagem/framework, aprender coisas complexas dela e depois começar a parte de criação de algo dele.

A parte de ambientar é fazer um monte, mas um monte de tutorial. Pode botar uns 100 tutoriais ai na conta (to exagerando pra entender q não é pouco). Essa parte o foco é ir fazendo exercícios para aprender sobre a linguagem e dependendo do caso sobre o framework. Um monte deles é bem provável q não complete, mas o ideal é insistir até chegar num ponto q vc conseguiu superar todas barreiras, seja bugs, seja incompatibilidade de versões, seja problemas q a IDE não é mais a msm e vc precisa procurar por alternativas. E nesse momento vc tbm ir entendendo o q vc fez. Para isso recomendo o estilo SRS. Ou seja, vc refaz seu código q vc já fez desse tutorial, mas tenta primeiramente fazer sem tentar copiar, mas sim forçar seu cérebro a lembrar de como vc fez aquilo. Quanto mais vc pensa naquilo, mais vc refaz aquilo, mais vc relembra sobre aquilo, mais ambientado vc estará com a linguagem/framework.

Agora aprender coisas complexas é o q pode entrar a base. Esse eu recomendo fortemente focar em algoritmos e estrutura de dados. No começo vc pode pegar aqueles mais fáceis para replicar com a linguagem q vc utiliza, mas vai pesquisando por uns mais variados e depois vai aumentando a dificuldade. Por exemplo, vc sabe o q é pilha na programação? Se sabe, vc sabe usar? Vc sabe quais momentos vc pode utilizar? Vc sabe qual é o algoritmo mais eficiente para ordenar uma lista? sabe como ele funciona? sabe como implementar ele? Ou sabe implementar um grafo? Já pensou como eles funcionam? Aposto q vc deve conhecer, mas vc não tem mta ideia de como eles funcionam e nem pra q é utilizado. Por isso pesquise, entenda e implemente eles. Essas coisas é parte da tal "base da programação". Claro q não é tudo, pois nem eu sei definir o q é, mas algoritmos e estrutura de dados já é por default parte da base da programação, então pode aprender mais sobre elas. Ainda nessa parte eu incluiria aprender mais sobre coisas fora da linguagem/framework, q é por exemplo, aprender sobre banco de dados, como utilizar elas, tbm aprender mais sobre arquivos e como manipulá-las (exemplo, arquivo mp3, json, importar/exportar txt, qqr outra coisa relacionada a arquivos), aprender mais a fundo sobre API. Claro q nem todos vc precisa aprender 100% sobre, mas vc precisa ter contato e ir aprendendo como integrar com seus projetos, ou como usá-los.

Ai vem a terceira parte q é o momento da criação. Nessa parte vc pode fazer algo seu, pois vc já tem o mínimo de conhecimento necessário para produzir algo. Ai vc decide o q quer fazer. Se vc pular as outras 2 etapas, tenho certeza q essa nunca se concretizará por completo, pois por mais q vc tente, sem a ambientação vc não tem conhecimento mínimo de como deve ser produzido algo. Vc até pode tentar encurtar caminho com IA ou algo assim, mas uma coisa é vc copiar, outra é vc entender o q vc está fazendo.

Bom, espero ter ajudado em algo e boa sorte ai no seu processso de aprendizagem.

Meus 2 cents:

Por coincidencia, outro usuario postou uma duvida semelhante a pouco. Minha resposta foi:

https://www.tabnews.com.br/Oletros/96d259a9-d98d-461c-b681-06cc38c176d1

Basicamente:

Aprendizado requer algumas coisas: disciplina, flexibilidade e treino.

Apesar de parecer contraditorio, disciplina (foco, organizacao, persistencia) eh a capacidade de controlar impulsos, seguir um plano de acao e resistir aa tentacao de desistir, mesmo diante de dificuldades - enquanto que flexibilidade eh essencial para lidar com as incertezas e imprevistos do cotidiano.

Eh importante ter uma estrutura e uma rotina para alcancar objetivos, mas tambem ser capaz de se adaptar a mudancas e aproveitar oportunidades inesperadas.

Treino eh basicamente exercitar - mas geralmente precisamos de um tutor para criar a serie de exercicios, em uma sequencia que faca sentido de dificuldade e objetivos definidos (raramente exercicios aleatorios para aprendizado dao muito resultado).

Por isso existem os cursos: para orientar e dar direcao.

Dito isso - existe um curso basico na internet:

Harvard, o CS50: Introdução a Ciência da Computação, estava disponível com legendas em português e totalmente gratuito:

https://materiais.napratica.org.br/cc50

Teve um post falando sobre ele aqui:

https://www.tabnews.com.br/matheuspazinati/curso-cs50-de-harvard-minha-opiniao

Nao se deixe intimidar por der um curso de Harvard e o titulo "ciencia da computacao" - eh um curso bem basico, voltado para quem esta comecando.

Eh um bom comeco (e fala sobre python).

E existe o curso do Filipe Deschamps (aqui do TABNEWS)

https://curso.dev

Tem um custo - mas oferece a garantia de 30 dias.

Boa sorte e sucesso !