Brace yourselves. Today, I want to get philosophical. I will explore my ideas around teaching technical content to beginner and intermediate learners. Many people, especially in an academic setting, want a teacher to assign a book so they can read it, remember the definitions, recall basic concepts, and immediately apply them to their problems. But unfortunately, it rarely works in a technical setting. Why not?
Well, first, teaching is complex. Trying to form new neural connections in another person's brain so they can tackle new problems or see problems from unique vantage points is just plain hard. In any setting.
Teaching technical content is even more challenging. In geospatial computing, I help learners view the world through the lens of a computer. First, they must grapple with capturing geospatial phenomena within the limited confines of the only two numbers a computer understands: 1s and 0s. Then, they must invoke their creativity. Finally, they must figure out how those 1s and 0s can be used to represent much of the world. At the advanced levels, learners begin to see the edge of what is computationally possible. They begin to question whether those edges are fixed or fluid and then try to see if these boundaries can be moved.
Here in lies the challenge. What is possible? The answer to that question changes daily with advances in computational and geospatial technologies. Of course, not all learners want to or need to journey to the bleeding edge of geospatial computing. However, the bigger the problem, the closer to the edge the learner needs to get. Especially for big problems. Problems like climate change or achieving the 17 U.N. Sustainable Development Goals [https://sdgs.un.org/goals] like Zero Hunger.
Now. Technology alone will not solve global problems (or smaller problems facing your business, non-profit, or governmental agency). But it can help us humans. This doesn't happen by accident. We need to teach people how to use technologies in new and innovative ways (if traditional methods worked, then we would have solved these problems by now). Thus, we have come full circle. How do we teach people in a technology-rich world so they can go out and make an impact?
In my professional life as a professor and my personal life as a parent, I confront that question every day. This essay would become a book to fully dive into that question because it is nuanced and complex. It touches on not just technology but ethics, confidence, literacies, motivation, ownership, agency, accomplishment, and many other topics beyond what I'm going to cover today. So let's take a small slice.
How to teach the basics of computer programming?
Programming is the entryway for many learners into geospatial computing. So let's start here.
I've tried many techniques and approaches in classes and workshops, but I've relied on one phrase above all: "Practice, practice, practice." You have to put in the time. It takes a little while, but then it often 'clicks,' and suddenly, programming becomes easier. The more one practices the craft of programming, the faster the 'click' occurs (most of the time).
Recently, I found inspiration in an unlikely source. From Alex Hormozi, author of '$100M Offers: How To Make Offers So Good People Feel Stupid Saying No.' In trying to achieve success, he says, 'The speed comes from not having to take detours. If you consistently move forward over a long enough period of time, then you go really far.' [YouTube clip: 11m,
He is a big believer in doing ordinary things for an unordinary amount of time, which can yield (tremendous) success. He also believes in mentors helping to shorten that amount of time.
Alex Hormozi started in the fitness world by creating profitable gyms. I'm boiling down his approach to this:
"You have to do the workouts, but they need to be the right workouts."
An Analogy: Training for a challenging athletic competition
Let's say you want to train for a challenging athletic competition like a triathlon. It would be unreasonable to assume that you could buy a self-help book on exercise, read it, remember the definitions, recall basic concepts, and then be able to compete in the event. It isn't just knowledge. It is the application of knowledge.
It is better to do a couple of workouts. But, few people would expect to be ready for an athletic competition after a few workouts.
If you want to make progress, then you could hire a trainer. You expect faster results with a trainer because they will create a customized workout regime for you. In addition, they will ensure you are doing each exercise correctly. So you will see faster results as long as you do the workouts.
Here is where things get interesting. In exercise, it is assumed that your training involves practicing small repetitive exercises (reps) repeatedly. Over time those initial reps become easier. So you start doing slightly more complex exercises, but those again are more reps. People know it takes deliberate and consistent practice, whether starting with bench presses or laps in a pool. But they also know that with each rep they are making progress.
Programming Reps
Maybe it is the elegant design of user interfaces for phones, tablets, and computers that lead to people thinking that they can reach advanced levels of programming after a few short lessons. But unfortunately, many people become discouraged when progress is slow. Yet, many fail to recognize that the small gains at the beginning establish a foundation for future success.
As a teacher, I am responsible for reminding them they are making progress. To encourage them. To build their confidence. I am also responsible for creating lessons that help them improve faster (just like a trainer in a gym). This is the grand challenge for teachers to improve the learning process. To help learners build competence. Faster.
I am constantly aiming to make my teaching more effective. More relevant. Engagement is a key ingredient. But there is another key ingredient.
Reps!
Let me explain. There is usually a segment of students who are comfortable with reading and writing. They lean into reading about programming to understand it. But to gain competency to become a programmer. It would help if you practiced your craft. Reps are one way to practice. Small repetitive exercises. They are so small and simple that they can be done quickly and efficiently. But! Over time those small exercises build a stronger person—a stronger programmer.
We watch those with vast experience with envy. Triathletes transitioning from swimming to biking seemingly so effortless. Advanced programmers opening, editing, and then closing files so fast that it is hard to understand what just happened. They have done those tasks hundreds of times before. It was muscle memory. They were putting all that practice to good use.
You too, can build that practice. You can become faster and more comfortable with common tasks such as opening and closing files through reps. You can learn key combinations to speed up the process of file editing and running crucial commands. You can respond almost effortlessly to common situations because you have practiced it dozens or hundreds of times.
What do reps give you? Time!
If you can quickly nail the easy, common, and mundane tasks, it gives you time to tackle the difficult tasks. Your mental energy can then be devoted to programming and creating programs to solve your problems. Big or small.
What do reps give you? Confidence!
When you are resolving easy, common, and mundane issues efficiently. Plus, you are resolving a lot of issues! With ease. That will give you the confidence to tackle more complex issues. It helps that you are comfortable with your programming environment. In your reps, you have handled these minor issues many times. A click quick and key press, and you are back in action. You feel like you are making progress because you are, and that feeling gives you confidence.
Now, reps will not replace open-ended projects in my courses. Projects represent the competition you are training for. They allow you to apply your knowledge and skills to a problem. But, reps will be a new approach that I use early in my courses to help learners practice their craft. If it gives them more time and confidence, it will enable them to go farther than before.
I have more to say, but I'll stop here. I would love your feedback. Please reply to this message if you have any thoughts.
Until the next time around the globe,
Eric
P.S. Apologies for the delay again. In the spirit of today's newsletter, we are getting reps with sickness in our house. It has been a long month with a constant rotation of someone being sick—lots of reps.
Great article!!!Especially helpful for young faculties who want to introduce programming to students.