O papel e a carreira de um
desenvolvedor de software
Michel Graciano
Apresentação
▪ Instrutor na Código Efetivo e Arquiteto de
Sistemas para a Betha Sistemas
▪ Mais de 14 anos de experiência
▪ Membro do SouJava, GUJavaSC e colaborador em
projetos open source, como o NetBeans
▪ Palestrante em eventos como JavaOne USA e
Brasil, TDC Floripa e JustJava
▪ Sistemas de Informação pela UNISUL
O papel do desenvolvedor
▪ Compreender requisitos de sistemas
○ Conversa com analistas de requisitos
○ Conversa com clientes e usuários
○ Questionar responsáveis
▪ Desenvolver software com qualidade
○ Padrões de projeto
○ Software Craftsmanship Manifesto
○ Não existe superhero
Desafio: Entender as necessidades
Desafio: Entender as necessidades
▪ Gerencia as necessidades e os requisitos
Padrões de projeto
Os padrões de projeto, também conhecidos como
design patterns, surgem para descrever, capturar e
nomear técnicas para solução de problemas de
software. (Buschmann et al, 2007)
Grande bola de lama (Big Ball of Mud), conhecem
algum software assim?
Carreira do desenvolvedor
▪ Como se tornar um bom desenvolvedor de
software?
▪ Onde posso trabalhar?
▪ Como lidar com novas tecnologias?
▪ O que devo estudar hoje?
Como se tornar um bom
desenvolvedor de software?
▪ Traçar objetivos e metas atingíveis
– Aprender novas tecnologias
– Fazer certificações e cursos
– Participar de eventos
– Publicar artigos
Como se tornar um bom
desenvolvedor de software?
▪ Domínio do idioma inglês
– É a língua de facto na área de tecnologia
– Deve se ter uma ótima compreensão
– Todos os bons materiais são em língua inglesa
– Para se atualizar tem que conviver com inglês
– É mais fácil que Português ☺
Como se tornar um bom
desenvolvedor de software?
▪ Não ficar estagnado
– Hackear (no bom sentido)
– Participar de eventos e cursos
– Estudar outras disciplinas além do que você conhece
– Estudo eterno!
Como se tornar um bom
desenvolvedor de software?
▪ Ler bastante
– Livros de programação, padrões, arquitetura,
gerenciamento de projetos
– Artigos, Blogs, Twitter (apenas conteúdo relevante)
– Autores: Martin Fowler, Uncle Bob, Kent Back, GoF
“In theory, theory and practice are the same. In practice, they
are not.” ― Albert Einstein
Onde posso trabalhar como
desenvolvedor de software?
▪ Empresas locais e regionais
– Grandes empresas em Criciúma
– Polos tecnológicos em Florianópolis e Tubarão
▪ Empresas de grandes centros ou exterior
– Trabalho remoto (home office)
– Mudar-se para grandes centros ou exterior
▪ Sempre haverá lugar para um bom desenvolvedor
dentro de um time, é só questão de
amadurecimento
Como lidar com novas tecnologias?
▪ Avaliar os requisitos, a equipe, o negócio e o RoI
▪ Ficar atento a movimentação do mercado
▪ Participar e contribuir com comunidades Open
Source (devlists, GitHub)
▪ Selecionar a tecnologia de forma responsável
O que devo estudar hoje?
▪ Arquitetura de sistemas distribuídos
○ Modelos RESTful
○ Modelos Reativos
▪ Linguagens Java, JavaScript, Scala, Go, Rust, etc
○ Plataforma Java EE, Spring, Akka, NodeJS, etc
▪ Frameworks Client-Side (AngularJS, ReactJS, etc)
▪ Banco de dados relacionais e NoSQL
▪ Desenvolvimento mobile
▪ Computação em nuvem (Cloud computing)
Trending
▪ Modelo RESTful e Reativos;
▪ Microserviços (Sistemas distribuídos)
○ Não é algo simples, muito cuidado com a moda!
▪ IoT (Internet of Things)
▪ Wearables
Obrigado!
github.com/mgraciano
@mgraciano
http://www.slideshare.net/mgraciano

O papel e a carreira de um desenvolvedor de software

  • 1.
    O papel ea carreira de um desenvolvedor de software Michel Graciano
  • 2.
    Apresentação ▪ Instrutor naCódigo Efetivo e Arquiteto de Sistemas para a Betha Sistemas ▪ Mais de 14 anos de experiência ▪ Membro do SouJava, GUJavaSC e colaborador em projetos open source, como o NetBeans ▪ Palestrante em eventos como JavaOne USA e Brasil, TDC Floripa e JustJava ▪ Sistemas de Informação pela UNISUL
  • 3.
    O papel dodesenvolvedor ▪ Compreender requisitos de sistemas ○ Conversa com analistas de requisitos ○ Conversa com clientes e usuários ○ Questionar responsáveis ▪ Desenvolver software com qualidade ○ Padrões de projeto ○ Software Craftsmanship Manifesto ○ Não existe superhero
  • 4.
  • 5.
    Desafio: Entender asnecessidades ▪ Gerencia as necessidades e os requisitos
  • 6.
    Padrões de projeto Ospadrões de projeto, também conhecidos como design patterns, surgem para descrever, capturar e nomear técnicas para solução de problemas de software. (Buschmann et al, 2007) Grande bola de lama (Big Ball of Mud), conhecem algum software assim?
  • 7.
    Carreira do desenvolvedor ▪Como se tornar um bom desenvolvedor de software? ▪ Onde posso trabalhar? ▪ Como lidar com novas tecnologias? ▪ O que devo estudar hoje?
  • 8.
    Como se tornarum bom desenvolvedor de software? ▪ Traçar objetivos e metas atingíveis – Aprender novas tecnologias – Fazer certificações e cursos – Participar de eventos – Publicar artigos
  • 9.
    Como se tornarum bom desenvolvedor de software? ▪ Domínio do idioma inglês – É a língua de facto na área de tecnologia – Deve se ter uma ótima compreensão – Todos os bons materiais são em língua inglesa – Para se atualizar tem que conviver com inglês – É mais fácil que Português ☺
  • 10.
    Como se tornarum bom desenvolvedor de software? ▪ Não ficar estagnado – Hackear (no bom sentido) – Participar de eventos e cursos – Estudar outras disciplinas além do que você conhece – Estudo eterno!
  • 11.
    Como se tornarum bom desenvolvedor de software? ▪ Ler bastante – Livros de programação, padrões, arquitetura, gerenciamento de projetos – Artigos, Blogs, Twitter (apenas conteúdo relevante) – Autores: Martin Fowler, Uncle Bob, Kent Back, GoF “In theory, theory and practice are the same. In practice, they are not.” ― Albert Einstein
  • 12.
    Onde posso trabalharcomo desenvolvedor de software? ▪ Empresas locais e regionais – Grandes empresas em Criciúma – Polos tecnológicos em Florianópolis e Tubarão ▪ Empresas de grandes centros ou exterior – Trabalho remoto (home office) – Mudar-se para grandes centros ou exterior ▪ Sempre haverá lugar para um bom desenvolvedor dentro de um time, é só questão de amadurecimento
  • 13.
    Como lidar comnovas tecnologias? ▪ Avaliar os requisitos, a equipe, o negócio e o RoI ▪ Ficar atento a movimentação do mercado ▪ Participar e contribuir com comunidades Open Source (devlists, GitHub) ▪ Selecionar a tecnologia de forma responsável
  • 14.
    O que devoestudar hoje? ▪ Arquitetura de sistemas distribuídos ○ Modelos RESTful ○ Modelos Reativos ▪ Linguagens Java, JavaScript, Scala, Go, Rust, etc ○ Plataforma Java EE, Spring, Akka, NodeJS, etc ▪ Frameworks Client-Side (AngularJS, ReactJS, etc) ▪ Banco de dados relacionais e NoSQL ▪ Desenvolvimento mobile ▪ Computação em nuvem (Cloud computing)
  • 15.
    Trending ▪ Modelo RESTfule Reativos; ▪ Microserviços (Sistemas distribuídos) ○ Não é algo simples, muito cuidado com a moda! ▪ IoT (Internet of Things) ▪ Wearables
  • 16.