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