Reflections on Learning
Amalia is at the Full Stack Fest this week. I am working on learning Ruby and the Rails framework.
Before this summer I had never coded in Ruby or used the Rails framework. Over the past few weeks I have spent a few hours on and off playing around with Ruby, but if progress can be measured by what I can do with Ruby or Rails, I have made little.
So over the weekend, I decided to take everything I have learned in the past decade of teaching and design a study plan that would take me to where I want to be. In particular, I wrote a series of mock lesson plans on Ruby and Rails. While I am far from a Ruby rock star, I finally have a clear idea of what are my particular weaknesses and how I can improve going forward.
Mapping teaching to learning
There are four basic steps that guide lesson planning and I will share them here in case they might be of use to others who are learning something new. This is how it works.
First, there is the sorting the material into the key points that you want to cover and divide them in a series of coherent lessons. A few of the key points of my lessons are routes, models, views, controllers, classes, instance variables and relevant gems and their helper functions are critical to understand how Rails structures its apps.
Second, each lesson is designed around a "heart". That is, for each lesson there should be one thing that you want the learners to be able to do after they complete the lesson. An outcome of a lesson on routes could be something as small as being able to decipher the output of ´bin/rails routes´.
Third, after deciding on the focus of each lesson, you identify what does a student need to know in order to understand your lesson and identifying what you need to 'pre-teach'. In teaching a grammar lesson, for example, you want to make sure the students know the vocabulary you are using, so they are not distracted from the lesson's key objective. Analogous, Rails apps are full of
<%= %>. While not fundamental to using Rails, encountering such syntax without understanding what it means increased my cognitive load and made it difficult to decipher the basics of routes and controllers.
Finally, each lesson is placed in a logical order (scaffolding, in teacher-speak), from simple to more difficult, where each parts builds on the previous one.
For my study plan, after every mini-lesson, I should know something and be able to do something new, whether it is identify the helper functions when reading the codebase or actually being able to write the code behind each one. As for what I needed to know before I could fully get the most out of a tutorial, I needed to know more Ruby and have some familiarity with the embedded Ruby syntax.
To remedy this I dedicated a part of the day learning Ruby syntax by mapping it onto Python, a language I am more comfortable with. For example, when I saw
.each I thought
for. It turns out, knowing
<%= is embedded Ruby syntax makes it easier to understand a Rails application.
The long term objective of learning Rails is to be able to fix bugs or create features for the Exercism platform. It has been just a few days of this new approach to studying, and yet I feel that I have made more progress towards that goal in this time than the previous two months of studying without a plan.
You must be logged in to add a comment.