Início complicado na programação

Para muitas pessoas (estou incluso), o início de cada coisa/projeto é sempre a etapa mais difícil do processo. Me chamo Alan Almeida e estou no meu segundo ano cursando Sistemas de Informação. Nesses dois anos de altos e baixos, sempre estive ligado nas novidades/tendências de tecnologias e vi um crescimento gigantesco no mundo chamado PROGRAMAÇÃO. Com esse hype de vagas e altos salários, decidi (mesmo sem ter certeza) que é isso que vou buscar me aprofundar.

Ao longo desses dois anos de faculdade, estudei muita lógica de programação com algumas linguagens como Python e Java (linguagem que aprendi POO). Para reforçar os estudos e atrelar conhecimento com a faculdade, comprei um curso chamado Nitro de lógica, algoritmo e estrutura de dados com C++, junto à congruente do Micael Mota (recomendo bastante para iniciantes). Estou progredindo, porém, em certos desafios avançados ainda tenho uma certa dificuldade, mas sei que o caminho é continuar praticando.

O que tem me intrigado é que, na hora de pensar no futuro como programador, vejo claramente 3 caminhos: front-end, back-end e Mobile. Como estou no início, ainda não sei qual caminho seguir. Sempre vejo pessoas codando sites front-end com designs magníficos e apenas admiro, muito porque não me identifico com designer e logo vejo que front-end não é pra mim. Back-end me chamou bastante a atenção, pois já utilizei Java (apenas POO) e gostei, porém, nada mais a fundo. Também vi alguns relatos de que, para quem está começando, não é uma boa ideia começar direto pelo Back, pois é interessante você ver o que está criando (algo comum no Front). Na dúvida, me restou buscar o máximo de informação na carreira Mobile, em especial Android, que é um sistema que utilizo e gosto.

Nessas incertezas, me pergunto: devo começar por Mobile, Front ou Back? Já que quero escolher uma carreira e não uma tecnologia. Hoje me vejo atrasado por ainda não ter escolhido algo e ainda não ter desenvolvido nada durante tanto tempo.

cara começar pelo front é bom pra ver a parte visual como tu falou, mas se tu nao ligar muito pra isso e tiver disposto tenta backend, se tu se interessa pelas 3 testa as 3 e ve aqui tu gosta mais

Primeira coisa que você precisa entender é que programação é uma forma de resolver problemas, se tu ficar muito tempo pensando em quais problemas quer resolver (front, back, mobile) o tempo vai passar e ti ainda não vai ter escolhido nada, ou pior, ficar pulando de curso em curso

Fala Alan, beleza? Olha, siceramente eu não entendo (entendo sim, mas acho equivocada) essa ideia de ter que escolher um caminho. Acredito que o ideal é pegar uma ideia de projeto simples (simples mesmo, foca no CRUD) e construir ele de ponta a ponta, do Front ao Back. Coloca em produção, com autenticação, Banco de Dados e tudo. Se estiver se sentido motivado, faz um App e publica também. Experimenta colocar anuncios e enteder os diversos tipos de produtos e monetizações possíveis.

Não precisa estar perfeito (não vai estar). Não precisa ser lucrativo (não vai ser). Não precisa ser escalável (não vai precisar). Não precisa nem ter clientes/usuários. Apenas não enrole, não fique divagando durante dias sobre os requisitos do sistemas ou questões irrelevantes (já vi gente travar e abandonar o projeto na escolha do nome do website). Em tese, não precisa ser especialista em nenhum desses caminhos para fazer um app completo, é preciso apenas sentar e (se esforçar para) fazer.

Se hoje você tem esse sentimento de estar atrasado, é porque falta colocar a mão na massa. Incertezas na carreira sempre vamos ter, mas não podemos deixar que isso nos deixe estagnados.

Obs: Minha resposta pode estar enviesada pelo fato de eu sempre ter sido Fullstack. Pra mim esse é o normal; sempre que vejo os programadores gigantes das empresas em que trabalhei, sempre eram desenvolvedores completos, que conheciam o fluxo de ponta a ponta.

Obrigado pelo feedback MathReis, você me ajudou bastande abrindo minha mente, agora tenho um norte a seguir.