TITLE: Breaking Down Barriers to Learning
AUTHOR: Eugene Wallingford
DATE: January 03, 2013 1:36 PM
Or: What a CS Student -- or Teacher -- Can Learn from a Chess Coach
All teachers, whatever their discipline, encounter many of the same
challenges. Chess coach Dan Heisman once wrote an instructive article
Breaking Down Barriers
in which he discussed a split that he saw among his students:
I once wrote a short entry,
Some People Get Stuff Done,
about a similar phenomenon I have noticed over many years of teaching:
some students find a way to get things done: to write the program, to
solve the problem, to pass the course. These are usually the same
students who find -- and make -- ways to get better at their craft.
When they encounter barriers to their learning, they find a way to go
over, around, or through them.
These are also the students who tend to succeed after they graduate
and leave the shelter of a school system that often does more to help
them succeed than they realize. The business world isn't always so
The starting point for students who break down barriers to learning
is a particular mindset, an attitude that they can learn. This is
the mindset that enables these students to persevere when they
encounter a roadblock. In some students, this attitude seems to
encourage them to persevere.
A positive attitude isn't sufficient on its own. Believing that you
can defeat a better player over the chessboard doesn't mean you will.
You still have to do it. But, as Heisman says, a defeatist
attitude can be a self-fulfilling prophecy during a game.
The same is true for learning computer science, or any other academic
discipline. Positive attitude isn't the endpoint. It is the starting
line. It is what allows you to continue working when things get
difficult. The hard work is what gets you over, around, or
through the barriers.
The good news is that hard work is more important than innate ability.
is fond of saying that talent doesn't determine how good you get;
it determines how fast you get good. How hard you work determines how
good you get.
So, the right mindset is useful, and working hard is essential. But
even these are not enough. Doing the right kind of work is essential.
Students who don't realize this can demotivate themselves quickly.
They throw themselves into their work, spend a lot of time and energy
doing counterproductive things... and don't get better. They figure
they "don't have what it takes" and move on to something else.
As a teacher, few things make me sadder than to see a student who
wants to learn and is willing to work burn him- or herself out by
spinning wheels with unhelpful, unproductive, uninformed study. When
these students are in my class, I wonder, "Why didn't they come get
help?" Or, if they did, "Why didn't they follow my advice?"
Some practices support learning better than others. There is a skill
to learning, a discipline and a way of working that succeeds
better than others. Often, the students do best in my courses are
not the most gifted students but rather the ones who have learned how
to attend class, how to read, and how to study. Many of these
students figured out these skills early on in their school careers,
or got lucky. It doesn't matter which. In any case, these skills
are multipliers that enable these students to accelerate in every
course they take. Knowledge and skill accumulate, and pretty soon
these students look like something apart from their struggling
But they aren't. They are doing things any student can do. "But
I'll never catch up to those students, no matter how hard I work."
Maybe, and maybe not. That doesn't matter, either. This is about
your learning. You have to start from where you are, and
go forward from there.
A good teacher or coach really can help students, by helping them
get over incidental barriers and helping them learn how to get over
the essential barriers in a productive way. One of the most important
things a teacher can do is to provide feedback loops of both
short and long duration, and then help students identify mistakes and
minimize their repetition. This is obviously invaluable in playing
chess, where pattern recognition and speed are fundamental capabilities.
But pattern recognition and speed are fundamental capabilities in any
kind of learning.
Some people these days like to downplay the importance of a human
teacher or coach in learning to develop software. "We have the
compiler, which gives us all the feedback we need any time of day."
Yes, indeed. We have access to tools that our predecessor could only
have dreamed of, and these tools empower us as learners. But are
they always enough?
Chess players have something akin to our compiler: the chess computer.
When I got my first chess computer in high school, I was ecstatic. I
could play any time, anywhere, against a player that could be set to
any level from beatable novice to untouchable master. I played a lot
of games. A lot. And I learned a lot, too, as I did any time I played
a lot of games and thought about them. But there were times when I
didn't understand why something worked, or didn't. In those cases, I
consulted the writings of a good teacher, or asked a human coach for
some help. They helped me get over the obstacle faster than I could
on my own.
That's another role that our teachers can play: they can help us to
In his article, Heisman talks about some of the common barriers that
chess students face and how to overcome them. Some seem specific to
the game or competitive activities, but remarkably all of them apply
equally well to students of computing or software development.
The major difference is that the barriers outlined are ones encountered
by people who do most of their learning on their own, not in the
classroom. Chess players don't usually go to school full time. If
they have a teacher at all, it's more like piano lessons than a
university program. The student meets with the teacher once a week
(or less) and then studies, practices, and plays a lot in between
A lot of people these days believe that learning to create software
is or should be more like this model than the university model, too.
Movements like Software Apprenticeship and
are all about enabling individuals to take control of their own
learning. But even in a university setting, learning works best
when students study, practice, and program a lot in between class
sessions or meetings with the professor.
Heisman discusses ten barriers. See if you can map them onto learning
CS, or how to write software:
- players who are frozen by barriers to improvement, or even
actively erect barriers to improvement
- players who work to eliminate barriers, whatever that might
It's not that hard, is it? ("Some players unfriendly on the internet"?
We invented that one!)
A few of these stand out in my experience as a teacher and student.
Consider #2. Chess players have ratings that reflect the level of their
play. When you perform better than expected at a tournament, your
rating goes up. When you perform poorer than expected, your rating goes
In the university, this corresponds to grades and grade-point average.
Some students are paralyzed by the idea that their GPA might go down.
So they take easier courses, or seek out professors who don't grade
as hard as others. The negative outcome of this approach is that the
courses don't challenge the student enough, and it is the challenge
that pushes them to learn. Protecting your GPA in this way can cause
you to learn less.
Ironically, this barrier most often affects students who have
historically done well in school. They are the ones used to having
high GPAs, and too often they have invested way too much of their
self-worth in their grades. Students who expect to do well and to have
"ratings" that confirm their status face an extra psychological barrier
when the material becomes more challenging. This is one of those
situations in which another person -- even a teacher! -- can be of
enormous value by providing emotional support.
Homework isn't fun is a universal barrier to learning. There
are many strategies for trying to get through the drudgery of work, and
a good teacher tries them all. But, in the end, it is work. You just
have to get over it. The good news is that there is a self-reinforcing
cycle between doing the work and enjoying the work.
Hugh MacLeod captures it well:
Hard work is also scary. We might fail. But if we keep working,
eventually we can succeed. What can keep us from doing the work?
Time is a limiting factor. Students often tell me, "I don't have the
time..." to study, or write more code, or come in to get help. This
can be a real challenge for students who have to work thirty hours a
week to pay the bills, or who have families to care for.
I ask my students to be honest with themselves. Do you not have
the time, or do you not make the time? Sometimes it's bad
habit, frittering away time at video games or socializing. Sometimes
it's bad habit that uses time inefficiently or ineffectively. These
are habits you can change -- if you want to.
A student came to me just after we took our midterm exam last semester.
He had done poorly and was worried about his grade. He asked if there
was any chance left that he could succeed in the course. I said "yes",
contingent on the answer to this question: What are you willing to
change in your life to make success possible? Clearly, what he
was doing wasn't enough. Either he was not devoting enough time to the
course, or he was putting in enough time but not doing the right things.
Was he willing to change what needed to be changed, if only for the
eight weeks left in the course? He was honest with himself and dropped
the course. A couple of other students made changes to how they worked
on the course and recovered quite nicely.
Ultimately, if you want to succeed at something, you make time to do the
Twenty-five years ago, Rolling Stone
panned the re-release
of rocker John Mellencamp's debut album, Chestnut Street Incident.
In the ten years since its original release, Mellencamp had become a star.
His work in the intervening years made the quality of his debut look all
the worse. It was cocky and klutzy, less than the sum of his musical
influences. "Back then," the reviewer wrote, Mellencamp's "ambition
definitely exceeded his grasp". The album wasn't very good, and the
review said so, harshly.
Mellencamp wouldn't have disagreed. In interviews, he has often talked
about how bad a songwriter he was when he first started in the business.
On top of that, he faced obstacles similar to those facing many other
young artists, including promoters and handlers more interested in music
industry fashion and short-term profit than art. They even made him take
a stage name, "Johnny Cougar", in the interest of marketability.
But he didn't settle for his initial condition. He continued to learn,
honing his songwriting skills and learning to manage his own affairs.
Along the way, he learned the sort of humility that many artists confident
in their art have. Eventually, his grasp matched his ambition. He
succeeded commercially and achieved a small measure of critical acceptance.
I must say that I have always liked Chestnut Street Incident, in
part for its raw, desperate ambition. Here was a kid from small-town
Indiana who wanted to grow beyond his roots and become something more.
The lyrics are not profound, and the emotion is not complicated. I've
always admired Mellencamp for his attitude about work and craft, and his
willingness to try and to fail.
To learn is to break down barriers. Whether you are learning to play
chess or to write software, you will encounter obstacles. Breaking
them down is a matter of mindset, effort, and specific skills -- all
of which are within reach.
Even if you aren't a chess player, you may well enjoy reading
CS students and teachers alike can benefit from its lessons.
- Finding Good Practice and Feedback at a Club
- Worrying About Your Rating
- Competition Too Good at Tournaments
- Some Players Unfriendly on the Internet
- Players Only Want to Play Fast on the Internet
- Homework is Not Fun
- Finding Patience to Play Slower
- Don't Have the Time to Study or Play Enough
- Not That Talented
- Find Competitive Chess Daunting