ksetoue / backend-presentation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Backend 101

Olá! Este repositório é uma espécie de guia para pessoas que querem começar ou já estão na área de desenvolvimento backend e desejam se aperfeiçoar nessa área

Apresentação

Slides usados na apresentação que motivou a criação desse repositório: link

Essa apresentação contém também um tutorial de como montar uma API usando Kotlin e Spring boot, acessando a pasta tutorial deste repositório

Antes de começar

Antes de começar a falar sobre desenvolvimento em si, quero deixar aqui minhas considerações sobre a área de desenvolvimento. No conceito popular, a área de tecnologia geralmente cai em uma das duas categorias: muito fácil - em 1 mês a pessoa aprendeu a programar e já ganha 15 mil reais - ou muito difícil - vai levar anos para aprender e mesmo assim ainda vai sobrar muitas skills que você não vai conhecer.

A grande verdade é que a experiência que cada pessoa tem com a área acaba sendo bem única, e nenhum desses dois extremos é verdade absoluta. Pode ser que existam casos assim? Claro! Mas não é regra.

A questão é que, cada empresa, cada faculdade/curso ensina e forma a pessoa desenvolvedora de maneira diferente, pois cada lugar tem uma cultura, processos e formas de disseminar conhecimento específicos, e, por mais que tenhamos técnicas para isso (metodologia ágil, ladders de carreira, avaliações técnicas, processos seletivos, usar a infra na aws, usar ou não javascript, java, etc) ainda assim, tenha em mente que a pessoa que deve tomar as decisões sobre o que aprender e para onde crescer na sua carreira é você.

Compartilhando um pouco da minha experiência, no começo parecia que a área de desenvolvimento tinha muita coisa. É verdade, tem mesmo. E por mais que a gente queira aprender tudo, é preciso tomar cuidado com extremos de "vou usar meu tempo livre para aprender algo novo" ou "depois do trabalho eu não penso mais em código".

Aqui vão algumas dicas - mas, de novo, veja as que fazem sentido para a sua vida, carreira e saúde mental!

Dicas

  • Evite comparações - cada pessoa possui sua própria vivência e ritmo de aprendizado, então evite se comparar a outros devs
  • Entenda qual forma de estudo funciona melhor para você - algumas pessoas preferem seguir tutoriais, outras assistir video aulas ou ter aulas presenciais. O importante é entender qual método funciona melhor para você
  • Prática: desenvolvimento de software exige prática, tente sempre que possível implementar algo que aprendeu
  • Busque entender o conceito, não apenas a prática: quando estamos aprendendo algo novo, é comum já querer sair codando. Não há nada de errado com isso, porém, é importante saber os conceitos das coisas, porque aí independente da linguagem ficará mais fácil de entender códigos já existentes
  • Seja paciente e busque ajuda: uma parte muito importante do processo de desenvolvimento é conversar e trocar esperiências com outros desenvolvedores. Revisar código, tentar contribuir com projetos open-source pode ser uma boa maneira de aplicar algo que aprendeu e geralmente nesse tipo de projeto há pessoas que podem ajudar você a desenvolver suas habilidades

Recursos

Abaixo você encontra uma lista de recursos legais para aprender, divididos por área

Conceitos

sobre programação

  • Estruturas de dados
  • Arquitetura de aplicações
  • Fluxo de desenvolvimento
  • Paradigmas de programação
  • Banco de dados

sobre backend

  • internet, protocolos, camadas, e dns
  • REST
  • Protocolos de comunicação de APIs
  • Nuvem, devops e deploy
  • Linguagens e frameworks para backend

Sobre times, processos, metodologias e soft skill

  • Metodologia ágil
  • Ciclo de vida de produtos
  • O que cobrar de um gerente de engenharia
  • Processo de desenvolvimento de produtos digitais

Técnicas, manifestos e testes

  • TDD - test driven development (ou desenvolvimento orientado a testes)
  • DDD - domain driven development (ou desenvolvimento orientado a dominio)
  • Código limpo
  • GIT
  • Logs e observabilidade

Outros recursos que podem ser interessantes

About


Languages

Language:Kotlin 100.0%