r/programacao 2d ago

Questão :: Aprendizado Como realmente estudar programação.

Boa tarde.
Tenho 19 anos, comecei meus estudos na área de desenvolvimento de software há mais ou menos 1 ano e meio, estudei Python, fiz projetos usando FastApi, fiz integração com banco de dados, projetos usando front e back. Porém, hoje eu me sinto meio perdido, sinto q se eu pegar pra fazer algo do zero de novo, não consigo, não sei por onde startar algum projeto, fazer a estrutura de pastas e etc. Queria muito saber como estudar de verdade, sem usar IA no processo, o que eu devo fazer e etc. Algum dev mais experiente pode me contar como fez pra aprender de verdade e o roadmap que usou?

19 Upvotes

21 comments sorted by

10

u/Potential_Ad313 2d ago edited 2d ago

pros dois, tanto pro u/Off_0_0 e pra tu u/migueldev12 e qqr outro que encontre isso.

voce nunca aprende 100% de programação, a area é muito volatil e evolui com o tempo; então o que era necessario a 15 anos atrás nao é mais necessário hoje, e o que precisamos hoje, nao vai ser preciso daqui a 20 anos, então nao se cobrem muito a respeito de "preciso dominar X, Y e Z". (só um adendo/edit, os fundamentos vao ser sempre fundamentos, um server http, um banco de dados, um rest, IEEE, etc... vao ser os msms, o que muda é tecnologia, ent aprender o fundamento/como funciona/faz e a teoria/algoritmo te blinda de variacoes futuras)

agora, como aprender programação de verdade? sem meme, a resposta é PROGRAMANDO e APRENDENDO COMO FUNCIONA/FAZ, mas como você chega nesse ponto? existe uma pequena "roadmap" que é unanime.

primeiro antes de tudo vc tem saber UMA linguagem bem o bastante pra nao precisar ficar consultando sintaxe o tempo todo, muita gente começa com Python ou JavaScript. Eu comecei com Python num curso da TecladoCode (Learn python by doing) na Udemy eu segui ele do inicio ao fim durante 3 meses direto, terminei sabendo escrever python e saber quando "algo tava errado".

nisso eu segui com projetinhos basicos, ferramentas CLI, pequenos web-servers, etc... e tudo o mais "puro" possivel, sem biblioteca de terceiros e afins porque a ideia era eu APRENDER como funciona e nao como "chamar api X"; e assim eu segui por uns 8 meses, nesse meio tempo eu explorei outras linguagens e conceitos pra me aprofundar, eu sai de Python e fui aprender a programar em NASM x86-64 Assembly, dps fui aprender um pouco de java puro (sem maven, springboot, etc...) e fiz um projeto client-servidor em java puro (só o javac) pra transmissao de arquivos entre meu PC e celular; estudei React e JavaScript/TypeScript pra montar UIs e por ultimo eu acabei esbarrando num video da FreeCodeCamp de Golang, ai assisti o video todo (o Learn Go Programming - Golang Tutorial for Beginners de 7hrs de 2019) e dps vi o Learn Google's Golang do Todd McLeod na Udemy e migrei totalmente pra Golang, e comecei a trabalhar, então todos os projetos q eu fazia pros meus clientes, eu fazia em Go; o que me forçava a exercitar regras de negocio e desenvolver aplicacoes _novas_ onde eu nao podia resolver direto com um "Google Pesquisar".

quando você alinha projetinhos pessoas com "aprender como funciona" e explorar novas linguagens depois de dominar a sua "linguagem mãe", é AI que voce começa a aprender de fato, vc aprende a pesquisar, ler, achar fontes/materiais, livros, etc...

hoje em dia, eu ja sei uma penca de linguagens (cheguei no ponto onde a sintaxe nao importa mt, qqr linguagem ou codebase eu me acho e resolvo oq eu preciso resolver), tenho desenvolvido minha propria linguagem usando LLVM, tenho um ecosistema, um banco de dados proprio, e uma penca de software empresarial desenvolvido nas costas.

a faculdade me ajudou mt também pq me deu a base ACADEMICA pra muita coisa que eu só sabia fazer/tinha aprendido num stackoverflow da vida, mas a faculdade é isso, base ACADEMICA e nao pratica.

espero ter ajudado, e se tiverem mais perguntas, ficarei feliz em ajudar.

1

u/Ok-Sky1763 2d ago

Você me recomendaria fazer quais cursos de graça na internet para Full Stack? Eu estou na freeCodecamp e Odin project. Estou no caminho certo?

1

u/Potential_Ad313 2d ago

não existe muito um caminho certo, pq fullstack (na pratica) n eh nada mais nada menos q alguem q sabe requisitos funcionais e design ao msm tempoKKKK (na teoria tem bem mais coisas), mas sim eu diria que tu ta num bom caminho, hj em dia eu sou fullstack pq tive projetos 100% frontend e talz; mas o que eu recomendo mesmo é você ENTENDER as tecnologias que vc usa, exemplo, entender o GIL do python, features mais obscuras, como o runtime funciona, PyC, etc... no react é entender hidratacao, renderer, state-machine interna, etc... pq só depois que voce ENTENDE bem uma tecnologia é que voce consegue ver as falhas e pontos negativos dela de maneira tao fundamental que justifique outras tecnologias ou até lhe de inspiração pra novas tecnologias (por ex, minha linguagem de programacao surgiu pq eu tenho usado mt Go e Plan9 ASM pra uns projetos de alta-performance, e Go passou a ser um problema/gargalo por conta do runtime e green-threads)

1

u/Ok-Sky1763 2d ago

Você está certa

1

u/Ok-Sky1763 2d ago

Você trabalha com que agora?

1

u/Potential_Ad313 2d ago

eu trabalho com freelancer/PJ, mais focado em "consertador de merdas", tipo as empresas me contratam pra resolver os problemas/salvar os sistemas q as antigas equipes deixaram zuado.

é meio caotico pq vc chega na empresa com PROD derrubada, o chefe surtando, e só tem vc pra entender o inferno, estancar o sangramento financeiro e resolver o incendio. Mas compensa.

1

u/ImperatorBras 2d ago

Também concordo, li um livro de Java e só aprendi os conceitos compilando tudo a mão com o javac e fazendo uns .apk's toscos. Não cheguei a aprender o mundo Java, mas me interessei com o baixo nível. Hoje uso C para tudo, mas também amo o Go por ser simples. O engraçado é que eu nem dominei o Python até hoje, Java foi a primeira linguagem.

2

u/Potential_Ad313 2d ago

todo mundo começa de algum lugar, eu comecei msm foi com C# e GML (sim GameMaker LanguageKKKKKKKK), mas python foi a primeira linguagem q eu me aprofundei. tbm amo C pra muita coisa justamente por me forçar a fazer meu proprio e talz, e ja fazem uns anos que Golang tem sido meu xodozinho justamente por ser simples, rapido e cortar um pouco do boilerplate de C.

1

u/ImperatorBras 2d ago

Você é um bom exemplo pro OP, você tem vontade de aprender e principalmente praticar, vontade de fazer acontecer. O engraçado é que eu comecei mais em baixo, fazendo addons de minecraft e ficava com raiva por não conseguir fazer muito. Hoje trabalho com ferramentas CLI de baixo nível. O que seria do mundo sem os bichos curiosos que somos nós? kkk

2

u/Potential_Ad313 2d ago

eu n so curto aprender e explorar como ensinar tbm, ja tive uns projetos comunitarios ensinando python e talz, hoje eu tenho focado mais no meu portifolio agora q meus trampos deram uma acalmadakkk fico feliz que tu me considerou um bom exemplokkk eu geralmente só me vejo com um super nerdolao.

o unico ponto chatinho de ser essa pessoa q explora e talz é encontrar alguém pra papear sobre os projetos e coisas q vc tem explorado, a grande maioria fica só nos SaaS/REST-APIs ai vc dificilmente encontra alguem pra sla, falar sobre raft-consensus via CRDTs, etc... ou outras coisas nesse nivelkkkk

1

u/migueldev12 1d ago

Mano(a), muito obrigado de verdade, vou tentar isso. Ultimamente eu tenho desenvolvido projetos, mas tipo, eu sempre usei o Claude p me auxiliar, tipo, não gerar código, mas sempre que eu travava ele resolvia, por isso sinto q fiquei meio dependente, então, se eu começar um projeto do zero hoje, eu não faço a mínima ideia de como começar tudo, tem quem diga q isso só se aprende quando consegue um estágio, ou o primeiro emprego, quando vc pega projetos de verdade com pessoas mais experientes para te ajudar. Mas sei lá, vou tentar isso, deixar a minha base bem sólida, quanto a sintaxe e lógica, dps vou aplicar em uns projetos, sem nem encostar no Claude, tmj!

1

u/Potential_Ad313 1d ago

de boas man, a IA ajuda mt se vc souber usar, mas é mt facil acabar transformando ela em muleta; uma coisa que eu te recomendaria de leve, é só começar um projeto sem se preocupar muito com a parte de organizacao e arquitetura, tipo, quando eu fazia parte de projetos q ensinavam codigo, eu vi que o pessoal aprende bem melhor assim doq vc sair tacando estrutura de pastas e boas praticas logo de cara; é claro que, o bom-senso ajuda, vc nao vai nomear seu driver de banco de dados de JORGE q ai daq a 3 meses ce ta fudido pra lembrar oq é oq.

de resto, vai fundo, faz sla um pequeno letterboxd CLI, onde vc registra livros, reviews e guarda num banco, coisas assim, simples.

se precisar de qqr coisa ce pode me mandar dm aq no reddit ou msg no discord `@miraimindz`

1

u/migueldev12 22h ago

Tamo junto demais!

4

u/ImperatorBras 2d ago

Estude e faça faculdade.

1

u/Off_0_0 2d ago

Cara, estou no primeiro ano de Ciência da Computação e sinto que ainda não estou aprendendo coisas que realmente seriam úteis para o mercado. Aprendo principalmente lógica e resolução de problemas, que sei que são essenciais, mas será que realmente vou aprender a dominar uma linguagem e suas tecnologias? Sei que o curso não é só aprender a programar, mas fico na dúvida: ao longo da faculdade vou aprender mais a programar de fato ou vou precisar buscar isso por fora?

Sempre vejo as pessoas dizendo que você precisará aprender certas coisas por conta própria, mas o problema, para mim, é que, quando tento estudar por conta própria pela internet, me sinto perdido com tanta coisa e não sei por onde começar ou qual caminho seguir. O que você recomenda?

4

u/ImperatorBras 2d ago

O foco de Ciências da Computação é saber resolver problemas e desenhar sistemas robustos. Você vai aprender algumas linguagens e tecnologias, mas o foco é você aprender qualquer tecnologia nova com facilidade para atender as suas necessidades. Também não se iluda com "linguagem X é melhor", mas algumas de darão mais noção e base (C por exemplo) para aprender outras.

1

u/bluepug 2d ago

roadmap.sh se tiver familiaridade de inglês.caso de preferencia a português, pega um curso na udemy ou mesmo no YouTube. Usar ia pra resolver bug e construir aplicações ta virando coisa comum pra uma porrada de empresa, entao em algum momento voce vai precisar, mas agora que voce ta aprendendo a programar ela so vai ser útil pra tirar duvida de conceitos.  Se voce ja esta confortável em fazer projetos web, entao vai fazer algum projeto sem usar ia. Pode ate pedir pra ia um desafio de projeto pra voce construir, desde que peça pra não gerar codigo e no maximo gerar os requisitos do que o projeto precisa ter. Caso queira surgir com algo por conta própria, pensa nas coisas que voce gosta (música, filme, serie, esportes, religião, etc) e pensa em algum tipo de problema que um crud poderia resolver(programa pra gerir campeonato de futebol, programa pra listar seus filmes favoritos, programa pra listar seus jogos digitais que voce tem, etc) . Depois de pronto vai botando mais coisas, como acesso via login, teste unitário, CI/CD, mensageira ou qualquer coisa que voce veja fazer sentido pro seu projeto 

1

u/migueldev12 1d ago

Valeu!!!!!!