defesa de estágio em ciência da computação -...
TRANSCRIPT
1
Defesa de Estágio em Ciência da Computação - UFABC
Rafael Augusto Pissardo
MJV Tecnologia & Inovação
&
Codus Tecnologia
Orientador: Jesús P. Mena-Chalco
Apoio:
• Instituto de Engenheiros Eletricistas e Eletrônicos - IEEE UFABC
• Sociedade de Computação do IEEE UFABC
• Sociedade de Robótica e Automação do IEEE UFABC
2
Tópicos Abordados
• Sobre a MJV
• Laboratório da MJV
• Projetos do Laboratório
• Sobre a Codus
• Treinamento
• Projeto W1
• Apresentação aos Alunos de EAD I
• Evolução na carreira
• Disciplinas
• Atividades
3
Defesa de Estágio em Ciência da Computação - UFABC
Estágios realizado em duas empresas:
4
Sobre a MJV
• Fundada há 18 anos
• Principal escritório no Rio de Janeiro
• Estágio realizado no escritório da Vila Olimpia
• 300 funcionários
5
Sobre a MJV
• Design Thinking
• Gameficação
• Bigdata
• Metodologia Lean
• Estratégia Digital
• Internet of Things
• Laboratório Digital
6
Sobre a MJV
• Estágio realizado no Laboratório Digital
• Contratação como Programador Júnior II
• Responsabilidades:
– Ajudar na Contrução do Laboratório Digital SP
– Auxiliar a empresa em Inovação
– Auxiliar os Designers e UXs em seus projetos
– Maker Space
– Soluções Rápidas
7
Sobre a Codus
• Fundada no Final de 2011
• Os fundadores são dois Engenheiros de Computação da Escola Politécnica – USP
• Escritório na Avenida Paulista
• Cerca de 25 funcionários
8
Sobre a Codus
• W1 Consultoria Financeira
• Emprego Ligado
• Cerc
• aLavadeira
9
Sobre a Codus
• Estágio realizado entre Setembro e Janeiro
• Efetivação em Fevereiro como Trainee em Desenvolvimento de Software
• Principais ferramentas utilizadas:– Ruby / Rails
– JavaScript / ES6
– HTML / CSS
– Go
– React
– Metodologia SCRUM
10
Sobre o Laboratório • O Laboratório era composto de:
– Impressora 3D
– Componentes Eletrônicos diversos
– Dois Programadores
11
Objetivo do Laboratório
• Gerar tecnologia que ajude o desenvolvimento de produtos e geração de valor para Designers
• Fundamentos de Eletrônica
• Fundamentos de Programação
12
Principal Ferramenta Aprendida
• Model-View-Controller (MVC)
Controller
View Model
13
Projeto Buddies
• Aplicatativo Web
• Passeadores de Cães e Donos de Cães
• Aliados à IoT
14
Projeto Buddies
15
Projeto Cartier
• Loja de Jóias Cartier
• Entender melhor cada Cliente
• Proposta: Determinar Persona de acordo com a entrevista transcrita por um funcionário
• Filtro de palavras e aplicação de reforçoExclusão / Stop Words = [',', 'da', 'das', 'de', 'do', 'dos', 'na', 'no', 'nos', 'nas]
Reforçadas = ['bom', 'ruim', 'sim', 'não', 'muito', 'pouco', 'bastante', 'sempre', 'nunca', 'tudo', 'fundamental‘]
16
Projeto Cartier
• Frase inicial: "Não gostei desta marca e nunca mais usarei roupas dela“
• Frase tratada: "Não gostei não desta marca nunca usarei nunca roupas“
17
Projeto Cartier
18
Outros Projetos LAB MJV
19
Treinamento Codus
20
Treinamento Codus
21
Treinamento Codus
• Noções avançadas em HTML, CSS, JavaScript e JQuery.
• Boas práticas de programação e Clean Code.
• Ruby / Rails.
22
Clean Code
• Métodos pequenos
• Código como uma história
• Trabalho em equipe
• Fácil manutenção
• Depende de sua aplicação
23
Eat That Frog
• To Do Lists
• Prioridades
• Nem sempre o mais urgente é o mais importante
• Pontuar suas tarefas
• Eliminar tarefa com maior ponto primeiro
24
Treinamento Codus
• Test Driven Development (TDD) e o Behavior Driven Development (BDD)
– Testes bem definidos antes de iniciar o código
– Agilidade e adaptabilidade com o Scrum
– Backlogs bem definidos
25
Ruby / Rails
• Banco de Dados (Postgres) e Modelos são pertencentes ao Aplicativo Gerado
• Rspec (BDD) com principal ferramenta de Teste
• Auxilio de Gemas
• Desenvolvimento Ágil
26
Projeto W1
• W1 – Consultoria Financeira
– Esquema Multinível Legal
– Cálculos complexos de Ranking• Problemas com os cálculos
• Erros em distribuir as comissões
• Dois NameSpaces – Um Sistema
– Painel Consultor
– Painel Administrador
27
Projeto W1
• Principais Gemas Utilizadas
– Monetize, controle de fluxo financeiro. Problema comum com tratamento de dinheiro em Float
– Devise, controle de acesso e fluxo de usuário. Bem como, gerenciamento de senhas
– PaperTrail, versionamento de Objetos de Classe
– FactoryGirl, padronização de entidades de Testes
– AASM, geração de Máquina de Estado para processos bem definidos e imutáveis
28
Projeto W1
29
Atividades Desenvolvidas
Atividade Estágio I Estágio II Estágio III
Desenvolvimento de Hardware Sim
Desenvolvimento de Software Sim Sim Sim
IoT Sim
Elementos de Engenharia Sim
SCRUM Sim Sim
Análise de Sistema Sim Sim
Desenvolvimento Ágil Sim Sim Sim
Treinamento Sim
Pesquisa e Aprendizado Sim Sim Sim
30
Disciplinas Envolvidas
31
Disciplina Conteúdo Aplicado
Programação Orientada ao Objeto Ruby é uma linguagem, estritamente, orientada aoobjeto. Tal matéria foi fundamental para odesenvolvimento do estágio.
Computadores, Ética e Sociedade Capacidade de tratar os problemas e direciona-los aosclientes. Bem como determinar o sigílo.
Algoritmos e Estrutura de Dados I e II Organização de dados para buscas e ordenaçõeseficientes. Questionamento sobre as linguagens equais algoritmos seus métodos utilizam.
Banco de Dados Conhecimento em MySql, PostgreSql, SQLite.
Compiladores Como as gramáticas e os diversos sistemas deprogramação funcionam. Expressões Regulares foifundamental e diferencial no aprendizado à novalinguagem.
Segurança de Dados Criptografia de senhas e autenticação de usuário.
Engenharia de Software Análise de Projeto e levantamento de requisitos.
Linguagens Formais e Automata Construção e entendimento sobre máquinas deestados facilita o desenvolvimento de sistemas
Apresentação Aos Alunos
• Idéia surgiu em Novembro de 2016
• Apresentação realizada em 12 de Abril de 2017
• Alunos de Algoritmo e Estrutura de Dados I
32
Evolução na carreira
• Conhecimento em Planejamento, Análise e Execução de Projeto
• Cultura Empresarial
– Empresa Média
– Empresa Pequena
• Foco e direcionamento
33
Perspectivas
• Continuar os estudos em Engenharia de Instrumentação, Automação e Robótica na UFABC
• Aplicar o conhecimento do BCC em elementos da Engenharia
34
Referências• Robert Cecil Martin. Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall, 2008.
• David Airey. Logo Design Love: A Guide to Creating Iconic Brand Identities. Peachpit Press, 2009.
• Dave Chelimsky. The Rspec Book:Behaviour Driven Development with Rspec, Cucumber, and Friends. Pragmatic Bookshelf, 2010.
• Mark Dodgson and David Gann. Innovation. L&PM Pocket Encyclopaedia, 2010.
• David A. Patterson and John LeRoy Hennessy. Computer organization and design - The hardware/software interface. Morgan Kaufmann, 1994.
• Paolo Perrotta. Metaprogramming Ruby. Pragmatic Bookshelf, 2010.
• Sam Ruby, Dave Thomas, and David Hansson. Agile Web Development with Rails 4. Pragmatic Bookshelf, 2013.
• Dave Thomas, Chad Fowler, and Andy Hunt. Programming Ruby 1.9 and 2.0. Pragmatic Bookshelf, 2013
35
Agradecimentos
– Prof. Dr. Jesús P. Mena-Chalco
– Profa. Dra. Denise Hideko Goya
– Profa. Dra. Mirtha Lina Fernandez Venero
36