SlideShare a Scribd company logo
1 of 85
Download to read offline
O que é SER UM
PROGRAMADOR?
lucas boeing scarduelli / @lucasscarduelli
bom
Arquiteto de software
líder setor de pesquisa e desenvolvimento (P&D)
Técnico em Informática industrial (#sqn)
bacharel em sistemas de informação
pós graduado em gerenciamento de projetos
9 anos de experiência
7 anos desenvolvendo software web
lucas boeing scarduelli
scarduelli.com
@lucasscarduelli
motivação
nós não precisamos de mais
programadores, nós precisamos
de bons programadores.
(edson yanaga)
motivação
contrate o carácter.
treine as habilidades.
(peter schutz)
O que é um programador?
“profissional especializado no desenvolvimento e no
aperfeiçoamento de programas de computador.”
mas pode ser também…
“quem te resolve um problema que você não sabia
que tinha de uma maneira que você não compreende “
… ou também …
… ou ainda!!! #melhordetodas
“e aquele cara que muitas vezes tem que encontrar a
melhor e mais simples solução, para um problema de
uma área que ele não conhece e de que ele não faz a
mínima ideia do porque acontece”
somos pagos para resolver problemas…
… muitos problemas, mais muitos mesmo, todos os
dias e quase sempre pra ontem!! #napressao
na real … ser programador não e fácil!
mais e massa pra caramba!!!
porque você quer ser um programador?
… porque eu gosto de internet e redes sociais!
… porque eu gosto de jogar!
… prefiro trabalhar sentado e no ar condicionado!
… quero fazer somente aquilo que eu gosto!
… quero trabalhar igual o pessoal do google!
… quero ser o orgulho da família!
… é a profissão do futuro!
… porque quero ter
uma ideia genial e
ficar rico rápido!
então quando te perguntarem, o que você vai
responder?
se for algo diferente disso… :(
então quando te perguntarem, o que você vai
responder?
o que é ser um bom programador?
Uma escola ou faculdade vão me formar um bom
programador?
Eu preciso conhecer e dominar as melhores
linguagens de programação?
Eu preciso conhecer o melhor banco de dados?
Eu preciso usar e conhecer a melhor ide ou
ferramenta de desenvolvimento?
Eu preciso conhecer e aplicar as melhores
metodologias e práticas de desenvolvimento?
Eu preciso ter uma super estação de trabalho?
programação é coisa para
nerd?
quanto mais linhas
de código, melhor
programador eu
sou?
Eu preciso digitar muito ou ser o mais rápido?
tudo isso te ajuda, mas não é o principal!!!
se nada disso é o principal, então o que eu realmente
preciso?
atitude
atitude
não se acomodar
dar sempre o seu melhor
manter o foco
realmente se importar com o que faz
atitude
não se acomodar
dar sempre o seu melhor
realmente se importar com o que faz
manter o foco
SE DESENVOLVER E CRESCER
atitude
não se acomodar
dar sempre o seu melhor
realmente se importar com o que faz
manter o foco
SE DESENVOLVER E CRESCER gerar resultados
ser um bom programador é muito mais do que fazer
um software funcionar
é ter domínio da área que atua…
é comprometimento com aquilo que faz…
é gerar bons resultados…
é buscar sempre a melhor solução…
com a melhor qualidade…
com a melhor experiência…
e com o melhor custo benefício!
então, que dizer que eu vou levar a vida toda para
ser um bom programador?
não, você é bom quando faz o seu melhor.
tudo tem um começo!
primeiro de tudo aprenda a pensar
lógica de programação
o difícil é resolver o problema
pergunte sobre tudo
código é a menor parte
o resto entra no loop infinito que é a vida do
programador
Estudo
curso técnico
faculdade
livros
tutoriaisprojetos open source
prática
estágio trabalho
aula
freelancer
open source
hobby
aprendizadoabsorva o conhecimento
lide melhor com as pessoas
lide com os erros
lide com o fracasso
repita práticas de sucesso
aperfeiçoamento
novas técnicas
novas linguagens
novos domínios
novas tecnologias
aplique o aprendizado
aprenda inglês
o loop infinito!
while programador.estaVivo() {
programador.estudar();
programador.praticar();
programador.cometerErros();
programador.aprender();
programador.corrigirErros();
programador.evoluir();
}
robert c. martin
@unclebobmartin
o que é um código limpo?
simples
direto
eficiente
sem duplicidade
elegante
feito com cuidadofácil manutenção
padronizado
poucas dependências
o que é um código limpo?
teoria da janela quebrada
como se mede o quão limpo um código e?
nomes significativos
nos escolhemos nomes para tudo E TEMOS QUE FAZER ISSO BEM
FEITO, por isso eles devem nos dizer...
- por que existe
- o que faz
- como e usado
devem revelar sua intenção…
devem revelar sua intenção…
devem revelar sua intenção…
devem revelar sua intenção…
devem ser pronunciáveis…
não seja genérico…
não economize nas palavras!
evite a desinformação!
evite palavras que
não são palavras
se preciso use varias
palavras
evite palavras
reservadas
o tipo não precisa
estar no nome
evite trocadilhosevite palavras que
não são palavras
use boas praticas
classes e métodos
nomes de classes devem ser
substantivos e não conter verbos
Veículo, Pessoa,
Cliente, Fornecedor,
Estoque, ...
nomes de métodos devem
conter verbos
calculaCusto(),
lancaEstoque(),
geraNotaFiscal(),
...
devem ser pequenos
“a primeira regra dos
métodos e que eles devem ser
pequenos. a segunda e que
devem ser menores ainda.”
(uncle bob)
classes menores são mais
fáceis de ler e entender o que
estão fazendo.
classe = 200 a 500 linhas
métodos <= 20 linhas
linhas <= 100 caracteres
métodos devem fazer uma coisa só e fazer certo!
o difícil e definir o que é uma
coisa só.
tente extrair parte do código
e dar um nome a ele.
métodos devem fazer algo ou responder algo!
os dois juntos causa
confusão.
simplifique as estruturas de decisão, evite O hard
codE E APROXIME-SE DA MARGEM
simplifique as estruturas de decisão, evite O hard
codE E APROXIME-SE DA MARGEM
dry - don’t repeat yourself
evite duplicidade de código!
reutilize seus métodos.
srp - principio da responsabilidade única
uma classe deve ter uma, e
somente uma razão para
mudar
classes devem ser coesas
poucas variáveis
cada método deve manipular
uma ou mais variáveis quanto mais variáveis um
método consegue manipular,
mais coeso ele é
coesão e a co-dependencia
entre métodos e variáveis
comentários
podem ser mentirosos,
mesmo sem intenção
comentários não escondem
código ruim
comentário é sinal de
necessidade de refatoração
nunca deixe um código
comentado
explique-se com código
closing brace comments
comentários podem ser uteis
mostra a intenção por trás
de uma decisão tomada
avisa aos desenvolvedores
sobre a consequência de um
trecho de código
formatação
formatação é importante
para a comunicação
legibilidade é importante para
mudanças futuras
métodos com conceitos
parecidos devem ficar
verticalmente próximos
ordem dos métodos
influencia na legibilidade do
código
indentação
importante para visualização
de todo o escopo
não deve ter nível maior que
2, para uma compreensão
fácil e rápida
espaçamento e importante
código hadoooouuuken!!
code smells - fique atento a eles
comentários pobres,
obsoletos ou redundantes
métodos mortos ou que
fazem muita coisa
código comentado
responsabilidades demais ou
fora do contexto
nomes pequenos e
inexpressivos
muitos parâmetros ou
parâmetros booleanos
despadronização
números mágicos
duplicidade de código
mantenha sempre sua cozinha limpa!
regra do escoteiro
deixe a areá do acampamento mais limpa do que
como você encontrou.
manifesto para desenvolvimento ágil de software
www.agilemanifest.com
manifesto para o artesanato de software
manifesto.softwarecraftsmanship.org
lucas boeing scarduelli / @lucasscarduelli
Perguntas?

More Related Content

What's hot

Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Tchelinux
 
Conquistando uma carreira de sucesso com software livre
Conquistando uma carreira de sucesso com software livreConquistando uma carreira de sucesso com software livre
Conquistando uma carreira de sucesso com software livreJosé Alexandre Macedo
 
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando AppiumAutomação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando AppiumFabio Moura
 
PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android Fundação Vanzolini
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Jose Berardo
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogVinícius Thiengo
 
Aula: Resources ( Parte 2)
Aula: Resources ( Parte 2)Aula: Resources ( Parte 2)
Aula: Resources ( Parte 2)Janynne Gomes
 
Prototipagem
PrototipagemPrototipagem
Prototipagemjwainer
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Javaalexmacedo
 
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...Eduardo Bertolucci
 
Ferramentas de prototipação
Ferramentas de prototipaçãoFerramentas de prototipação
Ferramentas de prototipaçãoPaula P.
 
Da prototipagem à aplicação: Experiências de uma desenvolvedora mobile
Da prototipagem à aplicação: Experiências de uma desenvolvedora mobileDa prototipagem à aplicação: Experiências de uma desenvolvedora mobile
Da prototipagem à aplicação: Experiências de uma desenvolvedora mobileLhaís Rodrigues
 
Ferramenta de Desenvolvimento Genexus e Método XP(Extreme Programming)
Ferramenta de Desenvolvimento Genexus e Método XP(Extreme Programming)Ferramenta de Desenvolvimento Genexus e Método XP(Extreme Programming)
Ferramenta de Desenvolvimento Genexus e Método XP(Extreme Programming)Breno Pessoni
 
Programando Android - Aula 1
Programando Android - Aula 1Programando Android - Aula 1
Programando Android - Aula 1Kalil Maciel
 

What's hot (20)

Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
 
Aula - Activity
Aula  -  ActivityAula  -  Activity
Aula - Activity
 
Conquistando uma carreira de sucesso com software livre
Conquistando uma carreira de sucesso com software livreConquistando uma carreira de sucesso com software livre
Conquistando uma carreira de sucesso com software livre
 
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando AppiumAutomação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
Automação para Aplicaticos Móveis - Testes Automáticos Utilizando Appium
 
PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android PALESTRA :: Desenvolvimento para plataforma Android
PALESTRA :: Desenvolvimento para plataforma Android
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1
 
Android Studio
Android StudioAndroid Studio
Android Studio
 
Android
AndroidAndroid
Android
 
Estudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do BlogEstudando Android - Lista de Conteúdos do Blog
Estudando Android - Lista de Conteúdos do Blog
 
Aula: Resources ( Parte 2)
Aula: Resources ( Parte 2)Aula: Resources ( Parte 2)
Aula: Resources ( Parte 2)
 
Prototipagem
PrototipagemPrototipagem
Prototipagem
 
Exemplos de Design Patterns em Java
Exemplos de Design Patterns em JavaExemplos de Design Patterns em Java
Exemplos de Design Patterns em Java
 
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...
IHC - Trabalho de Prototipação - Eduardo Bertolucci e Colegas e Classe - UNOP...
 
Plataforma Android
Plataforma AndroidPlataforma Android
Plataforma Android
 
Ferramentas de prototipação
Ferramentas de prototipaçãoFerramentas de prototipação
Ferramentas de prototipação
 
Da prototipagem à aplicação: Experiências de uma desenvolvedora mobile
Da prototipagem à aplicação: Experiências de uma desenvolvedora mobileDa prototipagem à aplicação: Experiências de uma desenvolvedora mobile
Da prototipagem à aplicação: Experiências de uma desenvolvedora mobile
 
Ferramenta de Desenvolvimento Genexus e Método XP(Extreme Programming)
Ferramenta de Desenvolvimento Genexus e Método XP(Extreme Programming)Ferramenta de Desenvolvimento Genexus e Método XP(Extreme Programming)
Ferramenta de Desenvolvimento Genexus e Método XP(Extreme Programming)
 
Programando Android - Aula 1
Programando Android - Aula 1Programando Android - Aula 1
Programando Android - Aula 1
 
Prototipagem
PrototipagemPrototipagem
Prototipagem
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 

Similar to O que é ser um bom programador?

Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Gabriel Rubens
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Developer Academy
 
programming.success - carreira de programador
programming.success - carreira de programadorprogramming.success - carreira de programador
programming.success - carreira de programadorVinícius Krolow
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Gabriel Rubens
 
Sete Passos Para Um Programador De Sucesso
Sete Passos Para Um Programador De SucessoSete Passos Para Um Programador De Sucesso
Sete Passos Para Um Programador De SucessoPlaneta Código
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumLuca Bastos
 
Ebook logica-de-programacao-para-iniciantes
Ebook logica-de-programacao-para-iniciantesEbook logica-de-programacao-para-iniciantes
Ebook logica-de-programacao-para-iniciantesMarcio Lima
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreamsJacqueline Abreu
 
Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?Maurício Aniche
 
Um desenvolvedor com princípios SOLID
Um desenvolvedor com princípios SOLIDUm desenvolvedor com princípios SOLID
Um desenvolvedor com princípios SOLIDHélio Medeiros
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisRogerio Fontes
 
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Gabriel Rubens
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Marcio Miyamoto
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmáticaelliando dias
 
C a linguagem de programação
C   a linguagem de programaçãoC   a linguagem de programação
C a linguagem de programaçãoAndrei Bastos
 

Similar to O que é ser um bom programador? (20)

Clean code
Clean codeClean code
Clean code
 
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
 
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
Apresentação do Workshop BDD (Desenvolvimento Guiado por Comportamento) com V...
 
programming.success - carreira de programador
programming.success - carreira de programadorprogramming.success - carreira de programador
programming.success - carreira de programador
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
 
Sete Passos Para Um Programador De Sucesso
Sete Passos Para Um Programador De SucessoSete Passos Para Um Programador De Sucesso
Sete Passos Para Um Programador De Sucesso
 
O que é código bonito?
O que é código bonito?O que é código bonito?
O que é código bonito?
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelum
 
Ebook logica-de-programacao-para-iniciantes
Ebook logica-de-programacao-para-iniciantesEbook logica-de-programacao-para-iniciantes
Ebook logica-de-programacao-para-iniciantes
 
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams#DNAD15  - Diminuindo sofrimento com código legado de linguagens não mainstreams
#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams
 
PHPZEIRO: Adote um framework
PHPZEIRO: Adote um frameworkPHPZEIRO: Adote um framework
PHPZEIRO: Adote um framework
 
Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?Como eu aprendi que testar software é importante?
Como eu aprendi que testar software é importante?
 
Um desenvolvedor com princípios SOLID
Um desenvolvedor com princípios SOLIDUm desenvolvedor com princípios SOLID
Um desenvolvedor com princípios SOLID
 
Clean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everisClean code @rogeriofontes-techfriday-everis
Clean code @rogeriofontes-techfriday-everis
 
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
 
TDC 2015 - Torne-se um programador melhor
TDC 2015 - Torne-se um  programador melhorTDC 2015 - Torne-se um  programador melhor
TDC 2015 - Torne-se um programador melhor
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
Programação Pragmática
Programação PragmáticaProgramação Pragmática
Programação Pragmática
 
Começando errado com php
Começando errado com phpComeçando errado com php
Começando errado com php
 
C a linguagem de programação
C   a linguagem de programaçãoC   a linguagem de programação
C a linguagem de programação
 

More from Lucas Boeing Scarduelli

Elastic Meetup - Como utilizamos ELK em Cloud para coletar dados de clientes ...
Elastic Meetup - Como utilizamos ELK em Cloud para coletar dados de clientes ...Elastic Meetup - Como utilizamos ELK em Cloud para coletar dados de clientes ...
Elastic Meetup - Como utilizamos ELK em Cloud para coletar dados de clientes ...Lucas Boeing Scarduelli
 
Workshop: Construindo uma API RESTFul com Spring Boot
Workshop: Construindo uma API RESTFul com Spring BootWorkshop: Construindo uma API RESTFul com Spring Boot
Workshop: Construindo uma API RESTFul com Spring BootLucas Boeing Scarduelli
 

More from Lucas Boeing Scarduelli (6)

Elastic Meetup - Como utilizamos ELK em Cloud para coletar dados de clientes ...
Elastic Meetup - Como utilizamos ELK em Cloud para coletar dados de clientes ...Elastic Meetup - Como utilizamos ELK em Cloud para coletar dados de clientes ...
Elastic Meetup - Como utilizamos ELK em Cloud para coletar dados de clientes ...
 
Workshop: Construindo uma API RESTFul com Spring Boot
Workshop: Construindo uma API RESTFul com Spring BootWorkshop: Construindo uma API RESTFul com Spring Boot
Workshop: Construindo uma API RESTFul com Spring Boot
 
Curso Básico Android - Aula 05
Curso Básico Android - Aula 05Curso Básico Android - Aula 05
Curso Básico Android - Aula 05
 
Curso Básico Android - Aula 04
Curso Básico Android - Aula 04Curso Básico Android - Aula 04
Curso Básico Android - Aula 04
 
Curso Básico Android - Aula 03
Curso Básico Android - Aula 03Curso Básico Android - Aula 03
Curso Básico Android - Aula 03
 
Curso Básico Android - Aula 02
Curso Básico Android - Aula 02Curso Básico Android - Aula 02
Curso Básico Android - Aula 02
 

O que é ser um bom programador?