Impeto
Quando lavoravo come data scientist in Quora, capitava spesso che la gente mi chiedesse delle risorse per imparare SQL. Faticavo a trovare qualcosa di valido perché sentivo che una buona risorsa dovesse essere gratuita, non richiedere registrazione e prendere in considerazione la pedagogia — avrebbe dovuto preoccuparsi in modo genuino dei propri utenti — e non c’era nulla di simile in giro.
Superando alcuni piccoli ostacoli tecnici, spero che Select Star SQL ha raggiunto questi standard. La mia speranza è che come Learn You a Haskell for Great Good! e Beautiful Racket hanno fatto per Haskell e Racket, Select Star SQL diventerà il miglior luogo in internet per imparare SQL.
Pedagogia
Questi sono i principi che hanno guidato la creazione di questo progetto:
-
La programmazione si impara meglio facendola.
Buona parte del materiale consiste di esercizi, sforzarsi di risolverli dovrebbe occupare la maggior parte del tuo tempo. -
Gli esercizi dovrebbero essere realistici Exercises should be realistic and concreti.
Per citare Alan Kay: "Non lasciare mai che [lo studente] faccia qualcosa che non sia reale — ma tu devi lavorare sodo per capire che cosa sia reale nel contesto del modo in cui le loro menti lavorano a quel livello di sviluppo."Allo stesso modo, gli esercizi proposti sono stati progettati per introdurre tecniche SQL sempre più sofisticate mentre si esplorano set di dati in modi a cui le persone possano essere realmente essere interessate.
-
Imparare a programmare è imparare un modello mentale.
Il nostro obiettivo non è imparare le regole su come utilizzareGROUP BY
o quando scegliereLEFT JOIN
rispetto aINNER JOIN
. Sappiamo di avere avuto successo se, dopo aver scritto una query (interrogazione) SQL, tu potrai chiudere gli occhi ed immaginare ciò che farà il computer e quali risultati dovrebbe fornirti. Solo allora sarai in grado di risolvere problemi del mondo reale utilizzando SQL.
Dataset
Il nostro set di dati documenta i detenuti del braccio della morte in Texas giustiziati dal 1976, quando la Corte Suprema ripristinò la pena di morte, ad oggi. È stato estratto dal sito del Dipartimento di Giustizia Penale del Texas utilizzando sistemi automatici dove possibile. Tuttavia, molti dati precedenti al 1995 sono disponibili solo come immagini di documenti fisici e questo ha comportato un’accurata estrazione manuale.
I dati grezzi sono disponibili in formato csv per il download. Grazie all’estrazione manuale e alla pulizia che è stata svolta, è probabilmente il set di dati più completo in internet riguardante i bracci della morte in Texas. Puoi anche esplorare un suo sottoinsieme che ho preparato per questo libro:
Da un lato, i dati sono semplicemente una parte di un banale libro sulla programmazione. Dall’altro, ogni riga rappresenta una sofferenza immensa, vite perse e, in alcuni casi, incredibili storie di redenzione e accettazione. Mentre preparavo questo dataset, sono stato profondamente colpito da diverse dichiarazioni e mi sono ritrovato a rivalutare la mia posizione riguardo la pena capitale. Mi auguro che, mentre esamineremo i dati, anche tu contemplerai le più profonde questioni in gioco.
Aspetti tecnici
-
Database client-side. Una delle sfide di rendere questo sito libero è stata quella di evitare di pagare l'hosting web. Ma per dare agli utenti un'esperienza pratica con un database (leggi Pedagogia), si avrebbe dovuto hostare il sito e pagare per un backend adeguato. Per fortuna, esistono i database client-side. Questo mi ha permesso di utilizzare Github Pages' come host gratuito di pagine statiche ed eseguire un database SQLite sulle pagine nel tuo browser. Alon Zakai e altri l'hanno reso possibile creando la trasposizione del codice SQLite C in Javascript utilizzando Emscripten.
-
Matthew Butterick. Ho incontrato Matthew al Racket Summer School e sono rimasto stupefatto dall'ottimo lavoro che ha fatto su Beautiful Racket e Practical Typography. Come forse puoi intuire, ho preso in prestito da li molte idee sul design.
-
Jekyll. Se non fosse per Jekyll, sarei finito a scrivere tutto il codice html a mano. Grazie al cielo c'è Jekyll.
-
Componenti web. Sono stato in grado di riutilizzare buona parte del codice scrivendo i componenti degli esercizi interattivi e dei quiz come tag html personalizzati. Si tratta di uno sviluppo relativamente nuovo, a quanto ne ho capito, e spero che il W3C continui ad adoperarsi per un'adozione più ampia.
Crediti e contatti
Per correzioni e suggerimenti, scrivi a me (Kao) alla mail zichongkao@gmail.com. Puoi trovare maggiori informazioni su di me su Kaomorphism.
Noam Castel ha fatto un incredibile lavoro sulla traduzione ebraica. Per favore, contattalo per complimentarti e per suggerimenti sulla versione ebraica, o se sei interessato ad una traduzione in un’altra lingua.
Molte grazie a Sonja Lea Heinze, Quinn Batten e Nicholas Retallack per i loro preziosi riscontri.