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 BYo quando scegliereLEFT JOINrispetto 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.