Successfully reported this slideshow.
Your SlideShare is downloading. ×

Carreira de Desenvolvimento

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Frameworks PHP
Frameworks PHP
Loading in …3
×

Check these out next

1 of 65 Ad

More Related Content

Similar to Carreira de Desenvolvimento (20)

More from Alvaro Viebrantz (20)

Advertisement

Recently uploaded (20)

Carreira de Desenvolvimento

  1. 1. https://roadmap.sh/roadmaps/backend.png CARREIRADEV ALVARO VIEBRANTZ Developer Relations Engineer at Google Cloud aviebrantz.com @alvaroviebrantz
  2. 2. EU PENSANDO EM UM TEMA PARA ESTE EVENTO “QUE TAL FALAR SOBRE CARREIRA ?”
  3. 3. DICA #1 Estamos sempre aprendendo
  4. 4. MAS VAMOS AO BÁSICO • Frontend • Backend • DevOps • FullStack
  5. 5. roadmap.sh
  6. 6. COISAS COMUNS A TODOS
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. exercism.io Leet Code
  11. 11. PROGRAMADOR FULL STACK OVERFLOW “AAAAAALVARO, NUNCA PRECISEI IMPLEMENTAR UM ALGORITMO DE ORDENAÇÃO”
  12. 12. 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
  13. 13. 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
  14. 14. DEV SENIOR DA EMPRESA “A ISSO AI RESOLVE FÁCIL COM UM SINGLETON”
  15. 15. refactoring.guru/design-patterns
  16. 16. DICA #2 Só por você não usar no dia a dia, não significa que é inútil.
  17. 17. FRONTEND
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. BACKEND
  23. 23. 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
  24. 24. 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
  25. 25. 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
  26. 26. DEV OPS
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 31. FULL STACK Tem até Dev Full Cycle agora
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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 = ❤
  36. 36. SOFT SKILLS
  37. 37. VOCÊ É UM DESENVOLVEDOR 10X ?
  38. 38. O que é um desenvolvedor 10x ?
  39. 39. O que é um desenvolvedor 10x ? Dorothy Vaughan
  40. 40. Dorothy Vaughan
  41. 41. Dorothy Vaughan
  42. 42. HOJE NOSSO TALENTO É COLETIVO E RELATIVO A QUÃO BEM NÓS SOMOS TRABALHANDO JUNTOS.
  43. 43. 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
  44. 44. SENIOR DE 2 ANOS
  45. 45. COMPUTAÇÃO NÃO É TÃO FÁCIL QUANTO VENDEM
  46. 46. 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
  47. 47. DICA #4 Foque em aprender - devagar e sempre.
  48. 48. INGLÊS WAT ?
  49. 49. 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
  50. 50. 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 💰
  51. 51. FACULDADE FAZER OU NÃO FAZER, EIS A QUESTÃO
  52. 52. 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
  53. 53. 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
  54. 54. SOCIEDADE SIM, SEU CÓDIGO AFETA PESSOAS
  55. 55. 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
  56. 56. 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.
  57. 57. Slack - devmt.herokuapp.com meetup.com/devmatogrosso
  58. 58. https://roadmap.sh/roadmaps/backend.png OBRIGADO ALVARO VIEBRANTZ Developer Relations Engineer at Google Cloud aviebrantz.com @alvaroviebrantz

×