Primeiramente quem sou eu na fila do pão para estar falando sobre isso ?
Me chamo Flou, estou embarcado nesta jornada em busca de trabalho como
programador e já tenho alguma experiência com freelas. Ou seja, eu estou
falando com base no caminho que estou trilhando. Tenho propriedade pra falar
sobre o que aprendi até aqui e o resto é baseado em pesquisas e opiniões de
amigos que já atuam no setor.
Esse texto se destina principalmente para pessoas que sabem muito pouco sobre
essa jornada, mas que tem interesse.
Ele convida quem ja está trilhando esse caminho para se esvaziar e encarar
tudo como uma nova perspectiva!
INTRODUÇÃO
Pra conseguir trabalhar como programador em resumo:
Você precisa saber construir software que resolva algo e demonstrar isso pra
quem contrata soluções em software.
Seja para uma vaga de emprego ou para um freela.
Na medida em que descrevo com mais profundidade a respeito também irei sendo
mais específico sobre as áreas que conheço e pretendo atuar.
Digo isso porque fazer software é algo extremamente abrangente e pode variar
desde plugins para programas, scripts, softwartes de desktop, softwares
mobile, software para engenharia, medicina e muito mais MESMO.
Programação está presente em praticamente todo aparelho eletrônico que existe.
Ela não serve somente para fazer sites e aplicativos - como é o que mais se vê
por aí.
E a verdade é que a grande maioria das vagas e oportunidades de trabalho com
programação que podemos encontrar através da internet são para soluções web.
Para fazer códigos Backend ou códigos Frontend.
Se você veio parar neste artigo é porque provavelmente você já sabe alguma
coisa da área e procura algum trabalho em um desses dois pólos ou até mesmo
ser Fullstack Developer, que é o programador que consegue fazer tanto o código
que roda no servidor quanto o código que roda no cliente.
Se você não está entendendo nada do que eu to falando é o melhor gancho para
te explicar uma verdade dolorosa que poucos que ensinam sobre programação na
internet falam.
Que é: Você tem que estudar muito e ter gosto por estudar, quanto melhor for
sua capacidade de aprender mais resultado você vai ter.
Tecnologias da Computação, como em toda ciência, são construídas baseadas em
tecnologias anteriores.
Na Matemática, a multiplicação depende da soma. Na engenharia mecânica, o
carro depende do motor. Toda tecnologia precisa de outra.
E porque eu to falando disso tudo ?
Quando você vai aprender um Framework de Frontend em Javascript para
desenvolver uma aplicação web, é bem comum ficar confuso, principalmente
quando a internet está recheada de tutoriais e até cursos pagos rasos que te
prometem coisas difíceis de serem cumpridas.
Por exemplo:
''Aprenda python em uma aula''
"Aprenda Nodejs em 2 horas"
"Seja Fullstack em uma semana"
Tudo mentira...
OBS: Se você for um programador experiente talvez isso faça alguns sentido,
mas não da pra aprender de verdade nem assim. A experiencia e aprendizado se
constroem com a pratica e repetição. E sinceramente anúncios chamativos como
esses não são voltados para devs experientes, mas para iniciantes serem
feitos de bobos.
É como aprender a fazer um carro em 7 dias... Mentira! Talvez você possa
aprender a MONTAR um carro em 7 dias... e apenas um modelo de carro.
Fazer ≠ Montar
A analogia de montar um único modelo de carro explica muito bem o que acontece
hoje na área tech. É relativamente fácil seguir um tutorial ensinando a fazer
um projeto com um framework.
No fundo você só está montando um monte de peças que você sequer sabe pra que
servem.
Então é fácil se perder fazendo vários tutoriais e não aprender NADA.
É como se ensinassem a montar um fusca e depois um gol, mas você não faz ideia
de como o motor funciona ou quais são os tipos de motores diferentes.
Será que se um cliente pedir um carro com tração 4x4 você vai saber montar ?
NÃO!
Vou cuspir alguns conceitos técnicos aqui pra você ver mais sentido na
analogia do carro.
APRENDA A MOTIVAÇÃO HISTÓRICA DAS COISAS
Existe o Framework
Next.js
(Criado em 2016) que é um compilado de ferramentas, majoritariamente voltado
para criar soluções frontend, ou seja código que roda no navegador.
Ele é construído em cima da biblioteca
React, que é uma solução construída em
Javascript, que é uma linguagem de programação que roda no seu navegador dentro de uma
máquina virtual que, por exemplo, no
Chrome
se chama V8.
O Javascript foi criado em 1995 para dar dinamismo às
páginas estáticas do início dos anos 90
que eram como documentos do Word.
A linguagem trouxe algumas soluções, mas com o tempo se mostrou incompleta
usada de forma pura, então vieram ferramentas como
JQuery (2006) que
abstraía do JS várias soluções necessárias no dia a dia do desenvolvedor já
prontas e documentadas.
Na década seguinte surgiram abstrações mais modernas que solucionavam mais
problemas como o React, Angular, Vu3. No caso do React que é apenas uma biblioteca e não um framework completo
deixa o programador escolher como implementar as demais soluções necessárias
para um projeto robusto de uma aplicação web, eis que surge o Next.js
trazendo estas soluções de forma bem documentada.
A História se repete, as informações não. Eu resumi muuuita coisa com
esse pequeno trecho da história, mas foi o suficiente para exemplificar a
lição que vou te passar.
CONSELHO #01
Saber a história da internet vai te ensinar muito mais do que saber o
framework da moda, porque você vai entender o porquê cada coisa é implementada
daquele jeito e fica mais fácil entender como ela funciona.
Faça tutoriais sim, bote a mão na massa, mas aprenda a construir conhecimento
sólido. Se você não entendeu um termo, pare e pesquise, mesmo que você leve
horas. Essa parte não glamourizada da jornada do programador que é o ouro das
mentes brilhantes.
Não adianta completar um tutorial e sair de lá como alguém que montou um monte
de bloquinhos sem sentido, mesmo que demore o quíntuplo do tempo, acredite,
ter questionado e pesquisado fez você economizar muito mais tempo na sua
carreira.
Escrevo este artigo em Fevereiro de 2024, nunca tivemos um tempo melhor para
aprender tecnologia de forma profunda e acelerada. Existe
Chat GPT,
Google Bard
e afins, que por muitos são usados para gerar código.
Na minha opinião, isso é uma tremenda burrice, eles são muito melhores para
nos explicar código, resumir artigos e te explicar o que cada coisa faz pra
você entender o escopo completo do que para criar códigos pra você preencher
buracos no seu projeto. Que só demonstram sua incapacidade de resolver um
problema. Você se contrataria ?
COMO CONSTRUIR SOLIDEZ PARA SER CONTRATADO
Até o momento deste artigo apenas fui contratado para pequenos projetos e
notados por alguns recrutadores, então vou dizer o que estou fazendo e um
pouco de conselhos que recebi de profissionais da computação que admiro.
Vou me abster de falar sobre ser contratado para projetos freela de grande
porte, ou seja viver de código como freela. Porque eu sei muito pouco sobre
esse assunto. Mas se é a sua vibe recomendo terminar de ler o artigo para
colher o que interessa para você e depois dê uma olhada nos conteúdos da
Atekita Dev no Youtube. Ela tem experiência nessa área, fala sobre plataformas
de freela etc.
Para ser contratado por uma empresa, ou seja, ser empregado. Existem
majoritariamente 3 formas de ser contratado.
1 - Estágio
2 - Demonstração Técnica
3 - Indicação
Vou descrever um pouco sobre cada uma e depois dar minha opinião e
experiência.
Estágio: Você começa a cursar o Ensino Superior em Ciências da Computação,
Sistemas de Informação, Engenharia da Computação ou afins e fica atento a
vagas por todos os meios possíveis. Geralmente o tempo mínimo que as empresas
exigem é de um ano.
Demonstração Técnica: Excelência em Autopromoção, foque em ter o melhor
currículo, um bom blog sobre seus estudos e projetos, participe de projetos,
participe de comunidades, faça um bom portfólio e seja notado.
Indicação: Método subestimado por muitos que é um dos maiores preenchedores de
vagas em empresas. Impressione e seja amigo de pessoas que trabalham nas
empresas que oferecem os cargos que deseja trabalhar, seja indicado por um
interno e consiga sua vaga.
Vou te dar um papo de coach que você precisa ouvir. Em qualquer um dos
caminhos você vai precisar desenvolver suas habilidades sociais e
comunicativas para além de sua capacidade técnica. Para conseguir um estágio,
caso esteja cursando uma faculdade, vai ter que ir atrás, demonstrar interesse
e será mais fácil ser notado e conseguir o que deseja, até porque vagas como
do linkedin são o último lugar onde você deve procurar, já entrou em detalhes
sobre isso...
Ser contratado por demonstração técnica é o caminho mais difícil se você
quiser contar só com a técnica. Se você expandir seus horizontes e entender os
reais desafios desse caminho eu diria que é também o mais prazeroso.
Conseguir uma vaga por indicação é algo muito comum e pouco buscado por
desenvolvedores. Existe uma ordem que toda empresa segue ao realizar
contratações: Indicação > Reposicionamento Interno > Banco de Candidatos
> Vagas em Redes como Linkedin.
Você precisa ter um canivete suiço para ter as melhores chances, um conjunto
de técnicas bem estruturado para conseguir a tão desejada vaga.
No final das contas qualquer um dos métodos vai funcionar melhor se você
souber fazer networking, demonstrar bem o seu progresso de trabalho e agir de
forma assertiva.
MINHA JORNADA E MEU CONSELHO
Aqui vai um conselho pra mim mesmo e para você que está nessa jornada. Foque
em conseguir uma vaga por competência técnica e indicação em conjunto. Talvez você tenha
contatos fortes e ainda falte muito conhecimento ou talvez você tenha muito
conhecimento e não tenha bons contatos ainda, quem sabe nenhuma dessas
opções... Ou tem as duas... O Importante é você ter clareza desse caminho e do
que mais precisa focar.
DICAS DE ESTUDO
1 - Estude sempre buscando o fundamento das coisas, se deparar-se com algo que
não entendeu, pesquise.
2 - Entenda a história da computação e da internet. (MUITO IMPORTANTE)
3 - Alterne entre estudos mais teóricos da computação e tutoriais mão na
massa. Seguindo a analogia usada anteriormente: Se você está estudando a
teoria de como os carros funcionam, fica meio difícil entender as coisas, mas
se alguém te ensina a montar um carro e você monta junto com ela, toda aquela
teoria começa a fazer sentido. Assim você vai conseguir acelerar seu
aprendizado de forma consistente.
3 - Tente fazer projetos, o objetivo de fazer algo e resolver os problemas que
serão gerados no caminho vai ser o mais próximo que você vai estar de um
trabalho como programador. E a vantagem é que você pode começar a tentar
projetos no seu escopo em qualquer etapa, pode ser uma calculadora de
IMC
ou uma Aplicação
Fullstack
em
Nuvem. Se você acha que pode fazer, caia dentro.
4 - Aprenda
Github
assim que já conseguir fazer algum código. (recomendo começar por Javascript
ou
Python, pouco importa, você vai aprender várias linguagens) No Github
é onde você DEVE hospedar todos os seus projetos e de quebra vai aprender a
versionar seu código e upar pra nuvem via linha de comando. Algo que está
presente no dia a dia de todo desenvolvedor. O Github
é onde todo recrutador sério vai olhar para avaliar sua competência.
5 - Aprenda a comentar seu código e a documentar bem seus projetos no Github,
não adianta nada ter um monte de repositório sem sentido lá. Demonstra
descuido e recrutadores não têm tempo de ficar escovando os bits de seus
códigos.
MATERIAIS QUE RECOMENDO
- Um guia que pode te ajudar a saber quais coisas estudar, com alguns caminhos
predefinidos.
- Simplesmente um dos melhores lugares da internet para aprender
Desenvolvimento Web, é sério, eu conheci através de um curso pago, saí do
curso e comecei a aprender por lá. Sem enrolação e muito bem documentado. É em
inglês então aqui vai uma lição APRENDA INGLÊS, nem que seja na marra, se não
você vai estar muito atrás de seus competidores. Não ignore esse conselho.
- Especialmente a Playlist de Programação para iniciantes. Tem muita gente que
não gosta do conteúdo dele por aí, sinceramente ignore-os. Os Videos do Akita
às vezes te deixam mais confuso do que esclarecido de tantos termos e coisas
que ele fala. E é pra isso que serve essa playlist, pra você ouvir um cara
MUITO EXPERIENTE vomitando toneladas de informação organizadas e dizendo
algumas verdades duras que a maior parte de quem querem te vender cursos de
WebDev não falam. E aí você vai se familiarizando com os conceitos enquanto
continua sua rotina de estudos normal.
- É em portugues e tem varios conceitos importantes da computação que vão
fazer bastante diferença quando começar a enfrentar desafios de
desenvolvimento.
- Um lugar para se desafiar e aprender, milhares de desafios de programação de
básicos a super avançados para você treinar e testar suas habilidades.
- Minidocumentário sobre a teoria da informação muito bom.
- Documentário imprescindível para entender a história e evolução das
tecnologias que usamos hoje.
Comentários
Postar um comentário