Defesa de Estágio em Ciência da Computação -...

Post on 08-Nov-2018

215 views 0 download

Transcript of Defesa de Estágio em Ciência da Computação -...

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