John Keith

Ruby. Rails. Launch Academy.

Awesome Way to Learn HAML

I’ve been meaning to take some time and learn one of the HTML templating engines. One of the best parts about the Codepen site is that it is a great place to practice with engines like HAML and Slim. (Not to mention, doing so gives me a chance to try installing the Codepen plugin here on my Octopress).

 

My Treehouse Trial

With the wonderful break from school here at the holidays, I decided to join Treehouse and explore this popular learning platform (and maybe pick up a little Objective C and iOS while I’m at it!). I’m on day three of a two week trial and so far I’ve been impressed by the site and its fantastic array of offerings, despite my devotion to Codeacademy. That said, after completing Treehouse’s Usability Foundations course and dipping my toes into the iOS Development track, I certainly have run across a few areas that could use improvement.

Before diving into the usability issues I’ve experienced, let me say that I have really enjoyed Treehouse thus far. I was initially wary of the video-lecture style that defines the Treehouse delivery mechanism, but I think there is something to be said for adding the human element of an embodied teacher when learning to code. While the learn-by-watching method of Treehouse differs greatly from the Codeacademy approach (code, code, code!), I am currently enjoying it as I start trying to unpack the verbosity of Objective C.

On the other hand, I have experienced some quirky behaviors after the video segments are done and you start to do the Code Challenges and other quizzes. There is a noticeable delay (as in 7 to 10 seconds) in between when completing the final exercise in a coding exercise (receiving the message “Congrats! You completed the challenge!”) and when the dialogue box appears telling you how many points the completion earns.

I’ve noticed this delay only occurs the first time you are completing a Code Challenge, not if you go back and retake a challenge. That fact, however, brings up another problem: when you complete a challenge you have already completed, you are still presented with a dialogue box telling you points are being awarded! It is certainly a little confusing to receive the message that I have earned 6 points for completing the NSString challenge, but then not see any change in my overall score.

I think the fixes in these cases could be straightforward. Simply offer a loading indicator if the long delay between challenge completion and points awarding is unavoidable. Then, if retaking a challenge already completed, make sure the dialogue box at the end mentions that this challenge has already been passed and no new points will be awarded.

In terms of quizzes, there are a few pedagogical problems when you answer a question incorrectly. On the iPad app, the user is given little feedback when a question is answered incorrectly - all you get is a red box and an unhappy beep. The web interface offers an experience that is much the same (an incorrect answer garners a message of “Bummer! Unfortunately, that answer is incorrect.”).

What I really find frustrating is not this method of handling incorrect answers - the quiz should not tell you the correct answer as you are taking it, in case you do not pass. The problem arises when you reach the end of a quiz, perhaps with one incorrect answer, and are awarded your points without having a chance to review the question you answered incorrectly.

I have run into this scenario multiple times on the iOS track: I’ve missed a question that I would love to know the answer to, but I have to retake the entire quiz to attempt the question again. This is a highly inefficient setup for both the user and the system.

Again, I think this usability problem might have a simple fix. Perhaps, at the end of quizzes on the iPad and the web interface, add a button that says “Review incorrect answers” that allows the user to review the question(s) they missed.

Changing gears, I’ve also found that navigating to courses and tracks you are currently enrolled in is not the easiest, both on the web and the iPad app. With the iPad app, one tap when you open the app brings up the dashboard and shows you what track you are working on, then one more tap takes you right into the section of the track you are on.

That said, you still have to scroll down to the lecture or quiz you left off at, but this is a minor inconvenience.

When you login to the web interface, you are presented with a Dashboard page that shows the current track you are on and a button to resume your progress, as with the iPad app.

What is lacking from both interfaces, however, is any indication of other courses a user might be currently working through. (For example, though I am on the iOS Development track, I have also been watching lectures and taking quizzes from Usability Foundations, Career Foundations, and Database Foundations). Neither on the Dashboard page nor on my profile page is there a link to any of the other courses from the Treehouse Library that I’m working to finish. Having to click or tap on Library and then navigate through multiple layers to find the course I have started is difficult and undoubtedly poor from a usability standpoint.

Perhaps what Treehouse could do is offer a more informative Dashboard page. In the Welcome Home section of the web interface, current courses could be listed alongside the current track, accompanied by resume buttons. The same holds true on the iPad app - under the In Progress section, the current courses could also be visible and tapable.

Treehouse is an awesome product and I’m excited about continuing to explore its many facets, but I do hope the Treehouse Team will tighten up some aspects of the experience. I believe the few small tweaks above could easily make Treehouse one of the best online learning platforms available for aspiring developers.