Os dataholics Vinícius Medeiros e João Victor vão compartilhar neste artigo, dicas e curiosidades que você precisa saber antes de adentrar o mundo dos Devs, e como começar seus estudos. É só continuar lendo!
Ter paciência é essencial em todas as áreas da vida, e na construção de uma carreira profissional não é diferente. Quando se está ingressando na área da tecnologia, é possível que o início não seja muito amigável e muitas dúvidas surjam, no entanto, é importante entender que isso faz parte do caminho. A evolução é um processo, na maioria das vezes, lento, porém gradual e que no futuro gera resultados satisfatórios.
Consistência e disciplina são outros dois fatores extremamente importantes, principalmente para quem está iniciando sua carreira de desenvolvedor, afinal, não é fácil aprender tantos conceitos diferentes e que a princípio parecem ser complexos. Tudo que é novo nos assusta e o que devemos fazer é praticar um pouco todos os dias para que aquilo seja fixado na nossa cabeça. Na programação, existem tantos conceitos e detalhes para se aprender, que se fizermos tudo de uma vez poderemos esquecer grande parte. Portanto, o correto é ir no seu tempo e estudar todos os dias, para que o cérebro se adapte pouco a pouco aos conteúdos. Programar diariamente nos dará esse hábito, até chegar o momento em que não conseguiremos passar um dia sem essa atividade.
Durante os estudos e na rotina de trabalho, erros irão aparecer, os famosos bugs, encontrá-los é uma das partes mais normais da área de TI. Devemos ser resilientes e ler com atenção as mensagens de erros apresentadas e pesquisar como solucionar caso não soubermos, faremos esse exercício frequentemente durante toda nossa carreira. Embora um programador mais experiente possa já ter visto aquele bug antes solucionando-o então com mais rapidez e facilidade, o mais importante é que exercitemos essa prática de corrigir erros com paciência.
Mesmo sabendo lidar com os erros, por vezes acabamos caindo na armadilha da comparação, que nos faz duvidar de nossa capacidade e do que já produzimos. Assim como mencionado anteriormente, é necessário paciência e maturidade para entender que estamos em um processo, semelhante aos degraus de uma escada, e que existem pessoas que estão degraus acima, abaixo ou no mesmo degrau que você.
Uma boa prática seria, ao invés de se comparar com outras pessoas, se comparar consigo mesmo do passado, faça uma lista do que você aprendeu nos últimos meses e perceba sua evolução, é possível que o seu “eu” de hoje tenha conhecimentos que seu “eu” do passado jamais imaginaria que existissem.
Primeiros passos
Front-end
Parte 1 - Básico
É importante ter uma base forte em HTML, CSS e JS, antes de começar a estudar algum framework (estrutura de códigos) ou biblioteca, também é de grande importância estudar o funcionamento da internet, os protocolos HTTP e HTTPS e como funciona o fluxo de request e response.
Com uma base boa nos itens listados, ficará bem mais tranquilo adentrar as tecnologias utilizadas no mercado de trabalho. Ter um bom fundamento de GIT também tem relevância, já que é uma ferramenta de uso diário para todo desenvolvedor.
Parte 2 - Conceitos mais avançados
Depois de se dedicar bastante aos estudos e obter uma boa base das tecnologias citadas anteriormente, chega a hora de adentrar as tecnologias utilizadas no mercado de trabalho.
Hoje no frontend a ferramenta mais utilizada e mais em alta é o React, acompanhada do typescript e uma biblioteca de CSS in JS. Cada uma dessas tecnologias, permite que o desenvolvedor frontend consiga elaborar diversos projetos incríveis, que servirão de portfólio antes de sua sonhada vaga.
Uma vez que aprendemos react, typescript e styled components, ficará fácil migrar para outros frameworks ou bibliotecas.
React
O React é uma biblioteca do Javascript, que nos permite desenvolver uma aplicação web de forma performática, elegante e organizada. Ao dividirmos partes da interface do usuário em componentes isolados, ganhamos mais organização no código, pois cada botão, header e footer possui sua própria pasta com sua lógica e estilização isolada, facilitando o desenvolvimento e as manutenções.
Stitches / Styled components
Essas duas bibliotecas possuem o conceito de css in js, que nos permite aplicar javascript dentro do css. Isso é muito poderoso quando precisamos adicionar lógica na estilização. Hoje em dia são bibliotecas muito utilizadas no mercado de trabalho.
Testes
Os testes nos auxiliam com problemas futuros, podem ser difíceis no começo e parecerem atrapalhar o desenvolvimento, mas com o tempo vamos enxergando a importância deles.
Outros frameworks
Depois de ter uma boa base de React, é muito interessante experimentar outros frameworks e bibliotecas de construção de aplicações (Front End), sendo elas o Vue, Next e Angular. Todas fazem parte da grande gama de opções que nascem todos os dias no mundo do desenvolvimento web.
Back-end
Parte 1 - Básico
Assim como no front-end, a trilha de estudos do back-end está dividida em duas partes (uma básica e outra mais avançada). A parte mais básica também inicia com conceitos importantes sobre a internet: como ocorre o tráfego de informações, interações cliente-servidor etc.
Após essa etapa básica em comum, temos a escolha da linguagem de programação a ser utilizada nos estudos. Como exemplo, apresentamos o Javascript e o Typescript, em conjunto com Node.js - ferramenta que serve de ambiente de execução para o Javascript fora do browser. Por fim, nessa parte inicial, há outra etapa em comum com a trilha anterior: o uso das ferramentas de versionamento.
Parte 2 - Conceitos mais avançados
Como primeiro tópico desta parte, temos os conceitos de bancos de dados: tabelas, colunas, tipos de dados, diferenças entre SQL e NoSQL etc. Em seguida, adentramos a ideia e os aspectos principais de uma API: conceitos básicos (rotas, parâmetros, requisições e respostas etc.) e estruturação do projeto em pastas.
Após isso, existe um leque de ferramentas e de implementações diferentes a se estudar, dentre as quais, destacamos: testes unitários, arquitetura e conceitos de segurança como criptografia e autenticação por token.
Testes unitários
A princípio, os testes podem se apresentar como adversários da produtividade dos devs, porém, como boas práticas, devem fazer parte do processo como um todo. Com constante exercício da implementação dos testes e, consequentemente, o aperfeiçoamento no uso dessa ferramenta, muita dor de cabeça pode ser poupada no futuro, tendo em vista que a aplicação estará seguramente coberta pelos cenários de testes.
Arquitetura
No tópico de arquitetura, se encontram as diferentes formas de se modelar a estrutura de um projeto de api. Alguns exemplos dos assuntos abordados são: arquitetura monolítica, arquitetura de micro serviços, clean architecture, DDD (Domain Driven Design), etc.
Segurança
Esse, com certeza, é um ponto extremamente importante em qualquer projeto moderno. A internet a cada dia que passa, se torna um local mais perigoso, onde dados são roubados e sistemas são invadidos com maior facilidade. Tendo isso em vista, os desenvolvedores devem buscar reforçar suas aplicações com camadas de proteção eficazes. Para isso, é necessário ter conhecimento de técnicas que promovem essa segurança, como por exemplo: criptografia de dados, funcionamento de um sistema com autenticação por token, uso de variáveis de ambiente etc.
Conclusão + dica final
Vamos concluir esse artigo com uma dica final, que se aplica a tudo o que foi dito até aqui (vale ressaltar, que essa dica também vale para assuntos que não se refiram à área de TI). Trata-se de dois exercícios interessantes a se fazer quando vamos estudar/produzir algo: organização e refatoração.
A organização é uma atitude pré-executória, pois antes de realizar qualquer atividade, é inteligente ter noção acerca do que vai ser feito, e a ordem dos passos a serem executados. Esse planejamento pode evitar confusões e bloqueios durante a realização da atividade, e, consequentemente, acaba por se tornar um processo mais produtivo, com um melhor gerenciamento do tempo.
A refatoração é um exercício realizado após a atividade ter sido feita. Trata-se de um review do que foi feito e como foi feito, identificando pontos que podem ser melhorados, automatizados ou até mesmo descartados na próxima execução. Tudo isso, visando um melhor resultado e buscando evitar gasto de energia desnecessário.