SlideShare una empresa de Scribd logo
1 de 65
Descargar para leer sin conexión
https://roadmap.sh/roadmaps/backend.png
CARREIRADEV
ALVARO VIEBRANTZ
Developer Relations Engineer at Google Cloud
aviebrantz.com
@alvaroviebrantz
EU PENSANDO EM UM TEMA PARA ESTE EVENTO
“QUE TAL FALAR SOBRE
CARREIRA ?”
DICA #1
Estamos sempre aprendendo
MAS VAMOS AO BÁSICO
• Frontend
• Backend
• DevOps
• FullStack
roadmap.sh
COISAS COMUNS A TODOS
COMO A INTERNET FUNCIONA ?
• HTTP
• DNS
• SSL e criptogra
fi
a
• Arquitetura Cliente < - > Servidor
• Não precisa ser expert em nada disso, só ter
noções
VERSIONAMENTO
• Trabalhar em conjunto com outras pessoas
• Multiplas features
• Code review
• Git
• Git
fl
ow
• Hospedagem - Github, Bitbucket, Gitlab
• Boas praticas para documentar seu commits
ALGORITMOS E ESTRUTURAS DE DADOS
• Quando usar uma lista, hash map, conjuntos, árvores
• Vejo muitas perguntas em Javascript por exemplo - uso .forEach ou .map ?
• Nada é de graça, ter noções do custo que aquele código tem ao executar
• Faço uma chamada no banco ou múltiplas ?
• Queries N+1
• Quebrar problemas em sub problemas
• A gente acaba vendo muito isso ao estudar algoritmos de ordenação por exemplo
exercism.io
Leet Code
PROGRAMADOR FULL STACK OVERFLOW
“AAAAAALVARO, NUNCA
PRECISEI IMPLEMENTAR UM
ALGORITMO DE ORDENAÇÃO”
ALGORITMOS E ESTRUTURAS DE DADOS
• De fato você no dia a dia não vai implementar essas coisas
• Mas vai se deparar com problemas em que você tem que saber qual opção usar
• Uso uma lista ou um hash map aqui ?
• No Java vc tem várias implementações como LinkedList, ArrayList, HashMap
• Tem muitos problemas que se resolve com Conjuntos/Sets
• São conhecimentos que vão além de qualquer linguagem/framework
DESIGN PATTERNS
• Alguns padrões de programação se repetem
• Ajudam a refatorar código
• Pode ser reutilizado independente da linguagem
• Organizar um projeto
• Não abuse disso
• Se você tem um martelo, tudo parece um prego
DEV SENIOR DA EMPRESA
“A ISSO AI RESOLVE FÁCIL
COM UM SINGLETON”
refactoring.guru/design-patterns
DICA #2
Só por você não usar no dia a dia,
não significa que é inútil.
FRONTEND
ATRIBUIÇÕES DO FRONTEND
• Interfaces com o usuário
• Seja ela Web, Desktop ou Mobile
• Experiência do usuário
• Layout e semântica - HTML
• Estilização - CSS
• Manipulação - Javascript
• Formulários, Validação de dados, Tratamento de erros
FRONTEND EVOLUIU MUITO
• Arquitetura de projetos Frontend
• Style Guides
• Padrões de projetos
• CSS Moderno
• Pré processadores CSS - SASS, LESS
• CSS in JS - Styled Components
• Linters e Formatters - ESLint, Prettier, etc
• Build Tools - Webpack, Snowpack, Parcel
FRONTEND EVOLUIU MUITO
• App Like Experience - Progressive Web Apps
• Of
fl
ine, Banco de dados local, cache, noti
fi
cações, etc
• Web Bluetooth e Web Serial
• Como lidar com multiplas fontes de dados e interações ?
• Como interagir com o backend
• Rest, GraphQL, Websockets
• Gerenciamento de estados
• Redux, MobX, RxJS, Ramda
DICAS PARA ESTUDAR FRONTEND
• Estude Javascript/Typescript
• Escolha um dos 3 maiores frameworks pra focar inicialmente - talvez
baseado em vagas que você já ache interessante
• Construa aplicações por diversão
• github.com/public-apis/public-apis
• Backend as a Service
• Hasura, Firebase, MirageJS, AWS App Sync, etc
• Auth - Auth0, Firebase, AWS Cognito
BACKEND
ATRIBUIÇÕES DO BACKEND
• Integrações entre várias partes do sistema e entre sistemas
• Banco de Dados
• Armazenamento de arquivo
• Mensageria
• Autenticação e Autorização
• API Externas
• Pagamentos, Fonte de dados para cruzamento, Logistica, etc
• Regras de negócio, validação de dados e tratamento de erros
• Desenvolvimento de APIs
• Rest, GraphQL, gRPC
O QUE VOU USAR PRO MEU BACKEND ?
• Várias linguagens
• Java, C#, Node.js, Go, Python, Elixir, PHP e muitas outras
• Não tem bala de prata
• Seja promiscuo, não se apegue demais a uma
• Frameworks
• Alguns mais voltados para entrega rápida - Rails (Ruby), Laravel (PHP), Django (Python), etc
• Sem opinião forte, faça você mesmo - Express (Node), Spring boot (Java), Flask (Python)
• Arquitetura e Padrões de Projeto
• Clean Code, Arquitetura Hexagonal, Enterprise Patterns, etc
• Manutenção a longo prazo
• Pensar em formas de integrar com outros sistemas
BACKEND TAMBÉM DEVE TER NOÇÕES DE CLOUD
• Onde vai rodar meu código ?
• Noções de Linux e Servidores
• Containers
• Não deve rodar só na sua maquina
• Docker, Kubernetes, etc
• Nuvem/Cloud
• Google Cloud, Amazon (AWS) e Azure (Microsoft)
• IaaS, PaaS, CaaS, Serverless
• Monitoramento e Métricas
DEV OPS
INFRAESTRUTURA
• Servidores
• Linux
• Containers
• Docker e Kubernetes
• Nuvem/Cloud
• IaaS, PaaS, CaaS, Serverless
• Cloud Native Foundation é sua biblia
• cncf.io
• SRE - Site Reliability Engineer
• sre.google/sre-book
PESSOAS DE OPS SE TORNARAM DEVS
• Reduzir barreira entre Dev e Ops
• Hoje em dia até mesmo roteadores são “programáveis” com Python
• “Na minha máquina funciona”
• Prover ferramentas, bibliotecas e boas práticas relacionadas a infra
• Infra que suporte os Devs
• Dados
• Computação
• Logs
IaC - Infra as Code
• Automatizar o provisionamento de infra
• Reprodução de um ambiente de forma mais “stateless”
• Terraform, Puppet, Ansible, Hashicorp Nomad
• Kubernetes
• Versionamento de Aplicações e Infra
• Helm, K8S Operators, Kops, etc
• Continuous Integration and Continuous Delivery - CI/CD
• GitOps
Saúde do sistema
• Métricas do sistema
• Prometheus, Datadog, New Relic, Stackdriver, Cloud Watch
• Gerados pela própria infra e também pela aplicação
• Logs
• Loki, Elasticsearch, etc
• Dashboard
• Grafana, Kibana, etc
• Acompanhar metricas e receber alertas
FULL STACK
Tem até Dev Full Cycle agora
FULL STACK EXISTE ?
• Faz um pouco de tudo.
• Acho muito importante entender como todas as partes funcionam
• Web master > Desenvolvedor > Front End / Back End > Full Stack
• Não é uma caminho de carreira
• Necessidade e porte da empresas
YES, YOU CAN!
• É possível em minha opinião
• É uma coisa que vem com o tempo
• Mais relacionado a saber como várias partes funcionam
• Não recomendo a pensar assim pra quem está no inicio
• Estudar não faz mal, mas foco é importante
• Sai um framework JS por segundo - não adianta querer abraçar tudo
E ISSO EXISTE POR AI ?
• Empresas menores
• As vezes não suporta muita especialização
• Ou tem muitos projetos menores
• Empresas grandes geralmente não tem Full Stacks
• Mas empresas grandes também não colocam muito rótulo
• Software Engineer
• Video do Neto Marin - Quem acredita em Full Stack ?
• youtube.com/watch?v=nwwdXXO3U54
DICA #3
Seja feliz. E dá pra ser feliz com quase qualquer tecnologia que
você escolher hoje em dia. E não se apegue demais também.
Comunidade + Vagas + Bibliotecas + Conteúdo = ❤
SOFT SKILLS
VOCÊ É UM
DESENVOLVEDOR 10X ?
O que é um desenvolvedor 10x ?
O que é um desenvolvedor 10x ?
Dorothy Vaughan
Dorothy Vaughan
Dorothy Vaughan
HOJE NOSSO TALENTO É COLETIVO
E RELATIVO A QUÃO BEM NÓS SOMOS
TRABALHANDO JUNTOS.
COMPARTILHAR CONHECIMENTO
• Não necessariamente você tem que estar dando palestras
• Artigos, Videos, Palestras, Projetos públicos no Github
• Fale de coisas novas na empresa
• Fique mandando libs novas
• Artigos e palestras interessantes
• "Brown bags” / “Dev Snacks”
• Dias na empresa pra compartilhar conhecimento
SENIOR DE 2 ANOS
COMPUTAÇÃO NÃO É TÃO FÁCIL QUANTO VENDEM
SOBRE SENIORIDADE HOJE EM DIA
• Tem a ver com o que foi falado sobre o Dev 10x
• Ajudar muito o time
• Falta experiência
• Salário nem sempre é baseado no tempo de experiência
• Resolver o problema atual da empresa
• Tecnologias usadas
• Conhecimento do negócio
DICA #4
Foque em aprender - devagar e sempre.
INGLÊS
WAT ?
MUITO IMPORTANTE NA NOSSA ÁREA
• Acompanhar conteúdo sendo produzidos pela comunidade dev
• Videos
• Palestras
• Projetos Open Source
• Inglês técnico vs Inglês do dia a dia
• Cursos Online
• Treinar com pessoas nativas
• Grupos de estudo - Discord
MUITO IMPORTANTE NA NOSSA ÁREA
• Muitas vagas fora do país
• Aumenta o seu proprio raio de busca
• Aumenta competição
• Geralmente Mid Level ou Seniors
• Remoto vs Realocação
• 💰 Pagamento em moedas mais valorizadas 💰
FACULDADE
FAZER OU NÃO FAZER, EIS A QUESTÃO
VERDADES TEM QUE SER DITAS
• No geral, ter faculdade ainda te ajuda a encontrar vagas
• Até pra trabalhar pra fora por exemplo, ainda se olha muito isso.
• Fundações da Computação
• Pontos que foram citados antes - Lógica, Algoritmos, Estrutura de
dados, Banco de Dados, etc
• Network
• Conhecer um professor ou colega que pode te apresentar uma vaga
• Trabalhar em equipe, gerenciar tempo, etc
CADA UM TEM UMA HISTÓRIA
• Sobre privilégios e como isso é pouco discutido nesse contexto
• Uma pessoa privilegiada:
• Já vem estudando em boas escolas, cursinhos e tudo mais e acaba
entrando em faculdades melhores
• Não precisa trabalhar, foca só na faculdade
• Uma pessoas menos privilegiada:
• Não consegue entrar numa boa faculdade
• Tem que trabalha
• Foco não só na faculdade
SOCIEDADE
SIM, SEU CÓDIGO AFETA PESSOAS
RACISMO ALGORITMICO
• Recomendo ver o documentário - Coded Bias na Net
fl
ix
• Privacidade dos dados
• LGPD
• Machine Learning e Big Data tem alto impacto na sociedade e deve ser feito
de forma consciente
• Vieses e racismo algoritmos
• Treinamento com dados mais diversos
• Explicabilidade em ML
• Não adianta mais ter uma saída de SIM ou NÃO de um modelo, é
importante saber o por que daquilo
DICA #5
Saia da sua bolha dev, a vida não é só sim ou
não em muitos aspectos.
Avida é bem mais tons de cinza,
do que só preto e branco como a gente pensa.
Slack - devmt.herokuapp.com
meetup.com/devmatogrosso
https://roadmap.sh/roadmaps/backend.png
OBRIGADO
ALVARO VIEBRANTZ
Developer Relations Engineer at Google Cloud
aviebrantz.com
@alvaroviebrantz

Más contenido relacionado

Similar a Backend Roadmap

Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...tdc-globalcode
 
Simple singleton pattern
Simple singleton patternSimple singleton pattern
Simple singleton patternDennis Calazans
 
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Mario Guedes
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsRafael Salerno de Oliveira
 
Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...
Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...
Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...Rodrigo Vieira
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?Luis Vendrame
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento4Soft
 
Receita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndReceita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndLeonardo Balter
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edtedbrunoaalves
 
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...Bruno Bemfica
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoAchiles Camilo
 
Palestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkJosemar Davi Luedke
 

Similar a Backend Roadmap (20)

Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
 
Simple singleton pattern
Simple singleton patternSimple singleton pattern
Simple singleton pattern
 
Bi sobre Big Data - Como fazer?
Bi sobre Big Data - Como fazer?Bi sobre Big Data - Como fazer?
Bi sobre Big Data - Como fazer?
 
Webstandardsppt
WebstandardspptWebstandardsppt
Webstandardsppt
 
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
Extreme Experience 2018 | Estudo de Caso: Aplicação DataSnap para 10.000 usuá...
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...
Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...
Aspectos do aprendizado do paradigma orientado a objetos por programadores pr...
 
Apresentação Executiva
Apresentação ExecutivaApresentação Executiva
Apresentação Executiva
 
Desenvolvemos para web?
Desenvolvemos para web?Desenvolvemos para web?
Desenvolvemos para web?
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento
 
Receita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndReceita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front End
 
Palestra ror edted
Palestra ror edtedPalestra ror edted
Palestra ror edted
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
Potencializando a qualidade de código
Potencializando a qualidade de códigoPotencializando a qualidade de código
Potencializando a qualidade de código
 
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...
Testes Automatizados e Especificação Por Exemplo - Unindo TI e Negócio atravé...
 
Metodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introduçãoMetodologias Ágeis: Uma breve introdução
Metodologias Ágeis: Uma breve introdução
 
Palestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o Zeanwork
 
Seu código fede e você nem sabia
Seu código fede e você nem sabiaSeu código fede e você nem sabia
Seu código fede e você nem sabia
 

Más de Alvaro Viebrantz

BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIAlvaro Viebrantz
 
End to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfEnd to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfAlvaro Viebrantz
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoAlvaro Viebrantz
 
Prototipação em hackathons
Prototipação em hackathonsPrototipação em hackathons
Prototipação em hackathonsAlvaro Viebrantz
 
Building REST APIs using gRPC and Go
Building REST APIs using gRPC and GoBuilding REST APIs using gRPC and Go
Building REST APIs using gRPC and GoAlvaro Viebrantz
 
TinyML - IoT e Machine Learning
TinyML -  IoT e Machine LearningTinyML -  IoT e Machine Learning
TinyML - IoT e Machine LearningAlvaro Viebrantz
 
O que projetos de IoT precisam ?
O que projetos de IoT precisam ?O que projetos de IoT precisam ?
O que projetos de IoT precisam ?Alvaro Viebrantz
 
Ambiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google CloudAmbiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google CloudAlvaro Viebrantz
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query  - Escalabilidade Infinita para os seus DadosBig Query  - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus DadosAlvaro Viebrantz
 
Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google CloudAlvaro Viebrantz
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudAlvaro Viebrantz
 
Edge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudEdge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudAlvaro Viebrantz
 
Iniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google CloudIniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google CloudAlvaro Viebrantz
 
Construindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
Construindo projetos para o Google Assistant - I/O 2019 Recap São PauloConstruindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
Construindo projetos para o Google Assistant - I/O 2019 Recap São PauloAlvaro Viebrantz
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudAlvaro Viebrantz
 
Construindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoTConstruindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoTAlvaro Viebrantz
 
Explorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoExplorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoAlvaro Viebrantz
 
Soluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudSoluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudAlvaro Viebrantz
 
Soluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseSoluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseAlvaro Viebrantz
 
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...Alvaro Viebrantz
 

Más de Alvaro Viebrantz (20)

BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
End to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdfEnd to End IoT projects with Zephyr.pdf
End to End IoT projects with Zephyr.pdf
 
Construindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em GoConstruindo aplicações Cloud Native em Go
Construindo aplicações Cloud Native em Go
 
Prototipação em hackathons
Prototipação em hackathonsPrototipação em hackathons
Prototipação em hackathons
 
Building REST APIs using gRPC and Go
Building REST APIs using gRPC and GoBuilding REST APIs using gRPC and Go
Building REST APIs using gRPC and Go
 
TinyML - IoT e Machine Learning
TinyML -  IoT e Machine LearningTinyML -  IoT e Machine Learning
TinyML - IoT e Machine Learning
 
O que projetos de IoT precisam ?
O que projetos de IoT precisam ?O que projetos de IoT precisam ?
O que projetos de IoT precisam ?
 
Ambiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google CloudAmbiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google Cloud
 
Big Query - Escalabilidade Infinita para os seus Dados
Big Query  - Escalabilidade Infinita para os seus DadosBig Query  - Escalabilidade Infinita para os seus Dados
Big Query - Escalabilidade Infinita para os seus Dados
 
Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google Cloud
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google Cloud
 
Edge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google CloudEdge computing in practice using IoT, Tensorflow and Google Cloud
Edge computing in practice using IoT, Tensorflow and Google Cloud
 
Iniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google CloudIniciando com LoRa, The Things Network e Google Cloud
Iniciando com LoRa, The Things Network e Google Cloud
 
Construindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
Construindo projetos para o Google Assistant - I/O 2019 Recap São PauloConstruindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
Construindo projetos para o Google Assistant - I/O 2019 Recap São Paulo
 
Edge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google CloudEdge computing na prática com IoT, Machine Learning e Google Cloud
Edge computing na prática com IoT, Machine Learning e Google Cloud
 
Construindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoTConstruindo projetos com Google Assistant e IoT
Construindo projetos com Google Assistant e IoT
 
Explorando Go em Ambiente Embarcado
Explorando Go em Ambiente EmbarcadoExplorando Go em Ambiente Embarcado
Explorando Go em Ambiente Embarcado
 
Soluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google CloudSoluções de IoT usando Arduino e Google Cloud
Soluções de IoT usando Arduino e Google Cloud
 
Soluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e FirebaseSoluções de IoT usando Google Cloud e Firebase
Soluções de IoT usando Google Cloud e Firebase
 
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
Criando soluções de IoT usando Javascript de Ponta a Ponta: do Hardware até a...
 

Backend Roadmap

  • 1. https://roadmap.sh/roadmaps/backend.png CARREIRADEV ALVARO VIEBRANTZ Developer Relations Engineer at Google Cloud aviebrantz.com @alvaroviebrantz
  • 2. EU PENSANDO EM UM TEMA PARA ESTE EVENTO “QUE TAL FALAR SOBRE CARREIRA ?”
  • 3.
  • 4.
  • 5.
  • 6.
  • 8. MAS VAMOS AO BÁSICO • Frontend • Backend • DevOps • FullStack
  • 11. COMO A INTERNET FUNCIONA ? • HTTP • DNS • SSL e criptogra fi a • Arquitetura Cliente < - > Servidor • Não precisa ser expert em nada disso, só ter noções
  • 12. VERSIONAMENTO • Trabalhar em conjunto com outras pessoas • Multiplas features • Code review • Git • Git fl ow • Hospedagem - Github, Bitbucket, Gitlab • Boas praticas para documentar seu commits
  • 13.
  • 14. ALGORITMOS E ESTRUTURAS DE DADOS • Quando usar uma lista, hash map, conjuntos, árvores • Vejo muitas perguntas em Javascript por exemplo - uso .forEach ou .map ? • Nada é de graça, ter noções do custo que aquele código tem ao executar • Faço uma chamada no banco ou múltiplas ? • Queries N+1 • Quebrar problemas em sub problemas • A gente acaba vendo muito isso ao estudar algoritmos de ordenação por exemplo
  • 16. PROGRAMADOR FULL STACK OVERFLOW “AAAAAALVARO, NUNCA PRECISEI IMPLEMENTAR UM ALGORITMO DE ORDENAÇÃO”
  • 17. ALGORITMOS E ESTRUTURAS DE DADOS • De fato você no dia a dia não vai implementar essas coisas • Mas vai se deparar com problemas em que você tem que saber qual opção usar • Uso uma lista ou um hash map aqui ? • No Java vc tem várias implementações como LinkedList, ArrayList, HashMap • Tem muitos problemas que se resolve com Conjuntos/Sets • São conhecimentos que vão além de qualquer linguagem/framework
  • 18. DESIGN PATTERNS • Alguns padrões de programação se repetem • Ajudam a refatorar código • Pode ser reutilizado independente da linguagem • Organizar um projeto • Não abuse disso • Se você tem um martelo, tudo parece um prego
  • 19. DEV SENIOR DA EMPRESA “A ISSO AI RESOLVE FÁCIL COM UM SINGLETON”
  • 21. DICA #2 Só por você não usar no dia a dia, não significa que é inútil.
  • 23. ATRIBUIÇÕES DO FRONTEND • Interfaces com o usuário • Seja ela Web, Desktop ou Mobile • Experiência do usuário • Layout e semântica - HTML • Estilização - CSS • Manipulação - Javascript • Formulários, Validação de dados, Tratamento de erros
  • 24. FRONTEND EVOLUIU MUITO • Arquitetura de projetos Frontend • Style Guides • Padrões de projetos • CSS Moderno • Pré processadores CSS - SASS, LESS • CSS in JS - Styled Components • Linters e Formatters - ESLint, Prettier, etc • Build Tools - Webpack, Snowpack, Parcel
  • 25. FRONTEND EVOLUIU MUITO • App Like Experience - Progressive Web Apps • Of fl ine, Banco de dados local, cache, noti fi cações, etc • Web Bluetooth e Web Serial • Como lidar com multiplas fontes de dados e interações ? • Como interagir com o backend • Rest, GraphQL, Websockets • Gerenciamento de estados • Redux, MobX, RxJS, Ramda
  • 26.
  • 27. DICAS PARA ESTUDAR FRONTEND • Estude Javascript/Typescript • Escolha um dos 3 maiores frameworks pra focar inicialmente - talvez baseado em vagas que você já ache interessante • Construa aplicações por diversão • github.com/public-apis/public-apis • Backend as a Service • Hasura, Firebase, MirageJS, AWS App Sync, etc • Auth - Auth0, Firebase, AWS Cognito
  • 29. ATRIBUIÇÕES DO BACKEND • Integrações entre várias partes do sistema e entre sistemas • Banco de Dados • Armazenamento de arquivo • Mensageria • Autenticação e Autorização • API Externas • Pagamentos, Fonte de dados para cruzamento, Logistica, etc • Regras de negócio, validação de dados e tratamento de erros • Desenvolvimento de APIs • Rest, GraphQL, gRPC
  • 30. O QUE VOU USAR PRO MEU BACKEND ? • Várias linguagens • Java, C#, Node.js, Go, Python, Elixir, PHP e muitas outras • Não tem bala de prata • Seja promiscuo, não se apegue demais a uma • Frameworks • Alguns mais voltados para entrega rápida - Rails (Ruby), Laravel (PHP), Django (Python), etc • Sem opinião forte, faça você mesmo - Express (Node), Spring boot (Java), Flask (Python) • Arquitetura e Padrões de Projeto • Clean Code, Arquitetura Hexagonal, Enterprise Patterns, etc • Manutenção a longo prazo • Pensar em formas de integrar com outros sistemas
  • 31. BACKEND TAMBÉM DEVE TER NOÇÕES DE CLOUD • Onde vai rodar meu código ? • Noções de Linux e Servidores • Containers • Não deve rodar só na sua maquina • Docker, Kubernetes, etc • Nuvem/Cloud • Google Cloud, Amazon (AWS) e Azure (Microsoft) • IaaS, PaaS, CaaS, Serverless • Monitoramento e Métricas
  • 33. INFRAESTRUTURA • Servidores • Linux • Containers • Docker e Kubernetes • Nuvem/Cloud • IaaS, PaaS, CaaS, Serverless • Cloud Native Foundation é sua biblia • cncf.io • SRE - Site Reliability Engineer • sre.google/sre-book
  • 34. PESSOAS DE OPS SE TORNARAM DEVS • Reduzir barreira entre Dev e Ops • Hoje em dia até mesmo roteadores são “programáveis” com Python • “Na minha máquina funciona” • Prover ferramentas, bibliotecas e boas práticas relacionadas a infra • Infra que suporte os Devs • Dados • Computação • Logs
  • 35. IaC - Infra as Code • Automatizar o provisionamento de infra • Reprodução de um ambiente de forma mais “stateless” • Terraform, Puppet, Ansible, Hashicorp Nomad • Kubernetes • Versionamento de Aplicações e Infra • Helm, K8S Operators, Kops, etc • Continuous Integration and Continuous Delivery - CI/CD • GitOps
  • 36. Saúde do sistema • Métricas do sistema • Prometheus, Datadog, New Relic, Stackdriver, Cloud Watch • Gerados pela própria infra e também pela aplicação • Logs • Loki, Elasticsearch, etc • Dashboard • Grafana, Kibana, etc • Acompanhar metricas e receber alertas
  • 37. FULL STACK Tem até Dev Full Cycle agora
  • 38. FULL STACK EXISTE ? • Faz um pouco de tudo. • Acho muito importante entender como todas as partes funcionam • Web master > Desenvolvedor > Front End / Back End > Full Stack • Não é uma caminho de carreira • Necessidade e porte da empresas
  • 39. YES, YOU CAN! • É possível em minha opinião • É uma coisa que vem com o tempo • Mais relacionado a saber como várias partes funcionam • Não recomendo a pensar assim pra quem está no inicio • Estudar não faz mal, mas foco é importante • Sai um framework JS por segundo - não adianta querer abraçar tudo
  • 40. E ISSO EXISTE POR AI ? • Empresas menores • As vezes não suporta muita especialização • Ou tem muitos projetos menores • Empresas grandes geralmente não tem Full Stacks • Mas empresas grandes também não colocam muito rótulo • Software Engineer • Video do Neto Marin - Quem acredita em Full Stack ? • youtube.com/watch?v=nwwdXXO3U54
  • 41. DICA #3 Seja feliz. E dá pra ser feliz com quase qualquer tecnologia que você escolher hoje em dia. E não se apegue demais também. Comunidade + Vagas + Bibliotecas + Conteúdo = ❤
  • 44. O que é um desenvolvedor 10x ?
  • 45. O que é um desenvolvedor 10x ? Dorothy Vaughan
  • 48. HOJE NOSSO TALENTO É COLETIVO E RELATIVO A QUÃO BEM NÓS SOMOS TRABALHANDO JUNTOS.
  • 49. COMPARTILHAR CONHECIMENTO • Não necessariamente você tem que estar dando palestras • Artigos, Videos, Palestras, Projetos públicos no Github • Fale de coisas novas na empresa • Fique mandando libs novas • Artigos e palestras interessantes • "Brown bags” / “Dev Snacks” • Dias na empresa pra compartilhar conhecimento
  • 50. SENIOR DE 2 ANOS
  • 51. COMPUTAÇÃO NÃO É TÃO FÁCIL QUANTO VENDEM
  • 52. SOBRE SENIORIDADE HOJE EM DIA • Tem a ver com o que foi falado sobre o Dev 10x • Ajudar muito o time • Falta experiência • Salário nem sempre é baseado no tempo de experiência • Resolver o problema atual da empresa • Tecnologias usadas • Conhecimento do negócio
  • 53. DICA #4 Foque em aprender - devagar e sempre.
  • 55. MUITO IMPORTANTE NA NOSSA ÁREA • Acompanhar conteúdo sendo produzidos pela comunidade dev • Videos • Palestras • Projetos Open Source • Inglês técnico vs Inglês do dia a dia • Cursos Online • Treinar com pessoas nativas • Grupos de estudo - Discord
  • 56. MUITO IMPORTANTE NA NOSSA ÁREA • Muitas vagas fora do país • Aumenta o seu proprio raio de busca • Aumenta competição • Geralmente Mid Level ou Seniors • Remoto vs Realocação • 💰 Pagamento em moedas mais valorizadas 💰
  • 57. FACULDADE FAZER OU NÃO FAZER, EIS A QUESTÃO
  • 58. VERDADES TEM QUE SER DITAS • No geral, ter faculdade ainda te ajuda a encontrar vagas • Até pra trabalhar pra fora por exemplo, ainda se olha muito isso. • Fundações da Computação • Pontos que foram citados antes - Lógica, Algoritmos, Estrutura de dados, Banco de Dados, etc • Network • Conhecer um professor ou colega que pode te apresentar uma vaga • Trabalhar em equipe, gerenciar tempo, etc
  • 59. CADA UM TEM UMA HISTÓRIA • Sobre privilégios e como isso é pouco discutido nesse contexto • Uma pessoa privilegiada: • Já vem estudando em boas escolas, cursinhos e tudo mais e acaba entrando em faculdades melhores • Não precisa trabalhar, foca só na faculdade • Uma pessoas menos privilegiada: • Não consegue entrar numa boa faculdade • Tem que trabalha • Foco não só na faculdade
  • 60. SOCIEDADE SIM, SEU CÓDIGO AFETA PESSOAS
  • 61. RACISMO ALGORITMICO • Recomendo ver o documentário - Coded Bias na Net fl ix • Privacidade dos dados • LGPD • Machine Learning e Big Data tem alto impacto na sociedade e deve ser feito de forma consciente • Vieses e racismo algoritmos • Treinamento com dados mais diversos • Explicabilidade em ML • Não adianta mais ter uma saída de SIM ou NÃO de um modelo, é importante saber o por que daquilo
  • 62.
  • 63. DICA #5 Saia da sua bolha dev, a vida não é só sim ou não em muitos aspectos. Avida é bem mais tons de cinza, do que só preto e branco como a gente pensa.
  • 65. https://roadmap.sh/roadmaps/backend.png OBRIGADO ALVARO VIEBRANTZ Developer Relations Engineer at Google Cloud aviebrantz.com @alvaroviebrantz