Falling asleep and not really learning that much from the lectures?
Wishing you could just spend your time wading in and struggling with projects, getting help if you need it?
Wondering if there isn't a better way?
Understanding that adults learn better at their own pace, using relevant examples from their own workplaces, Bruce Eckel has adapted the "jam" philosophy to software training. A pioneer of workshop-based training, Bruce wanted to take things one step further: to a more interactive experience for both the trainer and the participants.
A software jam is a lab-based workshop experience, where you can:
Have space and time to focus on learning.
Decide whether you want to work on your own projects or the supplied programming exercises.
Work alone or in a group.
Set your own pace, so that you can "go deep" in areas that are important to you.
Get guidance from an instructor, as needed.
Although the format is different than what you may be used to, we've found that people seem to learn a lot more than they do in traditional seminars.
When musicians have a jam, they get together and explore music without knowing exactly where they will end up. When programmers have a jam, they get together and explore new technologies in the same way. A programming jam is an informal workshop to explore and learn about a particular technology. It's better and more fun than struggling with it by yourself.
A jam is different from a sprint, which builds a specific end-product. In a jam, you start at the place where you are comfortable, and you explore at the pace that's best for you. It's not about how far or fast you go, it's just about progress and exploration.
A Programming Jam has two basic principles:
Everyone starts from a different place. Everyone learns at a different pace.
Everyone starts from a different place.
Everyone learns at a different pace.
In a jam, you can explore whatever you want, however you want. We provide space, time, camaraderie, and whatever expertise we have among us. You may work individually or in groups. People working on the same topic in the same space seem to learn more and have a good time. And we don't get stuck so often.
Although we provide plenty of material, there is no set agenda. You work on whatever interests you, at your own pace.
The first day we get up to speed on the technology. This involves informal discussion, along with information sharing from people who already have more experience. Most will want to work through formal tutorials or exercises to get up to speed during this day. If you are already comfortable with the basics, you are free to explore more advanced topics and work on more sophisticated projects.
The typical seminar, including the ones that I have taught over the years, includes lectures followed by exercises. To cover the material during the time allotted for the seminar, each activity can only be given a certain amount of time.
That model assumes that everyone can learn at the same rate an important assumption if you are implementing the traditional "factory approach" to teaching.
But we all know that each person learns in a different way, and at a different rate. We ignore this fact because if we can assume that everyone is the same, assembly-line teaching ought to work.
It doesn't. Lecturing has been shown again and again to be a very poor way to transfer knowledge.
So what is optimal? Experience. Getting your hands on something and experimenting and struggling with it. Then, after you've had some experience, you're ready to understand the theory behind it.
I've discovered that it is very helpful for people to work together on the same problem. That is, each person solves the problem on their own computer, but they work side-by-side, discussing problems and working through issues together.
A Jam is for all levels: beginning, intermediate, or advanced. You find your level and work there, at your own comfortable pace. You choose the level and topics, and work on:
You work within a supportive environment, with groups of people at a similar level, or on your own. You move at the speed that is comfortable for you, learning at your optiminal rate.
If you're at a more advanced level and you want to work on something that doesn't have a group, that's fine too. And of there's only one chapter or topic that you want to work on all week, you can do that.
One of the most important values that a Jam provides is just time and space to explore and learn.
You may be wondering, "What if I get into a group where everyone is moving too slow or too fast for me, and I'd rather work on more or less advanced exercises?" Here, we use a concept inspired by Open Space conferences.
It's called "The Law of Two Feet," and it means that if something isn't working for you, use your two feet and go somewhere that will work for you. In this case, it means you go to another group. You can join the group of your choice and work on that exercise. And if no one is working on the exercise that's right for you at that moment, you can start your own group, or just work on your own.
The goal is to keep you Fully engaged, all the time.
Jams are also appropriate for onsite seminars.
Your laptop computer, ideally pre-loaded with tools and wireless internet hardware.