Monday, August 31, 2015

3 Ways to Improve TreeHouse's Rails "To do App" Course

I have spent many, many hours working through TreeHouse's Rails Track.  I love TreeHouse.  I have raved about TreeHouse on this very blog since I started it around three weeks ago.  I like Seifer and enjoyed his Ruby basics course.  I waded through many hours of TreeHouse to finally be able to work with Rails and I have been looking forward to it for weeks!  I am about halfway through this course and it is really disappointing.  I was initially thinking of writing a fairly negative review of the course and opening up on it.  However, as an educator of well over 10 years myself, I understand that teaching people stuff is hard.  Therefore, I decided to spin this and make it about improving the course instead of attacking it.

Before I start, let me say that I have about 100 hours into coding and am basically new to it.  That said, I have finished the first three chapters of Hartl's work on Rails.  So, if you are a little more advanced, this course might be a better fit for you than it was for me.

(1) Slow it down!  When Seifer introduced us to Ruby, he was slow.  Something has happened between then and now.  He is now super fast.  There is very little explanation in between the commands and some of them are performed too quickly to even keep up if you are simply typing as fast as you can!  At times it feels like this tutorial is more about him making the "To Do" app rather than about teaching the students.  Again, I am an educator.  I know how grueling it can be to crawl through material you are very familiar with.  That said, this is simply too fast and if students can't follow along they are going to quit on you.

(2) Divide it Up!  In this tutorial, there is a lot going on.  It could easily have been divided up into more sections with more context.  In this course, he deals with gems such as capybara and rspec.  I have divined through watching and doing that these are gems meant to help test your app as you go.  We need more explanation about what they are!  Where did they come from?  Why are we doing this?  Leading up to this, we took entire courses on the command line and on Git.  Now new gems are thrown at us and if you are like me you don't have the faintest idea what they do or why we are utilizing them without reading between the lines in the course.

(3) Testing based development needs explanation!  Throughout the process, you will develop an app, but more time will be spent programming tests to make sure your code works.  You will probably make more tests than app before you get done.  The tests are complex and very confusing and there is scarcely an introduction to the whole process.  This is very frustrating for the newcomer.  I read in the forums that testing based development is a good practice and eventually helps to develop more efficient and error free software.

I am sure that's true, but if you are new it's really clouding the issue.  I teach college students history.  There are countless "best practices" that I have to overlook in the name of teaching them on a basic level that they can grasp and do.  Would it be nice if I could teach them the ins and outs of citations, historiography, and deep reading of primary materials starting on day 1?  Yes!  However, if I try to go into all of that in a 200 level course, nobody will get it and nobody will like history.  In the name of trying to familiarize them with best practices and save time, everyone hates it and before long they won't be interested in anything I have to say!  I think testing based development needs a lot more context here.  Seifer never explains what it is and so we are left not sure what we are doing and most likely not doing it very well.  Teach us to crawl before we walk!

At the end of the day, I still love TreeHouse and I think Seifer is a fine instructor.  I just think some decisions were made that were not consistent with the rest of this course.  In Ruby Basics, Seifer is slowly showing you how to make Ruby print text.  5 hours later, he reappears and is absolutely crushing you with fast moving Ruby on Rails lessons that are pretty demoralizing.

No comments:

Post a Comment