The Sequel to SQL
Written by Nikos Vaggalis   
Monday, 21 December 2015
Article Index
The Sequel to SQL
Completing the course

CodeSchool recently launched a new Database path and we gave it a test run. Is a hands-on approach enough to get the deeper meaning of SQL?

 

The path’s objective is to enable you to:

'take control of your application’s data layer by learning SQL, and take NoSQL for a spin if you’re feeling non-relational'

The curriculum comprises three courses. The first one Try SQL is free, whereas the two follow-ons The Sequel to SQL, which we review here  and The Magical Marvels of MongoDB require a paid subscription.

The Database Path

The Platform

Before tackling the lectures, a few words on the look and feel of the CodeSchool platform. One word, elegance. The look is great, the structure is usable and easy to navigate, and the available material - free or otherwise - is a lot; you can literally spend countless hours just by watching the film studio strength, subtitle enabled, video productions.

The courses cover modern technologies and many industry buzzwords such as Node.js, Ruby on Rails, Jquery etc. and they are constantly updated to keep up with the ever evolving landscape of the job market.

The student writes code in a browser based IDE so there is no need for setting up a development environment comprising of compilers or IDEs. The philosophy here is that by lowering the entry barrier, the beginner can have a quick start and focus on what matters most. This means that having decide what you want to study you can immediately start coding in the browser, rather than to go through the potentially error prone process of setting up a full development environment.

The Platform

 

 

The Sequel to SQL

As well as the quality of the video production, another and very important aspect is the teaching ability of the tutor. In this case, it’s Gregg Pollack, a veteran in the e-learning sector having helped establishing  Envy Labs, Starter Studio, and Code School. He is the main player in almost any available video in the platform, ranging from SQL to jQuery, demonstrating that he is a man of many talents. 

In this set of lectures, he is very composed , with a light sense of humor, keeps the momentum going without boring the viewer, has deep knowledge of the subject and  the ability to pass that knowledge to the viewer in easily 'digested' terms.

 

The Instructor

 

The Workflow

Each course is comprised of units and each unit consists of several video lectures and slides, supplemented with integrated quizzes and code exercises

After you watch the mandatory, short (approximately 5 minutes long), self-contained videos whose purpose is to initiate the student to the concept, you then have to work your way through the quizzes, multiple choice or otherwise, and complete little challenges that require writing code on the browser-based IDE.

There are no grades, no deadlines, no assignments, no personal progress tracking so you can follow along at your own pace, freely pausing and resuming video and exercises. The units can be consumed individually (the units, not the lectures within a single unit) and in a non-linear way as they are designed with modularity in mind.

 

Quiz

  

Everything starts with a noir-style movie clip and its accompanying imaginative song about SQL and its aggregates. The effect here is to try to present coding as being as much fun as watching a movie! Although I have mixed feelings about this, thinking that it is a lukewarm approach, I have to admit it works in reducing the stress faced by beginners.

.

Movie Clip

 

 

The first lecture kicks off  with an easy SQL topic; how to compute aggregates with max, min and avg on a couple of rows. Easy to pickup and a good way to get one’s feet wet. It is apparent from that moment on that although video is not highly regarded for learning how to program, if made correctly it can do wonders and beat by far the time one would had to spend reading and comprehending a book. In this instance the production is meticulous with a lot of thought put into it.

It uses animation very effectively and the way that table rows are stripped out to give the disabling effect or highlighted for drawing the viewer's attention. This is well harmonized with the instructor's narration to provide a logically coherent presentation that is very satisfactory.

 

Workflow

 

After watching the video, you are presented with quizzes and challenges in the form of   'let's find how many actors we have in our database'. You then have to translate these requirements into an actual query based on a certain schema

The schema is handed in its raw SQL representation and with its actual inserted data rows so that you can work your way around the fields and data types necessary for constructing the query.

 

Excercise

 

There is syntax highlighting as you type in the code, while the little circles on the right of the task, denoting that currently you work on a subtask, pulsate indicating that your code is parsed and checked against the correct outcome. When there’s a match, each circle becomes checked out in its turn to notify that a correct solution to the subtask has been given. When you are ready to move on to the next exercise you have to click on the Check my Work button.

In case you make a mistake and feel in need of a bit of help, you can ask for guidance, but not for the complete answer, by asking for a hint. If you need more assistance  click Buy an answer which will reveal the complete code coupled with an explanation. This help isn't free and you have to trade some of the points collected so far, that way introducing a bit of gamification into the class and as such, more fun!

The error messages are context sensitive, and provide useful descriptions that one can understand. For example an incorrect submission will result in a message written in natural English like 'hold on we want to include the total salary for each country in the result set'

 

Error

 

The next video is about aggregates too, but this time we look at it from a Group’s perspective that we subsequently filter through a Having clause. 

Overcoming a limitation

Wanting to experiment with my own data or queries, I tried adding a few extra rows into the dataset but the schema panel  was locked out. In particular, I wanted to add  Nullable values in the name column and observe whether the having clause would take them into account and include them in the result set.

Unfortunately, you are confined within the boundaries of the task at hand, with no room to experiment and doing your own thing. Thinking out of the box is not allowed…

But all is not lost. It’s a good thing that the schema’s raw SQL as well as its actual data are available from within the browser’s IDE, so one can copy them verbatim, and paste them into SQL Fiddle. That’s what I did, but additionally inserted a few more rows and created a test case choosing  Postgres as the backend  ( CodeSchool’s courses are Postgres powered). Now I could run my own experiments

 

SQLfiddle

 

Another subtle, but important, detail not covered in the lecture is that the underlying database engine allows grouping  on a column not included in the select clause; in this case the ‘name’ column is referred to in the Group by clause but does not appear in the Select clause.

So this completes Level 1. The screen lists your achievements and also introduces the social perspective  by making it easy to share them with your colleagues or friends on Linkedin, Twitter, Facebook and Google+.

Level 1  is now dimmed out  to indicate that it was completed it but this doesn’t stop you from revisiting any lecture you would like to repeat.

 

Complete



Last Updated ( Tuesday, 22 December 2015 )