Executando verificação de segurança...
14

Sei que é repetitivo!

Galera, sei que é repetitivo mas me deem uma luz

Eu comecei com meus 14/15 anos a gostar da área de programação. Atualmente com 18 estou cursando Sitemas para Internet na UESPI porém uma dúvida fica em minha cabeça quanto à tecnologias, estágio e áreas para seguir.

Não sei qual área quero seguir na programação. Gosto de Desenvolvimento de software e web mas num geral gosto de entender como as coisas funcionam, possuo bastante interesse em baixo nivel por conta disso.

Estou estudando Python como primeira linguagem, quero aprender a fazer um backend depois iria para o javascript para entender o básico de Front com React. Porém acho essas linguagens muito concorridas em vagas de emprego o que me deixa com vontade de aprender outra linguagem como Ruby ou Java um pouco menos concorrida.

Ouvi muitas pessoas mais experientes falarem em explorar diversas áreas e não se ficar em somente uma area. Por isso cogitei o Ruby ou o Java para ter mais chances de oportunidades.

Mas também pensei em aprender sobre baixo nivel, explorar embarcados e não sei por onde ir.

Como meu curso é só de 3 anos tenho medo de ficar indeciso demais e no final não conseguir nada com isso.

Sei que esse assunto é um pouco chato mas querendo ou não para quem é novo parece uma incerteza muito grande.

Vamos debater sobre.

Carregando publicação patrocinada...
14

Meus 2 cents,

T.I. eh uma area vasta pra caramba: de DEV a DevOps, front, back, full, cyberseguranca, infra, embarcados e vai embora - entao eh normal ficar um tanto perdido.

Vamos comecar pelo 'Hors concours' do TABNEWS - A FAQ do Programador perdidao:

FAQ do Programador perdidao

Ela pode te ajudar em alguns pontos.

Sobre o curso de 3 anos: como eh um curso rapido, nao perca tempo divagando muito - pega um estagio o mais rapido possivel e comeca a trampar. Nao gostou ? Procura outro estagio - e assim vai. Putz, mas ficar pulando de galho em galho ? Se as alternativas sao "nao sei o que fazer" e "estou odiando este estagio", quanto mais rapido voce comecar a praticar, melhor.

Onde achar estagios: CIEE, NUBE ou na propria faculdade.

Sobre embarcados especificamente: existe mercado, mas nao eh facil - tem de "garimpar" empresas que trabalhem no segmento e entrar em contato direto (p.ex. empresas que desenvolvam hardware). Embarcados geralmente eh C/C++, apesar de outras linguagens serem possiveis.

Lembre-se que a facu tem como objetivo te dar a base, mas aprendizado mais profundo ou tecnologias mais novas eh por tua conta.

Se oferecerem participacao em programa de iniciacao cientitica, pode ser interessante - ter de pesquisar e escrever artigo ou resumo ajuda a aprender a selecionar e catalogar as informacoes.

Para estudar por conta recomendo:

  • Ingles: sem ingles nao rola -O NotebookLLM pode ser util aqui

  • Python/IA: Estude o que puder sobre este assunto - bolha ou nao, seu impacto eh real

  • Linux: Se voce gosta de embarcados e baixo nivel, linux eh obrigatorio

  • Containers: Ja que falamos em Linux, vm/docker/container/lxc sao tecnologias muito uteis.

  • CI/CD: como esta tua habilidade no git ?

Nada do que citei acima eh do outro mundo, da para levar em paralelo e tem material abundante na internet/YT.

Sobre mercado - acompanhe o vaguinhas.com.br (mesmo que nao esteja procurando emprego) e veja como esta o mercado (tem outros sites de vagas, alguns divulgados aqui mesmo no TABNEWS).

So um detalhe: o mercado eh voluvel, nem sempre a maior quantidade implica na melhor opcao, mas ai depende de voce identificar o que tem ressonancia contigo.

Continue postando sobre tua jornada - o que nao falta sao pessoas como voce com as mesmas duvidas.

Saude e Sucesso !

7

Olá, vou te passar uma experiência própria que talvez te dê uma luz.

Eu acho que você deve seguir o caminho das linguagens que vão te levar ao nicho em que você quer atuar. Hoje as empresas não contratam exatamente porque você é um “canivete suíço” que aprende qualquer coisa super rápido. Acredite, eu passei por isso, e vou te contar uma história.

Desde pequeno, com 9 anos de idade lá em 1989, eu já programava banco de dados em Clipper Summer 87 por puro prazer, acredita? 😂 Então eu desenvolvi um amor enorme por backend. Eu não curto front, acho chato; gosto mesmo é de ver aquelas telinhas de terminal rodando código, aquilo me deixa igual cachorro abanando o rabo olhando pro bife.

Trabalhando com backend, acabei estudando muito a camada de hardware também, aí fui me especializando em servidores, protocolos de comunicação, redes (tanto parte digital quanto física). As linguagens nesse mundo costumam ser mais de baixo nível: COBOL, C, C++, Assembly etc. Mas a gente sabe que precisa de um front-end, então também acabei estudando, mesmo não gostando tanto.

Se somar tudo isso aí, já são uns 36 anos apaixonado por tecnologia. Quando eu tinha uns 29 anos de experiência, eu ainda tinha uma empresa de tecnologia que prestava serviço sob contrato para multinacionais, geralmente nessa parte de infra: servidores, manutenção, redes, reimplantação, recuperação de desastres etc.

Um dia, atendendo em caráter de emergência uma empresa que estava despontando no mercado e tinha se tornado a maior do segmento de software para advogados do Brasil, recebi uma proposta de emprego. Mas eu teria que passar pela entrevista.

O proprietário era meu amigo, então pensei: “Por que não? Sair um pouco da correria de empresa própria e concentrar esforços em uma coisa só pode ser interessante”. Decidi arriscar a entrevista só pra ver no que dava.

Fiz as entrevistas, a galera ficava impressionada com meu conhecimento, experiência etc. Mas eu não tinha o perfil que a empresa precisava. As linguagens que eles usavam no nicho eram outras, e mesmo eles sabendo que eu poderia aprender o básico em 48 horas e ir evoluindo, isso não era suficiente. Eles não queriam (e nem podiam) se dar ao luxo de esperar eu me adequar.

Esse é o ponto importante:
as empresas, na hora de contratar, procuram alguém o mais próximo possível do perfil técnico e do stack que elas já usam. Elas não querem contratar para “ver no que dá”. Só que, ao mesmo tempo, elas também não podem ficar esperando meses até aparecer alguém exatamente perfeito. Ficam entre a cruz e a espada: “esperamos e nos ferramos, ou contratamos alguém fora do perfil?”.

Aí entra a terceira via: terceirização. Eu já atendia essa empresa pela minha própria empresa, então eles seguiram me contratando como terceirizado — e assim eu cobro bem mais caro do que seria CLT 😂. Ou seja, na prática eu não servia como empregado “perfil da vaga”, mas servia muito bem como fornecedor.

A grande moral disso é:
👉 se você quer ser empregado CLT/estagiário, precisa atender um perfil. Stack, nicho, linguagem, tipo de produto… tudo isso pesa.
👉 se você quer trabalhar por conta própria, aí o jogo muda um pouco: o importante é você ter domínio profundo de tecnologia e se tornar realmente necessário em alguma coisa.

Um exemplo forte é COBOL. Linguagem da década de 1960, mas praticamente todos os mainframes das maiores empresas do Brasil ainda usam e vão continuar usando por muito tempo. Tem pouquíssimos profissionais que dominam, e quem sabe ganha muito bem. A maioria prefere trabalhar por projeto, não por CLT.

Então, trazendo isso pro teu caso:

Python + JS/React é um caminho ótimo pra começar, bem sólido e com muita vaga.

Se você curte baixo nível, pode ir explorando C, C++ e embarcados aos poucos, sem abandonar o que te dá empregabilidade mais rápida.

Não precisa abraçar tudo ao mesmo tempo. Escolhe um caminho principal (por exemplo: backend web) e um “lado B” pra ir explorando (baixo nível, embarcados etc.).

No fim das contas, o que conta é:

Ter um perfil claro pra vaga que você quer (por exemplo: “backend Python”, “fullstack JS”, “desenvolvedor embarcado C/C++”);

E, ao longo dos anos, ir ganhando profundidade em alguma coisa a ponto de se tornar realmente necessário.

É só a minha visão, mas é assim que eu enxergo depois de muitos anos apanhando e aprendendo. Espero que te ajude de verdade.

1

Meu, gostei bte da sua carreira, são poucas pessoas q acho q realmente amam programação.

Mas o q queria comentar é q realmente, mtos iniciantes ficam perdidos em relação entre especialistas vs generalistas. E sempre q busco incentivar, recomendo sempre ser um especialista, pois elas precisam primeiro focar em algo, e tbm aprender os conceitos com base no q escolheram, pois se for mto generalista, a tendencia é se embananar por não ter uma base feita com pedras, onde mtos acabam virando um pato.

E é esse o ponto q entra q concordo mto, pq as empresas querem é especialistas, pois elas não saem usando tudo q tecnologia existente, elas vão escolher uma e seguir com ela. Por isso um especialista se sai melhor nesse cenário, pois ela terá dominio dos pepinos q podem aparecer no meio do caminho, diferente de um generalista q só sabe partes dos problemas.

5

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


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!

1

Obrigado!

Eu agradeço não só à você mas a todos que colaboraram com suas experiências e tempo quanto ao meu post e incerteza.

Mas, à você principalmente porque, trouxe pontos que eu já havia pensado antes mas que eu não queria aceitar, acredito eu. A questão de (eu estudo) "python" e a de colocar a mão na massa, testar, implementar, experimentar eram coisas que me faltavam.

Esses 3 meses de F#da-se foi algo que comecei mas logo me segurei por conta da inseguraça. Mas agora entendo que é necessário, me desenvolver em volta de uma tecnologia até mesmo para ir entendendo na prática como as coisas funcionam, dados, IA, agentes, GUI, TUI, backend, banco de dados.

Em relação aos livros e seguindo a dica do @macnator eu não preciso abraçar tudo ao mesmo tempo, preciso desses 3 meses de foco mas depois posso ir explorando (baixo nivel, embarcados) aos poucos lado a lado.

E a relação dos livros é que eu tenho dois: Hardware, e Redes de Computadores ambos do Gabriel Torres no qual eu quero ir estudando alguns fudamentos da computação.

Agradeço muito pelas palavras de cada um, irei sim lhe adicionar no LinkedIn, muito brigado mesmo!

1

Cara rails é fantástico nunca me arrependi de ter escolhido essa linguagem, eu já usei algumas outras mas quando o assunto é agilidade, robustez é o rails que manda. Alguns meses atrás aprendi a usar o Kubernets, vocês não tem noção de como é lindo um ambiente auto escalavél, app 100% online, donw-time baixíssimo. Também uso o nextjs + ts pra front, eu tenho o melhor dos dois mundo, um back extremamente forte e o front com muitas possibilidades, reativo e leve. O que eu tenho a dizer é escolhe bem uma linguagem não por hype, mas o que faz sentido pra você, hoje eu programando por amor, fazer código me da um animo da porr* rsrs.

2

To meio atrasado, kkk. Mas o pessoal falou bte, então não tenho mto q falar.

Só digo, apenas escolha aquele q vc mais curte e vá fundo naquilo. Futuramente depois q estiver em um nível técnico alto dessa tecnologia escolhida (e já dentro do mercado), aprenda outra tecnologia nova (ou até faça em paralelo). A carreira não precisa ser linear, mas o início precisa ter um rumo, pois criar vários só irá levar as indecisões.

Eu por exemplo, posso dizer q estou já em um nível passando pra senior em flutter (sei q ainda falta mto pra aprender), msm assim em paralelo tem um projeto de um jogo. Não preciso ficar decidindo qual tecnologia que quero aprender, eu busco a tecnologia pelo q quero fazer, nesse caso se é um jogo, eu procuro por tecnologias q ajudam a fazer um jogo.

Boa sorte ai.