TL;DR
Jovi, o texto completo fala bastante sobre mim. Mas com a intenção de você:
- Aprenda com os acertos e erros dos outros - o nome desse jogo é "Sabedoria"!
- Não existe melhor caminho, a vida NÃO é um trilho - é uma trilha!
- Sistemas Embarcados é "baixo nível" nível "Assembly"-like
- Ruby parece ser legal - eu estou aprendendo neste momento
- Você é muito jovem - use e abuse deste seu super poder
- Seja obcecado por alguma coisa - se possível por algo que seja útil
Sim é repetitivo.
Mas acho que venho mudando minha opinião sobre este tipo de post... Antes era "downvote" na hora... Agora venho tentado me colocar no lugar daquela pessoa, com a perspectiva daquela pessoa, ou seja, tentando a "tal da empatia".
Então @ArthurCastro, vamos lá! Por acaso eu trabalhei com sistemas embarcados por alguns anos e, por acaso de novo, eu estou numa jornada de "reaprender" a programar e escolhi Ruby (na real Rails).
Vamos ao ensaio em 3 atos (tem TL;DR - caso você não esteja no mood pra ler).
1. Sitemas Embarcados - eu achei legal, mas não obrigado!
Trabalhei com sistemas embarcados em dois momentos, primeiro com "Leituras de Tag" (tipo Sem Parar) e depois com "Controladores de Ar Condicionado" (AC).
Ambos os casos, são basicamente dois momentos:
1. Momento Laboratório: onde a gente faz uma série de testes em bancada, usando simuladores dos microcontroladores ou em "microcontroladores"-like (tipo versões com menos restrições). Na época do "Sem Parar" usei simuladores de um chip da Intel e, na época dos AC, Arduino. Aqui é "C" / "C++"... Não tem "tela" jovi... É terminal e "luzinha piscado".
2. Momento Produto: se no Momento Laboratório era terminal e "luzinha piscando", aqui é osciloscópio. Geralmente aqui a gente vai pra "Assembly"-like.
O desafio aqui é o paradigma, você não tá "programando para um usuário", você tá "programando para uma máquina". Você não tem um computador a sua disposição, você tem um "chip" com MUITA limitação.
Achei legalzão, me sentia muito "nerd" na época. Veio um mano da Intel pra me "ensinar" as paradas... O problema é que eu, pessoalmente, enjoo muito rápido das coisas - então pra mim, por mais legal que tenham sido as duas experiências, logo que pude, achei outras coisas pra fazer.
Uma coisa que me direcionou pra essas experiências foi a minha formação. Eu fiz Técnico em Eletrônica - então nunca assustei com baixo nível.
2. Ruby, Rails e DHH
Eu sempre busquei "tirar a mão da massa" o mais rápido que eu pude. Minha história de vida e o contexto que eu estava inserido, me geraram uma "falsa crença" que o único jeito de ganhar mais grana era virando gestor, executivo - o mais generalista possível.
Fato é que eu sou um "técnico", gosto de meter a mão na massa, gosto de "fazer acontecer". E aí esse ano, dentre as várias decisões que tomei, uma delas foi voltar a programar.
Até recentemente estava usando GO, porque segundo vozes da minha cabeça, era mais confortável, me lembrava um pouco de C/C++/PHP(?) - pois é. Fiz o site da minha empresa com GO + Templ + HTML/CSS (puros) + HTMX. E fiz um sisteminha também em GO para uma PoC com um cliente.
Aí, confessando um pecado, eu tenho uma pouco de preguiça (medo provavelmente, pq? Não sei - traumas!) para aprender Orientação à Objetos. Tudo que eu fiz até hoje foram programas "script"-like ou "gambiarra"-like. O problema é que as "ferramentas" que tenho pensado em desenvolver, são necessariamente, sistemas web que vão precisar de um mínimo de organização (OO?).
Grandissíssima introdução para dizer o seguinte, vi este podcast do DHH - criador do Rails, e o cara simplesmente conseguiu me vender o framework dele e a linguagem que foi desenvolvido. Não curto muito a mágica do Rails, mas creio que isso vai me tirar do zero em termos de Dev Web com OO.
Decidi "aprender um pouco" de Ruby antes de mergulhar no Rails. Mas pelos primeiros materiais que vi (documentação, vídeos), vai atender as minhas necessidades e vai me permitir "fazer tudo sozinho", pelo menos nesse começo de empresa.
To achando legal, Ruby é uma liguagem bastante declarativa, você quase escreve o que você precisa em "inglês". Olhando pro Rails em si, ele tem "tudo" que você precisa para subir um Web App "sem dependências externas" (to tomando cuidado com essa promessa aqui, ainda não "provei" isso).
"Se você não sabe para onde ir, qualquer caminho serve"
Parece que todas as minhas respostas terminam assim, hahaha.
Tenho pensado bastante e agora, aparentemente, tenho escrito bastante sobre esses momentos de vida das pessoas:
- "o que estudar?"
- "por onde começar?"
- "vale a pena migrar para tech?"
E, divagando um pouco, talvez seja porque eu mesmo estou passando por um momento de ruptura, tenho me sentido motivado a "oferecer o pouco do que tenho". Então aqui vai o ato final!
@ArthurCastro, jovi, primeira coisa que queria te falar é "PARABÉNS". Você se expor, mesmo que num ambiente mais seguro que é o TabNews requer coragem! Você, e talvez toda essa nova geração, seja melhor que a gente (Millennials) em "pedir ajuda" (e em ajudar!!!).
Segundamente, sei que muita gente deve falar isso, muita gente me falou isso quando eu tinha 18 anos e eu não escutei - mas talvez, você seja diferente:
Você é muito jovem... daqui a 10 anos você ainda vai ser muito jovem...
Então, meio que tanto faz o que você escolher agora. Você (nem niguém) é o "Dr. Strange" que vai conseguir simular os vários cenários que você ta propondo.
Neste momento, vale mais você ter constância numa única escolha do que ficar "pulando de galho em galho" (em termos de "tecnologia", "liguagem", tá? sobre estágio e tal, sou do time to @Oletros).
Então, por exemplo, tire o "python" do gerundio (estou estudando) e coloque ele no presente (eu estudo). E vá evoluindo em volta dessa única tecnlogia. Por exemplo, aprender Django (acho que é o framework web deles, isso?), depois aprender um pouco de HTML e CSS (puros), depois HTMX... Percebe que, ao invés de ficar pensando em um monte de caminhos possíveis, você ta crescendo um ecossistema em volta de uma única tecnologia?
Ou, outro exemplo,... experimenta por 2, 3 meses cada uma das "tecnologias"-base: Python (Django), Ruby (Rails), Java (Spring?)... E veja qual você mais "curtiu" - VOCÊ curtiu... não o resto do mundo.
E aqui, de maneira geral, "exeperimentar / testar / estudar..." Significa fazer algo com intenção, saca? Tipo meter o loco e falar assim: "F#d-se, em 3 meses eu vou ficar obcecado até subir um sisteminha que faça [tal coisa] usando [tal stack]". Sem video game, sem vida social: entra num ciclo tipo: Faculdade->Projeto->AtividadeFísica+ComerBem->Dormir.
Você precisa fazer isso pra sempre? Não. Mas acho que menos de 3 meses é pouco. Tem a tropinha da "vida equilibrada" aí que vai pensar (ou vai escrever) que isso é um absurdo. Mas não existe uma vida com "equilíbrio perfeito"... e acredite! Fazer isso aos 18 anos, custa muito mais barato do que fazer isso aos 30, 40 anos.
Mas assim, eu sei que é muito difícil ler isso e falar: "Noh! Agora eu entedi tudo e vou fazer exatamente isso, isso e isso!" Use as opiniões da turma como um livro, as parte que fazem sentido pra você - com os filtros da sua realidade, guarde; o que não faz sentido - ignore com força!
E cara, leia muito! Livros mesmo. Se é que você já não tem esse hábito, comece o quanto antes... Ler é um dos hábitos mais incríveis que você pode criar.
Se por algum milagre você chegou até aqui, e quiser "falar" comigo, me add lá no LinkedIn! Acho que vai valer a pena pra mim e pra você! Procura por Filipe Aparecido (/in/filipeaparecido/).
Disclaimers:
¹Não vou tentar te vender nada.
²Não revisei o texto, deve ter vááários erros - releve ;)
Abraço, Filipus!