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
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