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

Back-end: O que precisa saber para se tornar um

Fala galera, tudo bem?

Sou Dev front-end e Mobile, e querisa saber, o que um Dev back-end precisa saber para trabalhar na área? criar projetos completos e funcionais.

Quero me aprofundar nesta área mas não sei o que estudr nem por onde começar.

Carregando publicação patrocinada...
4

Então, pra ser back-end e mandar bem de verdade, você precisa saber quase tudo. Bora lá:

  • Estruturas de Dados e Algoritmos - Buscas diversas, árvores, hashes, programação, dinamica, algoritmos gulosos, programação númerica..
  • Banco de Dados - Relacionais, não-relacionais, caches, replicas..
  • Redes de Computadores - HTTP, REST, gRPC, WebSockets, TCP/IP, DNS...
  • Sistemas Operacionais - Threads, processos, memória, arquivos, IPC, redes..
  • Arquitetura de Sistemas – Monólitos, microserviços, Design Patterns, event-driven, DDD, e todos os buzzwords que vão impressionar no LinkedIn...
  • Segurança – Criptografia, autorização, autenticação, prevenção de ataques...
  • DevOps– CI/CD, Docker, Kubernetes, Jenkins...
  • Paradigmas de Programação - Procedural, Orientada a Objetos, Funcional..
  • Matemática - Discreta, Cálculo, Geometria Análica...
  • Sistemas Distribuídos– É como redes, mas com 10x mais dor de cabeça.
  • Engenharia de Software – Requisios, Verificação e Validação. Documentação, Processos de desenvolvimento de software, Metodologias Ágeis..

E olha, isso aí foi só o começo.. Provavelmente esqueci uns 30 tópicos essenciais. Dá uma olhada nas grades curriculares dos melhores cursos de Ciência da Computação do Brasil e do mundo. É isso que você precisa saber. Boa sorte!

3
1

Ter achado esse site pelo canal do Deschamps foi essencial, com essas dicas também percebo que tem um longo caminho, mas que não estou fora da pista, ótimas dicas e bons estudos para todos!💪🏾

4

1 - Baixe, instale e use o EVE-NG ou o PNETLAB para criar cenarios de infra e deploy - este software permite criar e testar cenarios diversos, muito util para ser seu LAB (sem gastar rios de dinheiro em estruturas AWS, DO, vultr...)

2 - Estude infra-estrutura de redes: entenda o que eh IPv4, IPv6, DNS, gateways, rotas, forward de portas/nat (se der pelo menos a ideia do que seja um ISP, BGP e o IX do nic.br)

3 - Estude Linux (nao precisa ser desktop, o server pelo menos) - veja como ele funciona, sua estrutura (p.ex. diretorios) e servicos

4 - Entenda os cenarios CI/CD: docker, containers, k8, git, ansible, terraform

5 - Entenda os cenarios e diferencas entre BD: MySQL, PostgreSQL, NoSQL, Redis.

6 - Entenda pelo menos o basico de python

7 - Entenda como funciona API de microsaas e cenarios de auto-scaling (p.ex. diferenca de horizontal para vertical, loadbalance, HA)

Com isso pelo menos voce comeca a ter uma nocao macro.

Por "entender" que dizer: nao precisa se tornar um expert, mas treine um pouco cada uma destas habilidades, digamos 15 dias cada uma. Ai voce observa o que gosta mais e dedica um pouco de profundidade e naturalmente outros topicos serao puxados.

Mas os 7 itens que coloquei acima sao coisas que voce consegue estudar sozinho, tem bastante material na rede - e ajuda a abrir sua visao.

E por fim: nao fique desanimado "eh muita coisa" - novamente voce nao precisa se tornar expert em tudo isso (pelo menos, nao de imediato), a ideia aqui eh usar uns 4 meses para estudar material e comecar a entender como tudo isso se encaixa.

Se quiser ignorar tudo isso - beleza, mas por favor, pelo menos estude sobre infra-estrutura de redes, eh horrivel ver um back-end que nao sabe a diferenca de um nome de host de um FQDN, ou como a ausencia de um gateway impede o acesso a internet, ou mesmo qual a funcao de um roteador na rede.

2

Sinceramente, digo por experiência própria e experiência em projetos e tutorias com amigos e mesmo minha própria namorada. Começa no simples, vai direto na linguagem que você tem mais afinidade. Quanta experiência você já tem com front-end e mobile? Se for com React ou Angular, lhe recomendo iniciar pelo NodeJs/NestJs, mas existe uma infinidade de frameworks e linguagens a se observar.

Após conseguir criar seus primeiros CRUD's você já terá o mínimo de conhecimento sobre a linguagem e como criar um serviço.

Se você chegar nesse momento, aí sim, comece a estudar mais sobre o Docker, isso será essencial para que você possa criar aplicações de forma padronizada nos diferentes ambientes em que ele pode rodar.

Depois, bom, aí você vai descobrindo com tempo. Não tente abraçar todos os 99 tópicos de uma vez só, começa pelo simples e vai evoluindo. ;)

Obviamente para se tornar um bom desenvolvedor de backend é necessário entender tudo que a galera está falando. Mas se é pra começar, vai no básico.