SlideShare une entreprise Scribd logo
1  sur  23
Princípios para aprender
a programar
Rodrigo de Barros Paes
rodrigo@ic.ufal.br
Introdução
 Programação é uma forma de pensamento
 Aprender os comandos não é aprender a
programar
 Da mesma forma que aprender sobre pincéis não
é aprender a pintar
rodrigo@ic.ufal.br
Introdução
 As pessoas entendem o que elas vêem
 Se um programador não pode ver o que um
programa está fazendo, não pode entendê-lo
rodrigo@ic.ufal.br
Introdução
 Objetivos desta disciplina de programação
 Encorajar e auxiliar no desenvolvimento de novas
maneiras de pensamento
 Auxiliar no entendimento da execução dos
programas
rodrigo@ic.ufal.br
Princípios
 Vocabulário
 Qual o significado do que você lê?
 Entenda o fluxo
 O que acontece quando … ?
 Veja o estado
 O que o computador está “pensando” ?
 Crie de forma incremental
 Comece pequeno, teste, aumente um pouco, teste …
 Do contreto ao abstrato
 Começaremos sempre do concreto e depois
generalizaremos
rodrigo@ic.ufal.br
Vocabulário
Dúvidas?
rodrigo@ic.ufal.br
Vocabulário
 Imagine se você compra um microondas
 Vá apertandos os botões pra ver o que
acontece
 Pronto, agora você sabe cozinhar 
rodrigo@ic.ufal.br
Vocabulário
 Aprender a cozinhar não é
 “chutar” a funcionalidade dos botões
 … É entender como os ingredientes podem
ser combinados
 Na sua cabeça, você deve entender os efeitos
dos “ingredientes”
rodrigo@ic.ufal.br
Entenda o fluxo
 Imagine que você vai aprender a cozinhar um
delicioso soufflé
 Alguém lhe diz somente a lista de ingredientes e
… voilá!!
 Você entendeu como o soufflé foi feito? Você
conseguiria fazer um?
rodrigo@ic.ufal.br
Entenda o fluxo
 É preciso entender como os ingredientes
foram combinados
 É preciso saber os “passos”
rodrigo@ic.ufal.br
Veja o estado
 O propósito de um código é manipular dados.
 Logo, é preciso sempre “ver” como esses dados se
comportam
 Qual o valor de scaleFactor no início do loop? E ao final?
 Como ele se altera? Aumento linear? Decréscimo linear?
rodrigo@ic.ufal.br
Veja o estado
 Entenda como os estados são alterados a
cada passo:
rodrigo@ic.ufal.br
Veja o estado
 Crie um modelo mental para cada passo
rodrigo@ic.ufal.br
Crie de forma incremental
 Faça algo pequeno
 Teste
 Aumente um pouco
 Teste
 Aumente mais um pouco
 Teste
 …
rodrigo@ic.ufal.br
Crie de forma incremental
 Quanto mais tarde você testar, mais
possibilidades de faltas (bugs) existirão e mais
difícil será detectá-las
rodrigo@ic.ufal.br
Do concreto ao abstrato
 Um retângulo e um triângulo …
 … uma casa
 Generalizando para além do caso específico
rodrigo@ic.ufal.br
Do concreto ao abstrato
 Comece constante … depois varie
rodrigo@ic.ufal.br
Do concreto ao abstrato
rodrigo@ic.ufal.br
Do concreto ao abstrato
 Comece com 1, depois faça muitos
rodrigo@ic.ufal.br
Do concreto ao abstrato
 Do concreto ao abstrato
rodrigo@ic.ufal.br
Resumo
 Vimos princípios importantes
 Vocabulário
 Entenda o fluxo
 Veja o estado
 Crie de forma incremental
 Do contreto ao abstrato
rodrigo@ic.ufal.br
Resumo
 Durante todo o curso, a cada novo conceito,
procure sempre os princípios.
 Certifique-se que você entendeu todos eles antes
de prosseguir
 Lembre-se
 É importante aprender sobre cada tipo de pincél,
mas isso não o torna um pintor
 É preciso combiná-los, seguindo os princípios.
rodrigo@ic.ufal.br
Como alguém se torna um grande
músico?
 É preciso entender a teoria e também o
funcionamento do instrumento. Claro, que o
talento também ajuda. Mas o sucesso só vem
com muita prática/treino. O treino é a aplicação
da teoria várias vezes, usando cada sessão como
um aprendizado para se tornar cada vez melhor.
Sendo assim, como você se torna um grande
programador? Você precisa ler muito, aprender
a teoria, as estruturas de dados, aprender com os
seus erros, com os erros dos outros, mas acima
de tudo, você precisa praticar muito. É preciso
criar sessões de treino de programação.
Rodrigo de Barros Paes
(Texto adaptado de http://codekata.pragprog.com/2007/01/code_kata_backg.html)
rodrigo@ic.ufal.br

Contenu connexe

Similaire à Aula 8 principios_programacao - Programação 1

Freelancer Lifestyle no WDS 2015
Freelancer Lifestyle no WDS 2015Freelancer Lifestyle no WDS 2015
Freelancer Lifestyle no WDS 2015Henrique Bastos
 
"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
 "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de... "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...Julio Cesar Nunes de Souza
 
Scrum - Primeiros Passos - Curso de Férias Fatec Praia Grande
Scrum - Primeiros Passos - Curso de Férias Fatec Praia GrandeScrum - Primeiros Passos - Curso de Férias Fatec Praia Grande
Scrum - Primeiros Passos - Curso de Férias Fatec Praia GrandeGabriel Rubens
 
O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.Yan Magalhães
 
Slides ao Jovem Empreendedor v2
Slides ao Jovem Empreendedor v2Slides ao Jovem Empreendedor v2
Slides ao Jovem Empreendedor v2Ibrahim Cesar
 
Atraindo seusucesso
Atraindo seusucessoAtraindo seusucesso
Atraindo seusucessoPhotography
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumLuca Bastos
 
dvertr: Recrutamento(10 perguntas)
dvertr: Recrutamento(10 perguntas)dvertr: Recrutamento(10 perguntas)
dvertr: Recrutamento(10 perguntas). dvertr .
 
Caderno INF - Empreendedorismo [2019.1 ETEPAC - 2.ed. reimp.].pdf
Caderno INF - Empreendedorismo [2019.1 ETEPAC - 2.ed. reimp.].pdfCaderno INF - Empreendedorismo [2019.1 ETEPAC - 2.ed. reimp.].pdf
Caderno INF - Empreendedorismo [2019.1 ETEPAC - 2.ed. reimp.].pdfRMartinxxx
 
Digital Day BH - Microinterações
Digital Day BH - MicrointeraçõesDigital Day BH - Microinterações
Digital Day BH - MicrointeraçõesAnderson Façanha
 
Atraindo seu sucesso
Atraindo seu sucessoAtraindo seu sucesso
Atraindo seu sucessoMax Sousa
 
Atraindo seusucesso
Atraindo seusucessoAtraindo seusucesso
Atraindo seusucessoMax Sousa
 

Similaire à Aula 8 principios_programacao - Programação 1 (15)

Freelancer Lifestyle no WDS 2015
Freelancer Lifestyle no WDS 2015Freelancer Lifestyle no WDS 2015
Freelancer Lifestyle no WDS 2015
 
"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
 "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de... "Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
"Mas eu não tenho experiência..." E daí??? - Como quebrar o ciclo vicioso de...
 
Scrum - Primeiros Passos - Curso de Férias Fatec Praia Grande
Scrum - Primeiros Passos - Curso de Férias Fatec Praia GrandeScrum - Primeiros Passos - Curso de Férias Fatec Praia Grande
Scrum - Primeiros Passos - Curso de Férias Fatec Praia Grande
 
O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.O mercado de trabalho para a T.I.
O mercado de trabalho para a T.I.
 
Developer 0.0 - Tiago Pascoal
Developer 0.0 - Tiago PascoalDeveloper 0.0 - Tiago Pascoal
Developer 0.0 - Tiago Pascoal
 
Slides ao Jovem Empreendedor v2
Slides ao Jovem Empreendedor v2Slides ao Jovem Empreendedor v2
Slides ao Jovem Empreendedor v2
 
Atraindo seusucesso
Atraindo seusucessoAtraindo seusucesso
Atraindo seusucesso
 
Atraindo seusucesso
Atraindo seusucessoAtraindo seusucesso
Atraindo seusucesso
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelum
 
Excelência - PUC
Excelência - PUCExcelência - PUC
Excelência - PUC
 
dvertr: Recrutamento(10 perguntas)
dvertr: Recrutamento(10 perguntas)dvertr: Recrutamento(10 perguntas)
dvertr: Recrutamento(10 perguntas)
 
Caderno INF - Empreendedorismo [2019.1 ETEPAC - 2.ed. reimp.].pdf
Caderno INF - Empreendedorismo [2019.1 ETEPAC - 2.ed. reimp.].pdfCaderno INF - Empreendedorismo [2019.1 ETEPAC - 2.ed. reimp.].pdf
Caderno INF - Empreendedorismo [2019.1 ETEPAC - 2.ed. reimp.].pdf
 
Digital Day BH - Microinterações
Digital Day BH - MicrointeraçõesDigital Day BH - Microinterações
Digital Day BH - Microinterações
 
Atraindo seu sucesso
Atraindo seu sucessoAtraindo seu sucesso
Atraindo seu sucesso
 
Atraindo seusucesso
Atraindo seusucessoAtraindo seusucesso
Atraindo seusucesso
 

Plus de Isaac Barros

Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Isaac Barros
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Isaac Barros
 
Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Isaac Barros
 
Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Isaac Barros
 
Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1Isaac Barros
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Isaac Barros
 
Aula 6 - Programação 1
Aula 6 - Programação 1Aula 6 - Programação 1
Aula 6 - Programação 1Isaac Barros
 
Aula 5 - Programação 1
Aula 5 - Programação 1Aula 5 - Programação 1
Aula 5 - Programação 1Isaac Barros
 
Aula 4 - Programação 1
Aula 4 - Programação 1Aula 4 - Programação 1
Aula 4 - Programação 1Isaac Barros
 
Aula 3 - Programação 1
Aula 3 - Programação 1Aula 3 - Programação 1
Aula 3 - Programação 1Isaac Barros
 
Aula 2 - Programação 1
Aula 2 - Programação 1Aula 2 - Programação 1
Aula 2 - Programação 1Isaac Barros
 
Aula 1 - Programação 1
Aula 1 - Programação 1Aula 1 - Programação 1
Aula 1 - Programação 1Isaac Barros
 
Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Isaac Barros
 

Plus de Isaac Barros (13)

Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1
 
Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Aula 11 strings - Programação 1
Aula 11 strings - Programação 1
 
Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1
 
Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1
 
Aula 6 - Programação 1
Aula 6 - Programação 1Aula 6 - Programação 1
Aula 6 - Programação 1
 
Aula 5 - Programação 1
Aula 5 - Programação 1Aula 5 - Programação 1
Aula 5 - Programação 1
 
Aula 4 - Programação 1
Aula 4 - Programação 1Aula 4 - Programação 1
Aula 4 - Programação 1
 
Aula 3 - Programação 1
Aula 3 - Programação 1Aula 3 - Programação 1
Aula 3 - Programação 1
 
Aula 2 - Programação 1
Aula 2 - Programação 1Aula 2 - Programação 1
Aula 2 - Programação 1
 
Aula 1 - Programação 1
Aula 1 - Programação 1Aula 1 - Programação 1
Aula 1 - Programação 1
 
Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1
 

Aula 8 principios_programacao - Programação 1

  • 1. Princípios para aprender a programar Rodrigo de Barros Paes rodrigo@ic.ufal.br
  • 2. Introdução  Programação é uma forma de pensamento  Aprender os comandos não é aprender a programar  Da mesma forma que aprender sobre pincéis não é aprender a pintar rodrigo@ic.ufal.br
  • 3. Introdução  As pessoas entendem o que elas vêem  Se um programador não pode ver o que um programa está fazendo, não pode entendê-lo rodrigo@ic.ufal.br
  • 4. Introdução  Objetivos desta disciplina de programação  Encorajar e auxiliar no desenvolvimento de novas maneiras de pensamento  Auxiliar no entendimento da execução dos programas rodrigo@ic.ufal.br
  • 5. Princípios  Vocabulário  Qual o significado do que você lê?  Entenda o fluxo  O que acontece quando … ?  Veja o estado  O que o computador está “pensando” ?  Crie de forma incremental  Comece pequeno, teste, aumente um pouco, teste …  Do contreto ao abstrato  Começaremos sempre do concreto e depois generalizaremos rodrigo@ic.ufal.br
  • 7. Vocabulário  Imagine se você compra um microondas  Vá apertandos os botões pra ver o que acontece  Pronto, agora você sabe cozinhar  rodrigo@ic.ufal.br
  • 8. Vocabulário  Aprender a cozinhar não é  “chutar” a funcionalidade dos botões  … É entender como os ingredientes podem ser combinados  Na sua cabeça, você deve entender os efeitos dos “ingredientes” rodrigo@ic.ufal.br
  • 9. Entenda o fluxo  Imagine que você vai aprender a cozinhar um delicioso soufflé  Alguém lhe diz somente a lista de ingredientes e … voilá!!  Você entendeu como o soufflé foi feito? Você conseguiria fazer um? rodrigo@ic.ufal.br
  • 10. Entenda o fluxo  É preciso entender como os ingredientes foram combinados  É preciso saber os “passos” rodrigo@ic.ufal.br
  • 11. Veja o estado  O propósito de um código é manipular dados.  Logo, é preciso sempre “ver” como esses dados se comportam  Qual o valor de scaleFactor no início do loop? E ao final?  Como ele se altera? Aumento linear? Decréscimo linear? rodrigo@ic.ufal.br
  • 12. Veja o estado  Entenda como os estados são alterados a cada passo: rodrigo@ic.ufal.br
  • 13. Veja o estado  Crie um modelo mental para cada passo rodrigo@ic.ufal.br
  • 14. Crie de forma incremental  Faça algo pequeno  Teste  Aumente um pouco  Teste  Aumente mais um pouco  Teste  … rodrigo@ic.ufal.br
  • 15. Crie de forma incremental  Quanto mais tarde você testar, mais possibilidades de faltas (bugs) existirão e mais difícil será detectá-las rodrigo@ic.ufal.br
  • 16. Do concreto ao abstrato  Um retângulo e um triângulo …  … uma casa  Generalizando para além do caso específico rodrigo@ic.ufal.br
  • 17. Do concreto ao abstrato  Comece constante … depois varie rodrigo@ic.ufal.br
  • 18. Do concreto ao abstrato rodrigo@ic.ufal.br
  • 19. Do concreto ao abstrato  Comece com 1, depois faça muitos rodrigo@ic.ufal.br
  • 20. Do concreto ao abstrato  Do concreto ao abstrato rodrigo@ic.ufal.br
  • 21. Resumo  Vimos princípios importantes  Vocabulário  Entenda o fluxo  Veja o estado  Crie de forma incremental  Do contreto ao abstrato rodrigo@ic.ufal.br
  • 22. Resumo  Durante todo o curso, a cada novo conceito, procure sempre os princípios.  Certifique-se que você entendeu todos eles antes de prosseguir  Lembre-se  É importante aprender sobre cada tipo de pincél, mas isso não o torna um pintor  É preciso combiná-los, seguindo os princípios. rodrigo@ic.ufal.br
  • 23. Como alguém se torna um grande músico?  É preciso entender a teoria e também o funcionamento do instrumento. Claro, que o talento também ajuda. Mas o sucesso só vem com muita prática/treino. O treino é a aplicação da teoria várias vezes, usando cada sessão como um aprendizado para se tornar cada vez melhor. Sendo assim, como você se torna um grande programador? Você precisa ler muito, aprender a teoria, as estruturas de dados, aprender com os seus erros, com os erros dos outros, mas acima de tudo, você precisa praticar muito. É preciso criar sessões de treino de programação. Rodrigo de Barros Paes (Texto adaptado de http://codekata.pragprog.com/2007/01/code_kata_backg.html) rodrigo@ic.ufal.br