This site is devoted to a discovery of how we learn, how knowledge, skills, and behaviors are transmitted from person to person.


On Mentoring: Mind the (Knowledge) Gaps


When I first started learning how to develop software I was fortunate enough to be paired with a mentor right off the bat. Then only six months after writing my first lines of code I was asked to mentor other beginners. What I did was probably a little more teaching than mentoring- but it was…

SXSWedu 2014

I want to take a moment to reflect on my present state. In this moment, I am inspired. I am humbled. I am full. I thought there was a dearth of clever in education. I thought it was mostly misguided, well-meaning people all trying to do something in their own, independent silos. What I found was that is only partly accurate. Yes, educators exist in their silos and they generally stay there. But oh man, are they a clever bunch! They have come up with all kinds of ways to look at their silos and generalize the camps of others (as I do now). But there are moments when the cleverness of educators can be channeled. The final day of SXSWedu 2014 felt very much like one of these moments for me. Half of the attendees had stuck around. The stalwarts, the troopers, the ones who wanted to see it through to the end and were willing to brave the emptying hallways, the feelings of being left behind, and the pockets overflowing with business cards even as they tried to cram a few more in.

On this, the final day, I met a company that truly inspires me, a company that I would have gladly joined a year ago, and one that I hope to promote and aid going forward. I also met a teacher, turned entrepreneur, who incubated a learning game product in his classroom and is now successfully bringing it to deployment in hundreds of schools. I heard eloquent and meaningful dialogue from a professor of Learning Sciences that reignited my curiosity in working toward my PhD. And finally, I listened to Jeffrey Tambor speak about doing it “badly,” going off script, and finding your genuine moments of bliss, in work and in life. 

I take away from this day and this week many, many things. But the one to note and certainly not forget is this: We are all working for something, if we strive alone, we struggle, if we strive together, we may find strife, but we may also find strength. And it is that strength that I now seek to galvanize, to foster clever paths around the obstacles that present themselves, and directed focus wherever enthusiasm is trapped by bursts of distraction. Let us marshal our mindfulness and harness our attention. Let us share, through both cooperation and competition, in common goals. And Let us seek in each other the strength to bring our ideas into existence. 

Learning from the Pros?

Here’s a post I wrote on how to get more (and retain more) while hanging out with smart, experienced people…

For those who still believe in instruction, dial *421

Direct instruction has been taking some friendly fire lately from constructionism, embodied cognition, and other learning theories. But rather than discard instruction as an antiquated mechanism of facilitating learning, let’s increase its value beyond repute. Back when I was teaching math and science to high schoolers, I came up with a brilliant idea. OK “brilliant” may be a bit of a stretch. Let’s say it was a good idea. An idea that, when put into practice, yielded excellent results. And I’ve been applying this idea ever since.

Whenever I have to teach a skill, host a discussion, or provide direct instruction, I start with a presentation of the material. Perhaps it’s a specific type of problem solving technique applied to a set of algebra problems, or a programming concept like for loops, or even a debate on the existence of learning styles. I would start with a demonstration, a walk-through, or a presentation of both sides of the argument. This is step one.

Step 1: Be the star. Be the guide that shows your learners the way. Be the trailblazer that lets them know what’s possible or the set the direction along which you want them to travel.

I will follow this by creating groups of 4. I have each group continue from where I left off. Maybe it’s a similar problem I have them solve together. Maybe it’s taking sides in the debate. In any case a group of four can help individuals generate their own line of thinking as well as give them an opportunity to absorb and interpret the thinking I just demonstrated. That’s step two.

Step 2: Form groups of four. Stimulate conversation, the exchange of ideas, and learner collaboration. Give the quiet ones a chance to listen a little longer. Give the vocal ones a chance to talk their thoughts out in a more intimate setting.

Now it’s time to shrink the groups. Give Vygotsky’s ZPD a chance to really take effect, and the quieter learners a chance to ask some questions or explain their understanding. Step three is all about the power of two.

Step 3: Create pairs of two. In pairs, the learners have one more chance to work through a problem or solidify their thinking. More experienced learners can lead less experienced ones to a deeper understanding and achieve one of their own along the way. Pairs also help learners identify their shared points of confusion and articulate them to the facilitator. It can also be a great way to help those in confusion not feel like they are the “only ones who don’t get it.” 

In order to give learners the chance to establish confidence and independence in the skill they are working on or the conversation they have been engaged in, we end with solo work.

Step 4: Establish the power of one. Have learners solve a problem on their own. Have them write down their opinions. Have them do any activity that gets them to reflect on their group work and the facilitator’s instruction. Make sure it’s an exercise they can keep working on if they need more time, one whose completion provides a clear indication to everyone (including themselves) that they have learned what you attempted to instruct them on.

That’s it. Start with a “sage on the stage,” move to groups of four, then two, then one. I call it *421, and it works for almost any topic, giving learners access to information, and a chance to practice applying that information multiple times. Use instruction to promote practice, and you’ll never have to worry about droning on while your audience tunes out. 

**For bonus points, try *421 in reverse and let a learner be the star. Mix it up. Have fun. Just remember to dial *421.

Sorry, I just couldn’t help myself.

Homespun Wisdom: Entrepreneurial lessons from my Grandmother

This is my heartfelt example of the rich social learning opportunities available to us when we are in conversation with our elders.

The 3 most important questions to ask when troubleshooting and debugging

Recently I had an “unpacking session” with an expert web developer. An unpacking session is when a learning expert and a domain expert get together and try to unpack the hard-wired skills and strategies that the domain expert does without even thinking about. The idea is to tease apart the steps of a process that is not obvious to beginners and has become a nearly invisible routine for the domain expert. Through dialogue, diagram, and concrete examples, the process is made more accessible to novices, in other words more “learnable.” 

Now other would-be web developers can study and practice the craft of troubleshooting and debugging web development code. And it all starts with three little questions.

Question 1: What do I know?

Ask yourself this question to get started. As novice coders when we get an error message or we see a bit of code that doesn’t make sense, we have the tendency to gloss over it, quickly hacking at a potential solution (without even diagnosing the problem), performing a GCP (google, copy, paste) or skipping it altogether and moving on to the lines of code we do understand. The problem with this strategy is it does not help us form connection between what we do know and the mysterious new method, message, or syntax.

We must pause and ask ourselves: What do I know about this line of code or error message? What references do I understand, what syntax is familiar? 

Question 2: What don’t I know?

On the other end of the spectrum, we sometimes have the tendency to gloss over unfamiliar code and seek out only that which we understand. We slip past strange syntax and try to guess at what’s going on from the keystrokes we actually understand. Unfortunately, this too can keep us from making connections that help us build on our learning. In an effort to learn from context rather than content, we find ourselves not truly understanding how a piece of code works very deeply or being able to replicate it on our own. 

The point of clearly articulating to ourselves what we know and what we don’t know is to make a distinction between the two. We want to ADD distance in our knowledge gap so we can spend a little time forming a connection that bridges that gap. Like building a real life bridge, it helps to know where you’re starting and where you’re going, in fact, it’s required! Give your brain two endpoints. Point A: what you know. Point B: what you don’t. Then you’re ready for question three.

Question 3: How can I connect what I don’t know to what I know?

Once you have two points of knowledge (a known and an unknown), you can start working on connecting them. This is where we have to get super specific to the resources available to us and our particular domain of study. For the web dev expert I was unpacking with (@JeffCohen), the sub-domain (Ruby on Rails) was also important to his process. Here’s what he offered…

Step 1: Default to IRB (Interactive Ruby Shell) Most lines of Ruby code can be toyed with using IRB and the learning experience (knowledge bridge) is much stronger than a random google search might yeild.

Step 2: If the unknown is Rails specific, try playing around in console. IRB won’t help with Rails, but console will. Try inputting your mystery code and seeing what happens.

Step 3: If it’s an unknown (or unfamiliar) method, Go to the guides. Ruby and Rails both have extensive online documentation. Other resources to investigate include gem documentation, gem code, your coding peers and community, and Uncle Bob

Only after exhausting steps 1-3 does he then go to Google or try to find something on Stack Overflow. So for those out there who are going straight to Google, you’re missing all the valuable bridge-building, knowledge-making learning opportunities that an expert uses to improve his practice. Try making Google your LAST resort and see what connections you can construct between what you know and what you don’t.

And for those of you who aren’t studying Ruby on Rails, or even programming, try applying the three questions to whatever you’re learning and let me know how it goes. For more on this type of learning check out Piaget’s work on Assimilation

Loved reading this one...


ScienceDaily (Apr. 26, 2012) — They say you can’t teach an old dog new tricks. Fortunately, this is not always true. Researchers at the Netherlands Institute for Neuroscience (NIN-KNAW) have now discovered how the adult brain can adapt to new situations. The Dutch…

Blog to learn!

WARNING: After reading this blog post you will have no more excuses not to blog. DISCLAIMER: I’m writing this blog post so that I will have no more excuses not to blog.

OK now that that’s out of the way…

The purpose of this blog post is to give you an understanding of what the science has to say about the value of blogging in the learning process.

The knowledge needed to understand this post:

  1. A working definition of the term “blog”
  2. Prior experience reading blogs

First, what is a blog?

Let’s say a blog is a modern day version of a diary or journal. You write down your thoughts, you read them over again, you store them, you share them with others (or not). The difference between a blog and a journal is that with a blog, you’re using computer software to keep track of certain attributes of your entries (called “posts”) like the time, date, and the thematic elements (called “tags”).

Second, if you haven’t read some blogs, go read some now. 

Notice that you can skip around, read a post, read another post. Some blogs let you search by tag, others let you do a word search that will look at every post and return only the ones that contain that word. These features are critical to understanding some of the learning values of keeping a blog.

So why blog?

Well, whenever you’re learning something new, (and if you ask a Learning Scientist like me, you’re ALWAYS learning something new, whether you’re trying to or not) blogging offers you the following advantages:

A blog represents your own personal learning map.

A blog can serve as a representation of the work you’ve done and the knowledge you’ve practiced using. It’s like the ancient explorers who made the first maps. When you’re learning something new, you’re charting unknown territory, and writing a blog can give you, and others, an understanding of the landmarks, the features, and the terrain of the new world you’re exploring. And, as mentioned above, you can search for these features on your learning map by simply typing a related word or phrase into your search bar. Like having a google for your own brain!  

A blog makes a great memory trigger.

Have you ever looked at a calendar and realized it’s someone’s birthday. You end up thinking about that person, maybe you send them a card or email, maybe you just reminisce about the last time you saw them. Suddenly you’re feeling connected to them without even having seen them or talked to them. Re-reading your blog posts can trigger a reconnection between you and what you’ve learned. It can remind you of the things that you know and help you avoid forgetting them. If you read through your past blog posts every couple weeks, months, or even years, you can be instantly connected to the thoughts and feelings you had when you wrote those posts. The beauty about this is that you wrote it, so you’re speaking to yourself. You don’t have to try to interpret someone else’s thoughts because you’ve already done the work to interpret your own. It’s like keeping a calendar with the birth dates of your thoughts, all you have to do is scan through it and those thoughts are yours again to remember, reflect on, revel in, and build upon.

Articulation cultivates conceptual growth.

Have you ever thought you’ve understood something, then tried to explain it to someone else, only to get tongue tied and start feeling like maybe you don’t really know it at all? Blogging saves you having to go through that while someone’s watching. Instead you just do it on your own time as you try writing your blog. By trying to explain what you know and what you’ve learned, you will build a better understanding of it as you are forced to convert the thoughts in your head to words on the web. Forcing yourself to articulate what you’re working on will also help you identify what you thought you knew but really don’t.

Keeping a blog improves your ability to communicate with others in a new domain.

Just as articulating your thoughts helps you refine and build on them, it also helps you learn how to communicate those thoughts with others. As you begin to hear a new vernacular (or jargon) that has meaning within a certain context (or domain) you at first will feel unsure about the full meaning of some of these unfamiliar or altered words. For example, when you first hear about arrays, hashes, and persistence in software development, your depth of understanding is small and you may not use those words appropriately. However, as you begin to form sentences in which you put those words in context, often defining them in your own natural language, you become more skilled and confident in their use. Conversations with experts start becoming intelligible to you, and you can even start chiming in without fear of sounding foolish. 

Writing blog posts helps you identify effective strategies.

As you reflect on your learning process as well as the content of what your are learning, you will discover that the actions you take are appropriate under certain conditions and not in others. Looking back, you will begin to notice when a certain strategy was effective and when it wasn’t. You may even be inspired to think up new strategies that you can apply going forward. In other words, by writing your blog you’re becoming a wiser practitioner of your craft.

Keeping a blog helps you identify areas for growth and motivates you to pursue them.

Writing about what you’re learning is bound to fill you with desire. New questions arise, sticking points become more obvious, and your goals for learning what you’re learning are pushed to the forefront of your mind. This is your opportunity to inspire yourself to continue your development. Use your blog to seek out what your want to focus on and why you want to focus on it. The more you do this, the more you customize your learning path and reap the benefits of your own natural curiosity and insight.

So there it is. Six reasons to blog. Now I’m inspired. I think I’ll start on my next post. How bout you?


ps. If you’re reading this, and you don’t yet have a blog, it’s really easy to start one. Just click on the button on the top right of this page, the one that says “join tumblr.” (I don’t work for them, I just like their blogging service, and it’s really easy to get started with.) Happy blogging!

The power of pluralS

One thing I wasn’t prepared for when I took up learning how to code, was how confusing one simple letter would end up being. When defining a set of rules for the processor to carry out (referred to as a “method”) whether you use the plural or the singular of your method title can make all the difference. Who knew that keeping track of that one little “s” would be so tricky.

What I discovered is that the computer trying to interpret your code sometimes understands the relationship between a singular and a plural instance of a word, and sometimes it doesn’t recognize their relationship at all. This makes it very confusing for a human like myself who ALWAYS will connect a singular with a plural in meaning if not context. 

Take for instance the crafting of a list of train stations. If I define the singular “station” as one of my variables, then I have to be consistent within anywhere from 4 lines of code to 4 different files of code depending on what kind of variable I’m defining. However, if I then type the plural “stations” somewhere in the same code then I might think I’m telling the computer to simply consider all my stations, but most likely I’m simply defining a completely knew variable. The computer will not relate “station” with “stations” no matter how similar they seem to me. I might as well have used the words “station” and “weasels.” 

So if you’re ever learning to code and you find yourself struggling to match the labels you’re assigning to each of your variables, remember NOT to think of two things as similar just because they share every letter except that pesky little ‘s.’

One thing you might try is making the s at the end a different color in your text editor, or capitalizing it, or making it a different size font. Basically anything you can do to visually remind yourself that the plural is not the same as the singular (and often not even interpretable as similar by the computer you’re talking to), the better your chances of managing your errorS.