open4education | mc59 - aprendendo a programar de forma divertida e eficiente, por ricardo ogliari

54
Aprendendo a Programar Globalcode

Upload: tdc-globalcode

Post on 28-Jul-2015

3.257 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Aprendendo a Programar Globalcode

Page 2: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Agenda ● Objetivos e Introdução ● Fundamentos da Eletrônica e Computação ● Introdução a Programação ● Lógica de Programação ● Banco de Dados ● Mobile ● Web ● Internet das Coisas ● Carreiras

Page 3: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Objetivos ● Apresentar tecnicamente eletrônica,

computação e programação de forma descontraída e motivadora;

● Primeiras noções de lógica de programação; ● Demonstrar exemplos de eletrônica e

trechos de código Java e C de forma prática e lúdica;

Page 4: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Filosofia de Ensino ● Aprender conceitos “sob-demanda”; ● Visualizar aplicações práticas e do mundo

real; ● Se divertir com o processo de aprendizado; ● Valorizar o experimentalismo; ● Vivência em comunidade;

Page 5: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Sobre o instrutor: ● Como começei a programar; ● O que faço hoje;

Page 6: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Terminologia ● Código-fonte: código que contém instruções de um

programa. Legível para humanos e ilegível para computadores;

● Código de Máquina: código ilegível para humanos e legível para computadores;

● Compilação: processo de conversão do código-fonte para código de máquina;

● Interpretação: processo onde o código fonte é interpretado e executado imediatamente na máquina do usuário;

Page 7: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Fundamento Eletrônica e Computação ● Eletrônica é a raiz da computação; ● Ciência que estuda o controle da energia

elétrica; ● Podemos dividir a eltrônica em duas:

○ Analógica; ○ Digital;

● Devo conhecer o hardware?

Page 8: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Eletrônica Analógica ● Exemplo com sensor

de luz; ● Exemplo com

potenciômetro;

Page 9: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Eletrônica Digital ● Exemplo com LEDs;

Page 10: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Eletronica Digital ● Dois estados possíveis: 0 e 1; ● Conversão de base binária para base

decimal é por conta do desenvolvedor; ● O espaço que armazena o 0 ou 1 é o bit; ● 8 bits são chamados de byte e conseguem

representar 256 estados diferentes;

Page 11: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Bit, Byte, kBytes, mBytes ● 1 bit; ● 8 bits = 1 byte; ● 1024 bytes = 1 kilobyte; ● 1024 kilobytes = 1 megabyte; ● 1024 megabytes = 1 gigabyte; ● 1024 gigabytes = 1 terabyte;

Page 12: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Número de estados possíveis

● 1 bit = 2 estados; ● 2 bits = 4 estados; ● 3 bits = 8 estados; ● 8 bits = 256 estados; ● 16 bits = 65.536 estados; ● 2 elevado a quantidade de bits é igual ao

número de estados possíveis;

Page 13: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Fundamento da Computação

● Informações entram e saem

Entrada Processamento Saída

Page 14: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Resumo

● Eletrônica digital é a base da computação; ● Computadores trabalham basicamente com

manipulação e armazenamento de 0 e 1; ● Sim, tudo é 0 e 1. Vídeos, fotos,

documentos, e-books e aplicativos para smartphones;

Page 15: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Introdução a Programação

● Processo de desenvolvimento de software: ● Primeiro passo: ○ Escrevemos instruçoes em uma

determinada linguagem de programação. Este conjunto de instruções é chamado de código fonte.

○ Java, C, Python, JavaScript;

Page 16: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Introdução a Programação

● Processo de desenvolvimento de software: ● Segundo passo: ○ Utilizamos um compilador que vai

traduzir o código fonte para código de máquina gerando o software;

Page 17: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Introdução a Programação

● Processo de desenvolvimento de software: ● Terceiro passo: ○ Executamos o software; ○ Diferentes plataformas oferecem

diferentes maneiras para executar o software;

Page 18: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Introdução a Programação ● Para desenvolver software precisamos:

○ Escolher uma linguagem de programação; ○ Compilador / ferramenta da linguagem escolhida; ○ Editor de código;

● Mas também utilizamos: ○ Ferramentas para depuração de erros; ○ Diagramas para prototipagem/modelagem; ○ Emuladores; ○ Criatividade;

Page 19: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Introdução a Programação ● Inúmeras linguagens de programação:

○ Tradicionais: Basic, Pascal, C/C++, LISP, Cobol, Fortran, ABAP;

○ Modernas: Java, .NET, C#, VB.NET, Ruby, Python, Groovy;

○ Mais recentes: ERLANG, Scala, F#, Swift; ● Alguns conceitos são os mesmos em várias linguagens; ● Outros conceitos podem variar radicalmente: paralelismo,

comunicação com hardware, gerenciamento de memória;

Page 20: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Introdução a Programação ● Conclusão: devemos aprender bem conceitos

fundamentais da computação e programação; ● São eles:

○ Princípios da computação e lógica binária; ○ Lógica e sintaxe básica de programação; ○ Orientação a objetos; ○ Sistemas de entrada e saída; ○ Armazenamento de dados e banco de dados; ○ Sistema operacional; ○ Rede TCP/IP (internet);

Page 21: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Introdução a Programação ● Vamos apresentar duas linguagens em paralelo:

○ C/C++: linguagem poderosa utilizada para escrever sistemas operacionais e outras linguagens, incluindo o Java;

○ Java: linguagem mais simples que C/C++ com amplo mercado mundial e adota para desenvolvimento corporativo de aplicativos de todos os portes;

Page 22: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Introdução a Programação ● No nosso contexto utilizamos:

○ C/C++: para codificar o Program-ME, facilitando o entendimento de conceitos básicos;

○ Java: para apresentar exemplos tradicionais de lógica de programação;

Page 23: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Oque Faz um Programa? ● Recebe dados através de dispositivos de entrada

como: teclado, HD, mouse, câmeras, sensores, etc;

● Armazena os dados na memória RAM; ● Efetua algum processamento; ● Apresenta algum resultado em um dispositiov de

saída como: áudio, vídeo, HD, atuadores, etc.

Page 24: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Oque Faz um Programa? ● CONCLUSÃO:

○ Um programa de computador utiliza dispositivos de entrada e saída para automatizar um processo com tais informações.

● INFORMÁTICA!

Page 25: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Lógica de Programação ● Conjunto básico de instruções de uma linguagem

para: ○ Manipular informações na memória:

■ Ex: sua data de nascimento, os produtos da sua compra on-line, etc;

○ Programar condições: ■ Ex: se o saldo for maior que o valor solicitado para saque, efetuar o

saque, do contrário mostre uma mensagem;

○ Programar repetições de código: ■ Ex: execute este código enquanto houve conexão de rede;

○ Programar funções específicas:

Page 26: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Variáveis de memória ● Um programa pode armazenar dados na

memória usando variáveis; ● Temos diferentes tipos de variáveis para

diferentes tipos de dados: sim/não, número pequeno, número grande, com ponto flutuante ou sem, data, hora, nome;

● Existem linguagem tipadas e não tipadas.

Page 27: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Variáveis de memória ● Nas tipadas, é necessário indicar o tipo da variável,

atribuir um nome a ela e, opcionalmente, indicar um valor inicial; ○ int x = 10; ○ int = tipo ○ x = nome/identificador ○ 10 = valor inicial

● Reserve 4 bytes na memória, chame este espaço de X e coloque o valor 10 nele;

Page 28: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Exemplo prático ● Cálculo de média; ● Quais os dados serão necessários? ● O valor inicial de uma variável pode ser o resultado de

uma expressão; ● Vamos trabalhar!

Page 29: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Exemplo prático byte nota1 = 9; byte nota2 = 7; byte nota3 = 10; float media = (nota1 + nota2 + nota3) / 3;

Page 30: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Qual tipo usar? ● Java:

○ boolean: 1 bit, verdadeiro ou falso, sim ou não; ○ byte: números inteiros com 8 bits; ○ short: números inteiros com 16 bits; ○ int: números inteiros com 32 bits; ○ long: números inteiros com 64 bits; ○ float: números com ponto flutuante com 32 bits; ○ double: números com ponto flutuante com 64 bits; ○ char: armazena letras 8 a 32 bits;

Page 31: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Código Básico Program-ME //variável na memória int luminosidade; //Configuração inicial void setup() {

Serial.begin(9600); } //Inicialização do programa void loop() {

luminosidade = analogRead(0); Serial.println(luminosidade);

}

Page 32: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Código Básico Java import java.util.Scanner; public class Main {

public static void main(String[] args) { int idade =0; int novaIdade = 0;

Scanner teclado = new Scanner(System.in); System.out.println("Entre com a sua idade:"); idade = teclado.nextInt(); novaIdade = idade / 2; System.out.printf("Mas voce tem cara de %s \n", novaIdade);

} }

Page 33: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Condição If com Program-ME void setup() {

Serial.begin(9600); } void loop() {

// entrada de informação na variável int luminosidade = analogRead(0); if(luminosidade<500) {

Serial.println("Esta claro!"); } else {

Serial.println("Esta escuro!"); }

}

Page 34: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Ligando Lâmpadas com ADK

● ADK: Arduino do Google ● Relé: interruptor eletromecânico;

Page 35: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Condição If com Java public class Main {

public static void main(String[] args) { int idade =0; int novaIdade = 0; Scanner teclado = new Scanner(System.in); System.out.println("Entre com a sua idade:"); idade = teclado.nextInt(); if(idade<25)

System.out.println("Tem muito chão!"); if(idade>25 && idade<60)

System.out.println("Fase boa!"); if(idade>60)

System.out.println("Melhor ainda, ta aprendendo ate a programar?"); }

}

Page 36: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Banco de Dados ● Persiste informações importantes; ● Banco, Perfis em Redes Sociais, Compras Online, etc; ● SGBD - Sistema Gerenciadores de Banco de Dados; ● Tipos de Banco de Dados:

○ Bando de Dados Relacional; ○ Banco de Dados Orientado a Objetos; ○ Banco de Dados Hierárquico;

Page 37: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Banco de Dados Relacional

● Relacionamento entre entidadas; ● MER - Modelo Entidade Relacionamento; ● Conceito de tabelas, registros e chaves; ● Softwares gratuitos e pagos para criação

de MER;

Page 38: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Banco de Dados Relacional

Page 39: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Linguagem SQL

● SQL - Structured Query Language; ● Manipulação de Dados; ○ Insert, Update, Delete;

● Definição de Dados; ○ create table, alter table, drop;

● Consulta de Dados; ○ select;

Page 40: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Banco de Dados NoSQL

● Inicialmente o nome era NoREL; ● Não usa a idéia de entidade

relacionamento; ● Utilizado em cases como Google, Twitter e

Facebook; ● Ideal na escalabilidade; ● Google App Engine;

Page 41: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Web

● A Internet permeia todo o cotidiano; ● Redes Sociais; ● Mensageiros eletrônicos; ● E-commerce; ● Padrões; ● Barreira mobile/web diminuindo; ● Plano de dados melhores;

Page 42: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Web

● Desenvolvimento separado em camadas; ● Estrutura de Dados ○ HTML

● Apresentação ○ CSS

● Comportamento ○ JavaScript

Page 43: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Web

● Camadas na prática...

Page 44: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Mobile

● Telefones celulares foram os precursores; ● Java ME, BREW, SuperWaba; ● Java ME - Java EE - Java SE; ● Aplicativos ainda não eram levados a sério; ● Lançamento do iOS em 2008 e a Apple

Store revolucionou;

Page 45: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Mobile ● Hoje: cerca de 3 milhões de aplicativos na Apple Store

e Google Play; ● Android, iOS, Windows Phone; ● Android:

○ Java e C; ● iOS:

○ Objetive-C e Swift; ● Windows Phone:

Page 46: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Mobile

● Ambientes de desenvolvimento extremamente profissionais;

● Lojas online; ● Participação no resultado das vendas:

○ 70-30% ● Android: 25 dólares; ● iOS: 99 dólares por ano;

E d d i

Page 47: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Mobile - Demonstração

● Criando aplicativo de rotas em Android; ● Temas relacionados; ● Open-source e reaproveitamento de código;

Page 48: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Internet das Coisas

● Criado inicialmente pelo MIT e focado no uso de tags RFID;

● Hoje, colocar objetos na rede; ● Quantos? Pesquisas apontam para 50 bilhões de

coisas em rede para 2020; ● Principais empresas adotaram o conceito; ● Programação para diferentes plataformas;

Page 49: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Internet das Coisas

● Vídeos… ● Demos...

Page 50: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Carreira de Programador ● Independente de idade, formação, sexo, localização e

idioma; ● Remunera de R$1.200,00 (júnior, trainee) a R$15.000,00

(ou mais) (sênior, líderes, arquitetos, engenheiros); ● Inúmeras oportunidades no exterior; ● Requer profissionais poliglota (no mínimo inglês); ● Estudo e interesse contínuo; ● As coisas se atualizam rápido, mas os velhos conceitos

ficam;

Page 51: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Quanto tempo demora? ● No primeiro mês você já deve estar se divertindo com coisas

básicas; ● Em seis meses poderá começar a estudar coisas mais avançadas; ● Em dois anos estará conhecendo e usando orientação a objetos

com fortes possibilidades de emprego; ● Em quatro anos poderá começar a se especializar, certificar e

dominará desenvolvimento de média complexidade; ● Em oito anos emprego onde quiser, bom salário e alta

complexidade; ● Mais de 10 anos poderá ser sênior;

Page 52: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Programador por Hobbie ● Programar é desafiador e os conhecimentos de

programação podem ser aplicados em diferentes contextos; ● Até músicos estão virando programadores; ● Programar: ter controle e efetivamente comandar o seu

computador; ● Projetos incríveis podem ser desenvolvidos por hobbie:

segway caseiro, máquinas CNC, robôs, aplicativos mobile, sites, embarcados, hacker o mundo, baixa eletrônica, etc;

● Vídeo com Barack Obama;

Page 53: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Áreas de Atuação ● Um mercado incrível e crescente nas últimas décadas:

○ Desenvolvimento Web / Mobile; ○ Arquiteturas Enterprise / Serice Oriented Architecture; ○ Testes e qualidade / processos e metodologias; ○ Games / TV Digital; ○ Projetos de pesquisa / Armazenamento de dados; ○ Imagem / Redes sociais / Venda na internet; ○ Robótica / Redes / Segurança

Page 54: Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente, por Ricardo Ogliari

Áreas de Atuação ● Em 2022 teremos um déficit de 408 mil profissionais de TI; ● http://g1.globo.com/bom-dia-brasil/noticia/2014/11/sobram-

vagas-com-salarios-de-ate-r-10-mil-na-area-de-ti.html ● Brasil pode deixar de arrecadar R$115 bilhões por falta de

profissionais em TI no ano de 2020; ● http://trainingtecnologia.com.br/faltam-profissionais-de-ti/