Então você quer ser Dev?

← ← ←   5/2/2022, 6:26:08 PM | Posted by: Felippe Regazio


Costumo receber muitas dúvidas de desenvolvedores iniciantes através das redes sociais. Tenho considerável audiencia tanto no twitter quanto aqui na DEV, e muitos deles pedem dicas e tiram dúvidas via inbox. Com o tempo notei que boa parte dessas dúvidas se repetem - salvo pequenas alterações - a maior parte são dúvidas naturais de inicio ou mudança de carreira.

Separei as 15 dúvidas que mais se repetiram ao longo de todo o ano passado neste post. Não sou nenhum coach, não sou jedi nem guru de nada. Sou simplesmente um programador com alguns anos de bagagem e paixão por programação, e resolvi utilizar essa condição para clarificar e/ou nortear alguns entrantes na área de tecnologia.

Sendo assim, esse post destina-se a pessoas que estejam pensando em entrar na área de programação e seguir carreira nela, e que estejam focando em aprendizado rápido, mercado de trabalho e em sua grande maioria em desenvolvimento web (que é também minha área). De qualquer forma, é possível que as dúvidas aqui sirvam para muitas outras áreas da programação também.

Precisa de Faculdade?

Não. Você não precisa de formação academica em tecnologia para entrar para o mercado de trabalho como desenvolvedor. Para outros fins em programação uma formação academica pode ser decisiva, ou/e até mesmo necessária, mas não para este.

Cabe dizer aqui que: assumir que a faculdade não é necessária não é o mesmo que dizer que não há benefícios em cursar uma universidade. Os benefícios podem ser incontáveis a depender do seu perfil e da sua condição de se manter-se em um curso superior de maneira proveitosa.

Cabe dizer ainda que: Em tecnologia, a universidade não é o conhecimento per si, mas um dos caminhos para ele. Isso pode aparecer como um alívio para muitos mas é na verdade uma grande responsabilidade: a não necessidade de uma universidade não quer dizer que vc pode negligenciar teoria e conhecimento academico, significa que vc deverá organizar-se e buscar sozinho por este conhecimento.

Se vc está iniciando e deseja ser auto-didata, aconselho a organizar um roteiro de estudos focados no que vc deseja aprender (seja conteudo academico ou nao), ou mesmo a pedir mentoria. Seja qual for o seu caminho, não deixe de dedicar algum tempo para estudar teoria de base como Algoritmos e Estrutura de Dados, Conceito temporal e espacial de código, Notação BigO etc.

Se vc crê que universidade é o melhor caminho de aprendizado para vc mas fica triste pois - por qualquer motivo - não possui condições cursa-la, acesse o repositório abaixo. Trata-se de um projeto de Conteúdo Academico Online, Livre, Gratuito e em PT-BR encabeçado por Camilo Cunha

Universidade Livre

Preciso saber inglês?

Não, você não precisa saber inglês para iniciar em programação. Porém (há porem) vale ressaltar:

Busque aprender ingles. Você não precisa buscar fluencia, nem precisa aprender de hoje para amanhã caso não seja mandatório para seus planos de vida. Mas é bom aprender a compreender e se fazer compreender minimamente em inglês. Darei três motivos pra fazer isso:

  1. Atualização: Boa parte dos estudos, pesquisas e tecnologias do mundo são documentadas primeiro em inglês, e apenas muito tempo depois saem traduções de documentação. Como você está iniciando não precisa se preocupar com isso agora, mas se visa atingir um alto desempenho como Dev, manter-se atualizado em primeira mão será importante, daí a importancia do ingles.

  2. Autonomia: Ter um nível de ingles que te permita se virar pela internet te abrirá todo um novo universo online. Hoje tradutores automáticos já ajudam muito nessa questão, porém novas mídias poderão ser acessadas e melhor compreendidas por vc, como: vídeos de diferentes fontes, eventos online, pdfs, whitepapers, pesquisas, etc.

  3. Contratação internacional: Mercados internacionais estão contratando cada vez mais de forma global. Boa parte das empresas também estão se globalizando através do trabalho remoto. Saber ingles te abrirá a possibilidade de trabalhar em muitos lugares do mundo (remoto ou não), aumentando seus ganhos e trazendo a ótima experiencia cultural.

Quais cursos devo fazer? Dicas?

Não sei te dizer. Muitos iniciantes perguntam para desenvolvedores mais experientes quais cursos fazer, onde aprender a programar, de que forma aprender... Acontece que esses desenvolvedores já são experientes, eles já se distanciaram desse início. As referencias podem ser outras, links podem nem mais existir, algumas tecnologias morreram, outras nasceram, assim é complicado dizer onde aprender o comecinho.

O processo de aprendizado de um desenvolvedor experiente pode ser diferente de um em inicio de carreira também, sendo que para o primeiro muitas vezes ler a documentação basta, enquanto que para o segundo é necessário maior fundamento antes.

Claro que isso não é verdade para todo e qualquer Dev Experiente, existem alguns engajados na comunidade e que possuem muitos recursos para ajudar iniciantes nesse quesito, mas no geral o melhor a fazer é envolver-se nas comunidades, conversar com outros desenvolvedores em inicio de carreira que já estão se evoluindo bem e/ou que tiveram inicios recentes, eles poderão dar um melhor mapa do tesouro.

Qual a primeira linguagem devo aprender?

A que você mais gostar. No ínicio, motivação e diversão são mais importantes do que qualquer outra coisa, pois é isso que te fará aprender e continuar querendo aprender. Então escolha a linguagem que mais te motiva, que mais te instiga a querer aprender.

Muitas pessoas argumentam que linguagem X ou Y são melhores porque são mais rígidas e isso gera um melhor aprendizado, ou facilita mais o aprendizado através de paradigma X ou sintaxe Y.

No inicio, quando vc ainda não sabe nada, toda linguagem servirá pra aprender as mesmas coisas, os mesmos fundamentos. Todas terão IF, todas terão WHILE, em todas vc escreverá funções que retornarão coisas, etc. Claro que há outros paradigmas, linguagens para outros fins, mas não é o seu momento.

Não adianta querer aprender a fundo Orientação a Objetos agora sem saber fundamentos, não adianta querer aprender paradigmas funcionais ou declarativos se vc ainda não aprendeu nem o que é um IF, um WHILE e uma Função e como essas coisas se relacionam num código. Sendo assim, o foco é mais importante que a linguagem. Escolha uma que te diverte e te instiga a aprender.

Algumas variaveis que ainda podem ser importantes na hora de decidir:

  1. Fit com o que vc quer fazer: Se vc quer ser Dev web, veja o que os Devs web estão estudando. Se quer ser cientista de dados, veja o que cientistas de dados estão estudando e já comece por essas linguagens, assim vc corta caminho.

  2. Comunidade: Dê uma fuçada nas redes sociais, foruns e na internet em geral pra ver se há ampla documentação e uma comunidade amigável em torno da linguagem que vc tá usando.

Na dúvida, escolha alguma super famosa que vc goste mais, não vai ter erro. Essa não é uma escolha definitiva, essa pode nem ser a linguagem que vc vai mais gostar (ou pode), e às vezes vc pode nunca nem chegar a trabalhar com ela (ou pode). Eu mesmo aprendi com Pascal (nunca trabalhei com isso), depois fui pro Python por conta propria, depois JS, etc, etc.

O que quero dizer aqui é que isso geralmente é super valorizado. Na real não é uma escolha de vida ou morte e nem de longe é definitiva. Sendo assim não precisa toda essa preocupação em torno disso. Pesquise, experimente e escolha a que mais gostar.

Quero ser Dev Web, o que tenho que aprender?

Existe um mar de conteúdo tecnico pra aprender, e isso por si já seria outro post a parte. É difícil entregar um RoadMap pra algum iniciante, mas por sorte existem alguns prontos. Sendo assim, comece pelo começo:

Isso já é MUITA coisa, e é o grande início. Me desculpem por não trazer links ou muitas referencias, mas como disse mais acima talvez eu não seja a melhor pessoa pra isso no momento. Espero que os comments fervam de boas referencias. No mais acredito que uma pesquisa na google ou Youtube sobre conteúdos de inicio básico em dev web devam trazer bons resultados, meu ponto aqui é mais: Não é simplesmente abrir uma IDE e sair tentando escrever código, tente imergir-se um pouco no contexto onde tudo vai acontecer primeiro.

Assim, antes de começar a escrever códigos, tente entender como tudo ao redor funciona. Não precisa virar expert no assunto, apenas as relações e caminhos entre as diferentes camadas pela qual os dados percorrem, e a história por trás do que vc está utilizando. Basicamente contextualizar-se.

Devo aprender frameworks primeiro?

Sim e não. Se o que vc busca é entrada rápida no mercado: Sim. Se o que vc busca é valorização e destaque a médio prazo: Não.

Se vc aprender um framework antes de tudo vc terá valor para o mercado e conseguirá trabalho rápido, porem será um profissional frágil em início de carreira. Vc sentirá de cara a porrada de ter pulado a base e o conceito ao precisar otimizar código, tomar avalanche de comments em code review e passar dias brigando com tasks ou tentando entender o código de outros desenvolvedores (normal).

Sendo assim, se você precisa muito de trabalho para agora, estude os frameworks e paralelamente a eles estude a linguagem a qual está trabalhando de forma pura. Entenda as particularidades, tecnicas, limites por detrás da tecnologia que vc está trabalhando. E quando conseguir seu desejado emprego, ou quando atingir bom grau de compreensão no que deseja aprender, volte sempre os estudos para a linguagem de forma pura. Pense que se vc sabe apenas um framework, toda vez que o mercado mudar é como se vc tivesse que recomeçar do zero, enquanto que saber as bases e fundamentos da linguagem a qual vc trabalha te ajuda a cortar enorme caminho e torna-se trivial aprender novos frameworks a partir daí.

Obs: Vanilla é o nome que damos ao uso de uma tecnologia em sua forma mais pura, sem frameworks ou boilerplates.

Caso vc já saiba a base, esse post que pode elucidar mais sobre esse assunto em se tratando de desenvolvimento web, especialmente front end:

O mínimo que voce precisa saber de JavaScript pra que seja confortavel codar e aprender qualquer framework

Qual área paga melhor?

Vc pode buscar isso na GlassDoor, LinkedIn, conversando com recruiters ou pesquisando em outras fontes. As areas oscilam, as experiencias podem ser muito diferentes de Dev pra Dev, de empresa pra empresa.

O mais importante é: Não baseie sua carreira em "ganhar o maior salario", ou ganhar igual o fulano do twitter ou do LinkedIn. Isso só vai te desmotivar. Defina a SUA meta e corra atrás, e mude quantas vezes for necessário conforme aprende coisas novas no caminho. Não é só porque vc não atingiu o topo que a vista já não esteja bonita de onde vc está. Se vc focar apenas no que paga mais poderá se perder no caminho toda vez que isso oscilar.

Vou começar ganhando 5 mil?

Não. Se vc está começando a aprender agora e deseja engressar no mercado o quanto antes, as chances são mínimas de começar ganhando 5 mil. Existem alguns caminhos, empresas que podem pagar esse valor para iniciantes, ou tendo ingles vc pode partir como junior para o mercado internacional, etc, etc. Mas via de regra, não é o que acontecerá. Como programador vc terá bons salários, boa perspectiva e rápida evolução salarial, isso de fato é verdade, mas não existe milagre de estudar 3 meses e ganhar 5 mil, isso é lorota.

Dá pra ser senior em dois anos? Vou demorar pra conseguir emprego?

Não. Você pode focar em UMA empresa e tornar-se senior para ela dois anos após ter entrado nela. Embora o que seja um senior é algo discutível, pensar em um profissional maduro com boa capacidade de entendimento de mercado, linguagens, soft skills, experiencia e agilidade, não é algo fácil de se atingir. Existe uma hype grande em torno da palavra senior e todo mundo fica correndo atrás disso e tentando cortar caminhos das mais variadas maneiras, e isso só significa uma coisa: definir o que vc pode deixar de aprender agora em prol de um "título".

No geral, preocupe-se em aprender e deixe essa preocupação em ser senior para os plenos. Uma pergunta que vc pode fazer é: dá pra ser pleno em transição pra senior em 1 ano? Dá pra virar pleno em 3 meses sem bagagem prévia, começando agora? Então, pois é: em geral não, e pra ser senior em 2 anos deveria. Então desencana.

Para você que está começando a buscar emprego agora, esse pode ser um post util:

12 Dicas NÃO TECNICAS para você que está buscando seu Primeiro Emprego na área de Desenvolvimento de Software

12 dicas não tecnicas pra você que está buscando seu primeiro emprego na área de desenvolvimento de software

Vou ter que estudar durante toda a vida?

Sim, você vai. Seja através de curso, ou lendo docs toda semana, vendo videos, aprendendo coisas novas enquanto resolve problemas. Acostume-se a aprender. Aprenda as melhores maneiras de aprender, as que mais funcionam para você.

É importante entender que isso não é ruim. As pessoas costumam torcer o nariz quando digo isso, muito porque temos uma bagagem emocional advinda do método escolar de aprendizado, que é maçante e entediante e desprendido de motivo aparente ou significado prático. Mas isso não acontece em programação.

Quando vc começar a ser bom/boa no que está fazendo, quando começar a fazer seus primeiros códigos, ganhar fluencia como dev, quando ver seus primeiros salarios rendendo coisas legais vc será absorvido por um senso de valor e de evolução, e aí: Bem vindo/a ao estudo pelo prazer de evoluir! Aqui aprender novas coisas será motivo de alegria, e pode ser que vc entre numa dinamica parecida com ir à academia malhar: dói enquanto vc tá no processo mas te deixa muito feliz em ver os resultados todo dia, e quando vc não vai, vc sente falta até da dor.

Esse post pode dar dicas importantes para seu processo de aprendizado no que tange a aprender a perguntar e lidar com respostas a respeito de código:

Como fazer perguntas sobre códigos e lidar com as respostas, um guia prático

Não preencho todos os requisitos nunca, sou um iniciante ruim?

Não, vc é um iniciante. Hoje requisitos estão cada vez mais inflados. Será difícil ver uma vaga de emprego a qual vc preencherá TODOS os requisitos. Minha dica é: Se vc preenche a maioria, ou ao menos requisitos chave para a vaga, seja cara de pau e candidate-se. Seja honesto/a na entrevista, e bola pra frente.

Preciso de um super computador pra começar?

Na maior parte das vezes não. Mas vai precisar de algum computador. Sei que é difícil pra alguns, mas se vc puder ter um computador só seu é o ideal pois pode ser que vc troque ou quebre o seu sistema algumas vezes (é normal). Não precisa ser o mais rápido do mundo, e hoje existem muitos recursos gratuitos online caso vc precise de processamento pesado, é bom que já te força a aprender outras coisas rs. Se seu computador é compartilhado, estude mesmo assim e espero que vc consiga seu trampo e compre um só pra vc o quanto antes.

Preciso ser bom em matemática?

Sim e Não. Muita gente pode ficar brava comigo ao dizer isso, mas a verdade é que pra esse inicio - no contexto de hoje - não. Claro que isso pensando em entrada para o mercado de trabalho HOJE. Vc provavelmente vai buscar o ponto mais aquecido que é como dev web.

No geral vc não precisa ser foda em matemática pra começar a programar, mas saber matemática sem dúvidas te fará um/a Dev melhor. De qualquer forma, para algumas áreas pode ser que haja uma carga maior como IA, Data Analysis, NLP, etc. Porém esse é um requisito que pode andar JUNTO com seu aprendizado de programação, não precisa entender isso como requisito de entrada.

Preciso entender de hardware e redes?

Geralmente não. Vc pode começar a programar sem entender dessas coisas. Porem é bom saber o básico e dar alguma atenção, isso vai te ajudar a entender o contexto completo do que vc está fazendo, te dará noção de segurança, deployment, fluxo de dados e mais uma cacetada de coisas. Se não é muito sua praia, aprenda o necessário pra saber o que aconteceu com os dados que vc ta mexendo e bola pra frente. De qualquer forma, mantenha o foco: se vc é iniciante seu foco é iniciar, é aprender a programar, coloque o resto na pilha de pendencias e volte depois que: aprender a programar.

Tenho mais que 30 anos, estou velho pra começar agora?

Não. A área ainda é tomada de gente nova, mas isso por várias razões além das óbvias. Pense que ainda não somos uma geração tecnologica, existem pessoas vivas em nossa geração que nasceram antes da internet, e que não cresceram nela. Assim, novas geração virão e com ela outras gerações de programadores. Se vc tem 30 ou 40 anos, talvez sua rotina e responsabilidades sejam um desafio maior do que a sua idade, mas se ainda assim vc deseja encarar esse desafio, go ahead!

Conclusão

A motivação para eu ter escrito esse post foi não repetir as mesmas respostas de sempre. É cansativo para mim digitar as memas coisas para todo mundo, e também não é legal dar CTRL+C/V em algo que pode ser tão importante pra alguem, daí esse pequeno index.

Espero que essas respostas possam servir de norte para alguém uma vez que me pareceram tão recorrentes em minha experiencia como um velho intenauta, rs. Boa sorte em seus estudos, seja vc quem for.