Geekuni Dancer Web Development Course
Written by Nikos Vaggalis   
Friday, 31 October 2014
Article Index
Geekuni Dancer Web Development Course
How Geekuni works

Geekuni is a recent start up for rapidly acquiring professional coding skills. Nikos Vaggalis leaped at the chance to attend its web development course introducing Dancer 2, a Perl web development framework.

Geekuni sounds like a promising resource. So when we came across its Web Development course, which was in beta at the time, we looked into it.



The new online institute is the brainchild of Andrew Solomon who explains his reason for founding yet another source of online software development courses. While working in higher education Andrew was given the job of coordinating a course for teaching hundreds of university students how to code. Previously pass rates for the course were "abysmally low" so Andrew investigated:

It soon became clear that the students were getting stuck on little errors and weren't getting nearly enough help from the two hours per week they had with their teachers.

The following semester, I started writing little snippets of code the students could run to analyse their work and point out any minor errors they'd made. Within a week teachers were impressed by the intelligent questions the students were asking. By the fourth week most of the students had completed the semester's work - and I had to beef-up the course so the students wouldn't be bored with nothing to learn for the rest of the semester!

Recently, after several years of research and development of this teaching methodology in the context of academia, he decided to transform it into online learning of real-world coding skills. This has resulted in Geekuni which currently offers two courses, Perl Essentials and Web Development. It is the second of these that comes under the spotlight here.

Discovering Dancer 2

The Web Development course sets out to teach you Dancer 2, a topic that will be unfamiliar to most. When starting out with something new you have the choice of possibly a book, if there is one, rely on the manual (good luck with that) or follow the sparse tutorials found in the blogosphere. Unstructured, time consuming, just not easy. What better way to get started than following a rapid, carefully planned curriculum, with structured, cohesive material and real world value? That’s exactly where this web based course steps in.

Its content is exclusively text based, (i.e. not video). It consists of five topics, each one broken down into multiple, practical exercises:

  • Topic 1 - Dancer the Domain Specific Language
    route handlers; static vs dynamic content; GET/POST parameters; 'any' route handlers
  • Topic 2 - Views, Templates and Layouts
    Model-View-Controller; templates, their data and control structures; stylesheets and layout; Bootstrap

  • Topic 3 - Sessions, Cookies and Hooks
    forwarding; login and logout; before hooks; DSL modification; single request variables

  • Topic 4 - Route Handling
    security; tokenized routing; favicon; wildcard route matching; forward vs redirect; error route handlers

  • Topic 5 - Before going live...
    unit tests; configuration; jQuery taster; Isotope taster

You can expect to devote around 10 hours of effort per topic and each exercise involves a problem to be solved. These present the Dancer DSL constructs on a need to know basis. So at each step you encounter not too much, not too little, but just about right amount of the basic theory of the concept at hand. Plus some hints to issues that the course designer wisely foresaw and recognized as a potential trip up factor for the beginner.

For example let’s take a closer look at Exercise 3 of Topic 1:



The task here is concerned with Dynamic content and the description states:

Up to now, we've just been returning static html and images to display. This is our first exercise in generating html 'algorithmically' or 'on-the-fly'. 

As typical for this course, the exercise presents the essence of the problem, forcing you to think your way out with your own solution. As an example, here is my solution:


Building on this, the next exercise asks you to implement the '/login' route handler serving the URL and as a result of writing some more code you are rewarded by seeing a log on screen:


This  is the login for the art acquisition game which is the project that you build as you progress through the course:



Well thought out

The educational methodology adopted has a pragmatic attitude and follows the “learning by doing” principle, since for completing the exercise you are required to mobilize your ingenuity, instinct, problem solving abilities and knowledge of Perl. I find that it's an approach that works, an approach that makes conquering and assimilating knowledge much easier. The prerequsite for the course is a background in Perl and if you need Perl training before tackling it, Geekuni has Perl Essentials, a course which assumes the student is a complete beginner with Perl, and provides them with sufficient understanding to take the Dancer course.

As becomes evident after talking to him for just a couple of moments, Andrew Solomon, Geekuni founder and the course author, has really thought everything through, down to the smallest detail,  The topic of our dialogue was whether it's better to ask for help in the forums or rather ask him directly. This was his reply:

"Please use the forum. I'm very keen for students to discuss things between them. There are a number of reasons for this: 

  • The more people available to answer a question, the sooner the student will get a response.

  • If questions are answered in the forum, when the next person has the same problem they can progress more quickly by drawing on the discussion which has already taken place.

  • In asking a question on the forum, you need to explain what the problem is to other students. Discussing technical problems with others, you have captured the essence at a certain level of abstraction. This conceptualization is a skill which is essential to being an effective developer turning requirements into code.

  • Getting help through conversation with other students develops essential communication skills which are necessary for collaboration in real-world work situations."


Last Updated ( Tuesday, 04 November 2014 )