Como aprender programação do Zero?

Estou querendo aprender programação, tem alguma de começar pelo básico sem pular nenhuma etapa?

Teria algum roadmap?

Qual seu objetivo? No mínimo isso.

Se existisse algo universal, você já estaria lendo ele. Você está perguntando aqui porque quer algo personalizado. Porque se quer algo universal, eu diria que a primeira coisa que precisa aprender é pesquisar.

Mas se quer algo personalizado, a primeira coisa que precisa aprender é colocar os requisitos, ou seja, tinha que falar seus objetivos e o que mais for importante para que possamos responder de forma personalizada. Ninguém faz um software sem saber que tipo de software quer fazer.

Essas coisas são muito importantes. Todo mundo começa programar do zero, ninguém nasceu e já sabia programar. Todo mundo antes de programar aprendeu coisas fundamentais para vida toda, ainda mais em uma atividade de alta qualificação.

O primeiro passo é garantir que os conhecimentos básicos estão em ordem.

Comunicação e expressão é importantíssimo, porque você se comunicará com um computador em uma linguagem cheia de regras para se expressar, conversará com outros profissionais e usuários e precisa que a comunicação seja muito boa, para evoluir o que está fazendo, e terá que aprender muita coisa que depende de interpretação de texto para captar corretamente o'que está sendo dito.

Eu percebo que muitas pessoas não aproveitam as dicas que eu dou porque falta a capacidade de entender completamente o texto. Isso vai dificultar imensamente a programação.

Algumas pessoas perguntam se é preciso saber matemática para programar. E tem malucos que dizem que não. Programação é matemática. O tempo todo. A função da matemática é resolver problemas, igual a programação. A matemática costuma ensinar mexer com dados numéricos. A programação com todo tipo de dados, até alguns extremamente complexos, que a matemática nem ousa se meter. Vai usar muita aritmética (até porcentagem, regra de 3 - algumas pessoas não sabem fazer potenciação, que usa muito em programação), álgebra o tempo todo, quase não tem uma linha de código sem álgebra, conjuntos (que a escola ensina muito porcamente) incluindo matrizes, e muita lógica, muita mesmo, programar é usar a lógica (premissas, consequências por exemplo) em um nível que nunca viu antes (boa parte das pessoas não sabem que lógica é matemática e até o que é), entre outros conceitos, alguns mais voltados para domínios específicos do que para a programação geral, e alguns conceitos que geralmente só vê em programação mas é matemática, por exemplo álgebra booleana e relacional, complexidade de algoritmos e estrutura de dados.

E ciências, que aprende o método científico. Lembra que eu falei em pesquisar. Isso envolve também selecionar o que pesquisou, ser crítico, não aceitar só receitas de bolo, conseguir se aprofundar, validar, experimentar (sim, estudar é praticar, o fato das pessoas acharem que estudar é só teoria já indica que precisa aprender o que é é isso) e até formalizar o que está aprendendo.

Sem tudo isso ainda consegue aprender a programar, mas não vai bem. Programação de verdade não existe no vácuo.

Eu só sei indicar quem quer ser um profissional de desenvolvimento de primeira linha. Quem tem outros objetivos vai gostar mais de outras respostas. Tem gente que já parou de ler isso aqui há um bom tempo. Quem quer esse objetivo vai ter que ler muito, não pode se contentar com o raso.

Para o raso tem roadmaps prontos. Um dos mais famosos é https://roadmap.sh/. Eu não gosto tanto dele, ou de qualquer um (especialmente não gosto do nome porque roadmap tinha outro significado e agora se você pesquisa acha uma competição enorme com um monte destes guias de estudo e não acha os roadmaps das tecnologias que são mais importantes. Não gosto dele porque é raso, dá indicações boas e ruins, mas o leigo não sabe quais são as ruins. Não gosto porque ele incentiva começar por tecnologias e não tanto por fundamentos. Não gosto porque ele não tem separação por objetivos superiores em vez de objetivos disciplinares.

Um exemplo é o de ciência da computação, podia ser bem melhor. Pelo menos agora tem, antes não tinha. Se não usar ele com criticidade ele pode ser um tiro no pé.

Eu sempre falo para aprender os fundamentos, eles é que importam. Eles é que te tornarão um profissional requisitado que pode pedir o salário que quiser, que fará a diferença no mundo e resolverá problemas de forma adequada.

Frequentemente verá as pessoas incentivando você a pular etapas. Vão falar para aprender OOP como se isso fosse das coisas mais importantes. Uma hora vão te empurrar várias modinhas, algumas que você (e quase ninguém) jamais deveria chegar perto. Mas vale mesmo é a lógica. Primeiro precisa aprender a lógica imperativa que alguns chamam de lógica de programação, mas é só aprender como se faz algoritmos, desde os mais simples. Não é aprender algoritmos famosos. O termo é muito mal usado, tem livros em português com um título de algo que eles nem conseguem explicar o que é (por isso que prefiro livros em inglês).

Já falei que deve estudar por livros em primeiro lugar? E que inglês não é fundamental, mas ajuda imensamente? Pelo menos o básico.

Por isso eu falo para começar com C. Não para arrumar um emprego, mas para praticar o que está aprendendo em sua base. Vai aprender como o computador funciona (grosso modo falando), os mecanismos que usamos em sua essência. Vai se dedicar a isso sem se preocupar com a linguagem em si para usar depois. A linguagem é só a ferramenta para este objetivo.

Depois você estará pronto para outras etapas, começar ver outras linguagens, poder escolher uma l sem ninguém impor para você, poderá ver coisas mais avançadas, entenderá a computação e a engenharia de software para tomar melhores decisões, aprenderá ferramentas aos montes, quem sabe fará soluções mais simples e focará onde interessa para entregar melhores resultados em vez de rechear seu currículo com sopa de letrinhas, poderá se desenvolve bem, trabalhar em projetos cada vez melhores colhendo resultados mais interessantes.

Você não pode fazer isso tudo? Precisa de um emprego urgente. Lamento por isso e não tinha como eu saber. Cada dia ficará mais difícil achar algo bom pulando etapas, desde a escola, que está cada dia pior e não cumprindo seu papel e diminuir as desigualdades de chances das pessoas que nascem com algum privilégio, especialmente intelectual, das demais. Se você nasceu privilegiado, nada disso importa. Eu não nasci (em certa medida) e precisei de tudo isso.

Se chegou aqui e verá os link, você já deu um passo. Esper oque isso seja produtivo para alguns, sei que muita gente torce o nariz pra tudo isso, afinal os obetivos e privilégios são diferentes. Eu agradeço a oportunidade de eu consolidar ainda mais esse meu posicionamento e ter uma refer~encia que julgo estar ficando mais bem organizada para outras pessoas aproveitarem.

Para ver mais:

Eu estava fazendo uma lista de posts bons aqui do Tabnews, mas eu as perdi, por isso estou colocando (quase) só referências minhas (já está difícil compilar só elas, precisa ter um sistema de favoritos e listar por pontuação), mas tem vários outros excepcionais aqui para pesquisar. Eu respondo muito sobre essas coisas em outros lugares também, é só pesquisar.

Faz sentido para você?

Espero ter ajudado.

Gostou? Por que ainda não deu o like?

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).

É relevante que primeiro você precisa entender para que o aprendizado em programação vai lhe ser útil. Veja bem, uma das funções da programação é automatizar funções para assim ajudar pessoas a realizarem outras funções. Tente pensar em como isso vai ajudar o próximo. Essa, penso eu que deve ser a primeira das chaves que destranca seu cérebro, para realmente aprender a programar e lembre-se você nunca vai parar de aprender a programar. Tendo isso em mente.

<h1>Não desista</h1> <p>Programação é vida</p>

Po irmão, eu to aprendendo de forma autodidata por enquanto. O que eu fiz foi pesquisar a área como um todo, começa pelo basico, se familiariza com os termos da área. Por exemplo se tu tem duvida o que é um framework, não faz menor noção do que seja a parte de infra estrutura, banco de dados... Primeiro aprende isso, a partir disso, eu escolhi qual caminho eu quero seguir, EU optei por web disign, jogos e analise de big data, e desde então to estudando o basico pra tralhar com essas 3 skills. Uma dica que posso te dar e que se tu escutar vai ser extremamente valiosa é: enquanto tu ta se familiarizando e pesquisando o que tu vai trampa, vai lendo livros ou vendo videos sobre "lógica de programação" e a mais valiosa que eu descobri ainda nessa semana que passou. A microsoft tem um programa de capacitação no site dela, tem bastante coisa, tanto conteudo basico, intermediario e avançado. Vou deixar o link em anexo no fim desse comentario, no mais boa sorte e bons estudos irmão, vamo pra cima, não desista!

https://learn.microsoft.com/pt-br/training/

Olá João,

simplesmente curso.dev, você irá se surpreender assim como eu e outros alunos! Vlw

Opa João! Cara, roadmap tem vários. Porém acredito que antes de seguir um roadmap, seria interessante você pesquisar sobre as áreas dentro da programação e escolher a que você mais se identificar (front-end, back-end, dados, etc).

Quando você tiver isso definido, escolha uma linguagem de programação que faça sentido com a área que você quer seguir e aí sim siga um roadmap daquela linguagem.

Lembrando: Aprender programação leva tempo, dedicação e muita prática! Seguir o que eu falei acima te ajudará a ter um foco bem definido, pois é muito fácil se perder dentre as milhares de tecnologias que existem.

Foque em aprender bem os fundamentos, sem pressa, e pratique muito!