O documento fornece uma visão geral de várias áreas relacionadas à carreira de desenvolvimento de software, incluindo frontend, backend, DevOps, soft skills e considerações sociais. Ele discute os principais tópicos em cada área, como estruturas de dados, versionamento, arquitetura de projetos, cloud computing e inclusão. O documento enfatiza a importância contínua de aprendizado e compartilhamento de conhecimento.
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”
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
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 = ❤
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
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
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 💰
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
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.