Motivação
Quando eu trabalhava como cientista de dados na Quora, costumava receber pedidos de recursos para aprender SQL. Tive dificuldade para encontrar algo que eu pudesse recomendar porque acreditava que um bom recurso deveria ser gratuito, não exigir cadastro e se preocupar com pedagogia—deveria realmente se importar com seus usuários, e não havia nada assim disponível.
Ao superar alguns obstáculos técnicos menores, acredito que o Select Star SQL atingiu esse padrão. Minha esperança é que, assim como o Learn You a Haskell for Great Good! e o Beautiful Racket fizeram pelo Haskell e pelo Racket, o Select Star SQL se torne o melhor lugar da internet para aprender SQL.
Pedagogia
Estes princípios orientaram a concepção deste projeto:
-
A melhor maneira de aprender programação é praticando.
Uma grande parte do material consiste em exercícios, e se esforçar para resolvê-los deve ocupar a maior parte do seu tempo. -
Os exercícios devem ser realistas e substanciais.
Nas palavras de Alan Kay: "Você nunca deve deixar [o aprendiz] fazer algo que não seja a coisa real—mas é preciso se esforçar muito para descobrir o que é a coisa real no contexto de como a mente dele funciona naquele estágio de desenvolvimento."Da mesma forma, os exercícios aqui foram projetados para introduzir técnicas de SQL cada vez mais sofisticadas, enquanto exploram o conjunto de dados de maneiras que realmente despertem o interesse das pessoas.
-
Aprender a programar é aprender um modelo mental
Nosso objetivo aqui não é aprender as regras de como usarGROUP BYou quando escolher umLEFT JOINem vez de umINNER JOIN. Sabemos que tivemos sucesso se, depois de escrever uma consulta SQL, você puder fechar os olhos e imaginar o que o computador faria e qual resultado ele produziria. Só então você será capaz de resolver problemas do mundo real com SQL.
Conjunto de dados
Nosso conjunto de dados documenta os detentos do corredor da morte do Texas executados desde 1976, quando a Suprema Corte restabeleceu a pena de morte, até o presente. Ele foi extraído do site do Departamento de Justiça Criminal do Texas usando métodos automáticos sempre que possível. No entanto, grande parte dos dados anteriores a 1995 está disponível apenas como imagens de documentos físicos, o que exigiu uma extração manual minuciosa.
Os dados brutos estão disponíveis em formato CSV para download. Devido à extração manual e à limpeza realizadas, provavelmente se trata do conjunto de dados sobre o corredor da morte do Texas mais completo disponível na internet. Você também pode explorar um subconjunto que preparei para este livro:
Por um lado, os dados são simplesmente parte de um livro de programação comum. Por outro, cada linha representa um sofrimento imenso, vidas perdidas e, em alguns casos, uma incrível redenção e aceitação. Durante a preparação deste conjunto de dados, várias das declarações me comoveram profundamente e me fizeram reavaliar minha posição sobre a pena de morte. Espero que, ao examinarmos os dados, você também reflita sobre as questões mais profundas envolvidas.
Aspectos técnicos
-
Bancos de dados no lado do cliente. Um dos desafios para tornar este site gratuito foi evitar pagar por hospedagem web. Mas, para oferecer aos usuários uma experiência prática com um banco de dados (consulte Pedagogia), seria necessário hospedar e pagar por um backend adequado. Felizmente, existem bancos de dados que rodam no lado do cliente. Isso me permite usar a hospedagem gratuita de páginas estáticas do GitHub Pages e fazer com que as páginas executem um banco de dados SQLite no navegador. Alon Zakai e outros tornaram isso possível ao portar o código C do SQLite para JavaScript usando Emscripten.
-
Matthew Butterick. Conheci Matthew na Racket Summer School e fiquei impressionado com o excelente trabalho que ele fez no Beautiful Racket e no Practical Typography. Como você talvez possa perceber, peguei muitas ideias de design de lá.
-
Jekyll. Se não fosse pelo Jekyll, eu teria acabado escrevendo todo o HTML à mão. Ainda bem que existe o Jekyll.
-
Web Components. Consegui reutilizar bastante código escrevendo os componentes dos exercícios interativos e dos quizzes como tags HTML personalizadas. Pelo que entendo, é uma tecnologia relativamente nova, e espero que o W3C continue incentivando sua adoção mais ampla.
Créditos e contato
Para correções e sugestões sobre o conteúdo, escreva para mim (Kao) em zichongkao@gmail.com. Você pode saber mais sobre mim no Kaomorphism.
Para correções na tradução em português, escreva para Samuel Capetinga Bomtempo em sam.makes.programs@gmail.com.
Noam Castel e Jowan Vogel fizeram um trabalho incrível nas traduções para hebraico e neerlandês. Entre em contato com eles para elogios e sugestões, ou caso tenha interesse em traduzi-lo para outros idiomas.
Muito obrigado a Sonja Lea Heinze, Quinn Batten e Nicholas Retallack pelo valioso feedback.