Prefácio

Diz a sabedoria popular que um homem só tem uma vida completa quando planta uma árvore, escreve um livro e tem um filho. Ao meu ver, não se diz isso pensando de forma literal, mas sim na importância abstrata destes feitos. Ao plantar uma árvore, demonstramos preocupação com o ambiente onde vivemos. Ao ter um filho, amamos ao próximo incondicionalmente. Ao escrever um livro, desejamos compartilhar e "eternizar" o conhecimento adquirido. Claramente conseguimos realizar estes feitos abstratos de diferentes maneiras. O importante é ter consciência da importância destes.

Li recentemente um livro do prof. Mario Sergio Cortella ("Pensar bem nos faz bem!") onde ele diz que o livro foi a primeira plataforma de EAD (Ensino à Distância) criada. Achei fantástica a observação! Sou professor universitário apaixonado há anos e também colaboro em cursos a distância, onde buscamos levar conhecimento para muito além de onde podemos imaginar. Um livro, de fato, tem esse poder.

Os escritores também me despertam igual fascínio. Aos olhos ingênuos de alguém que nunca escreveu um livro, estes parecem esgotar os assuntos que abordam. Para tal, seriam necessários anos de intensa dedicação, experiência e muito conhecimento. Como os conhecimentos sobre qualquer área crescem vertiginosamente com o passar do tempo, um livro poderia ter um tamanho imenso. Na verdade, tomei coragem para escrever este livro quando percebi que o que tinha para compartilhar, por mais que não fosse completo, esgotado, valia muito ser divulgado.

Durante minhas aulas, em diferentes assuntos dentro da Computação, costumo usar e abusar de analogias. Entendo que analogias são uma ferramenta ímpar no processo de aprendizado, pois usamos cenários, situações que são do cotidiano do aprendiz, para introdução de novos conceitos. Num evento internacional que estive em 2012, conheci a professora Mary Lynn Manns, a qual me deu de presente, após frequentar um curso ministrado por ela, um livro de sua co-autoria chamado Pedagogical Patterns. Este livro possui uma coletânea de padrões pedagógicos fornecidos por diferentes professores mundo a fora. Apesar de nunca ter pensado a respeito, ou seja, se havia alguma teoria por trás, as tais analogias (Consistent Metaphor) são um padrão apresentado no livro, o que me deixou bastante feliz, uma vez que pratico o padrão de maneira instintiva, sem nenhum embasamento teórico.

Este livro é um exemplo do uso de analogias no ensino de programação. Para tal, utilizamos o contexto da culinária. Não é intenção minha ensinar pessoas da área de computação a cozinhar, nem cozinheiros a arte da programação. Também não é a intenção unir estas duas áreas como na linguagem esotérica Chef. O objetivo principal é tentar detalhar uma frase que professores de programação costumam dizer para iniciantes de forma recorrente: "Programar é como escrever/preparar uma receita de bolo". Ou seja, objetivamos facilitar o ensino/aprendizado da programação. Encontramos iniciativas similares, mas num escopo bem mais restrito. São elas: (i) Vídeo da professora Tanzeela Ali, da Universidade Superior do Paquistão entitulado "From Psychology to Logic - Learning Computer Programming in the Kitchen"; (ii) Thread no Reddit com título "Why programmers like cooking" que discute o gosto de programadores pelo ato de cozinhar; (iii) Outra thread, esta no Hacker News da YCombinator, com a mesma temática "Hackers who cook"; (iv) Site com analogias gerais para compreender desenvolvimento web "Code Analogies"; (v) Vídeo dos youtubers Gabriel Froes e Vanessa Weber com o mesmo título deste livro "Programando na Cozinha", os quais abordam a relação entre o ato de cozinhar e programar. Apesar do último vídeo em si não fazer nenhuma analogia direta, no site indicado há um link para um código em PHP (linguagem para criação de páginas web, como o do site deste livro) que codifica a receita do vídeo, ou seja, uma analogia literal, na prática.

Ufa, quanto detalhe técnico, não !? Quantos termos novos! Bem, nosso intuito é tentar desmistificar tudo isso. Em nosso livro, o programador que queremos formar é um chefe de cozinha, que conhece receitas tanto tradicionais quanto complexas, a ponto de até poder criar suas próprias receitas. Bon appétit! Ou melhor, boa programação!