The way we teach programming and new platforms needs to be more engaging. This same lesson applies to SaaS startup gamification.
I taught myself to code from scratch. I just started writing in Basic on my Sinclair when I was in kindergarten and âgot itâ. I later picked up the books and courses easily without that initial study period of formal training. When I got to advanced academic materials I already knew pretty much everything. As a matter of fact, I never learned much from teachers. I learned to read mostly on my own and followed through with most disciplines.
This isnât a âbragâ because the reason for that is a learning disability. Itâs hard for me to understand teachers and communicate with them. This was a problem in my childhood but became a bigger problem when I started to teach programming in a local computer lab at 16. I was a terrible instructor. Typically we would mimic the skills of a good role model when performing a task, I didnât have any good teachers. At least not good for my learning disability.
I kept teaching on and off for over a decade. It wasnât because I was good (I wasnât), but you couldnât tell that from the feedback I received. Most students gave me high ratings, why did they?
The main reason was that I was knowledgeable and made an effort. The students who âdidnât get itâ would end up blaming themselves or making an extreme effort to understand. This dragged on for a while until I faced a class in which I got a bad review. It stung and I initially rejected the notion that I could be the one at fault. Eventually, it sunk in.
I took that to heart and improved, Iâm still not a great teacher. One of my shortcomings is my thought process isnât visual enough so I donât communicate as visually as most students need. Iâm working on that, itâs an ongoing process.
People like me who arenât natural teachers need to overcompensate in other departments. One of the biggest tricks up my sleeve is my approach to learning. I teach theory in short bursts while focusing on building something cool.
Why do we Have Hello World?
As a teacher, I usually taught advanced classes. Those are the âeasyâ classes to teach. In these classes, the students already have a decent baseline. If they donât understand something they can check and they donât get intimidated or ashamed because they missed something the teacher mentioned.
A beginner class is an enormous challenge. If I explain something only once, or I forget to mention something, I might lose the entire class. People might be missing basic knowledge and if I explain it too much or too thoroughly some students might get bored and lose interest.
You lose if you do and you lose if you donât. Thereâs very little âwinningâ in this area.
Thatâs why we have the âhello worldâ. It isnât just to show how the language looks or how the tools function. Itâs a âwinâ. Once we compile and run a version of âhello worldâ we accomplish âsomethingâ and that is the most important part. It gives students the motivation to keep going and double down. Even if I missed something when teaching, they might make the extra effort to go back and learn or ask a question if they feel a sense of accomplishment.
A few years ago gamification was a âhot trendâ. Thankfully itâs out of vogue, I never liked it. Stack overflow is great (that statement doesnât condone the actions of overzealous rogue moderators), but what I liked about stack overflow wasnât the gamification. Itâs the accomplishment that rewarded that. I enjoy the points or badges not because they are points or badges. I enjoy them because I earned them by giving a great answer. This is the core of the matter and what most learning experiences miss: winning.
In it to Win
I see a syllabus like this in practically every âbeginnerâ oriented course:
- Hello world
- Variables
- If statements
- Loops
- âŚ
We accomplish one thing. Then itâs âstudyâ, thereâs no ârewardâ for successful accomplishment or something measured that would trigger excitement. I get why we teach that way⌠People need the theory. But is that theory sinking in if we learn it sequentially?
When we build an ongoing demo and constantly improve it; we learn the theory while continuously accomplishing such goals. Better yet, we can intertwine it with a narrative story of developing an application or a game that helps memorize and form a narrative trail. Thereâs one downside: the tutorial sucks as a reference since the ideas are mixed within an additional narrative.
But the advantage is the âshow donât tellâ approach. I love encapsulation. Itâs wonderful. Donât explain it. Show me why the code looks bad if I donât use it. Donât explain every type and waste my time, show me how to build stuff and then go back and refine it to explain the nuances involved in practical terms. This is the exact approach I tried to take with my Java Basics free course. The idea is that we can build a Wordle clone without knowing anything and slowly refine it into a real-world application.
https://www.youtube.com/watch?v=1Bum2gYETUQ&list=PL8GhfcywW9YMucwRw2IbpeCp1FBMEgsmk&embedable=true
Yes, we need to understand some basics before we can write something useful. But the bar is very low. Better yet, we need to make flawed and imperfect code so we can show how to improve and fix it.
Achievement Unlocked
When we say gamification this is what it really means; to achieve something meaningful and not merely satisfy a metric a company needs to further push a user through a funnel. This applies to teaching coding skills and to your SaaS.
Quite a few SaaS companies still show pointless âawardsâ and badges to get us engaged. Even kids donât buy that nonsense in their iPad games. A reward matters only when you made an actual effort and should signify something with meaning. Thereâs harm in those nonsense awards as they reduce your credibility. When you have an important milestone that award wonât matter as much. In any product, we need to divide the steps into achievable hops where something meaningful is accomplished before moving to the next step.
An important aspect is milestone communication. A person needs to understand the goals, short and long-term. When I teach I start a lesson by discussing what they will know by the end of the lesson: why should you pay attention?
When I start the course I need to discuss the ending. What you will know and ideally show what we will build. I didnât do this for the videos in the Java Basics course since Iâm building them as I go along. That is not an ideal scenario. But I might revisit the first video in the series and redo it once Iâm done. This gives us the motivation to work towards a clear goal.
Featured image, HackerNoon AI prompt of â"Hello World" on the first computer ever made. pixelated. photographic. epic.â