Sabe-se que não existe solução única para todos os problemas em tecnologia. O mesmo acontece para linguagens de programação! As linguagens de programação possuem diferentes propósitos e características. Entendê-las bem permite conhecer melhor os seus limites e se são adequadas para a solução de determinados problemas. Nesta apresentação falarei sobre paradigmas de programação (definições e exemplos), orientação a objetos (pilares da OO, princípios e práticas), programação funcional (funções de primeira classe, de alta ordem e puras, estado, imutabilidade, currying, aplicação parcial e composição de funções), as diferenças entre os paradigmas e as vantagens/desvantagens de utilizá-los.