Gamification Brainstorming


We’ve been talking about implementing Gamification features for a pretty long time. In a effort to move towards implementing some of these features I thought it would be a good idea to kick things off by brainstorming what we can do.

From the ideas generated we will narrow down to an MVP that can be developed and shipped quickly and Iterate from there.

Hopefully we can get some participation from the wider community with this as well :smile:


Heres some of the ideas I have been thinking about:

Points System

We have a simple points system on the Gitter chat that works very well. We could implement something similar on the site that awards the user points when they complete lessons and projects.

Theres a lot of different things we can build on top of this, integrating it with the Gitter chat points system, leaderboards, weighted points (more points for completing projects than lessons), multipliers for having a streak of points over a period of time etc.


Think of Xbox or Playstation achievements, it would award the user an achievement which is essentially a badge for reaching major milestones. For example, the first lesson/project completed by the user, completing a section of a course, completing a full course etc.

The achievements could fit in a weighted class system where completing a course is more a prestigious badge than others for example. This would also integrate nicely with the points system by awarding points for unlocking achievements.

Skill Tree

This idea was inspired by this site. I think it would be an interesting and unique visual way for users to progress through the curriculum.

It would allow the user to see at a glance their progress through the curriculum and would be a lot more interesting than the current list of courses and progress badges we have on a users dashboard.


That Skill Tree thing looks fantastic! :grinning:
Especially if it could be publicly viewable - a kind of straight up skills validation for LinkedIn, recruiters, what-not. It would probably also lend itself to any future expansion (SEO, Design, Cust. req’s gathering, as the examples given) - should TOP ever decide to stretch beyond what it currently covers.

Linking somehow to an existing system, the Gitter points, makes sense. I’m not really a user, so have no idea what it actually confers… but it should help create more of a ‘connection’ between course & community. Again, being somehow publicly viewable would only be a good thing.

If I seem to be pushing this viewable angle it’s just that I see lots of advice out there about getting a presence on Stack Overflow/Quora/et all, letting employers/recruiters see for themselves that you’re curious & courageous enough to ask when you don’t know and willing to contribute positively when you do. Whether it’s still a thing…

The achievement / badge thing… I’m not so sure about. I know it’s basic psychology (a-la Farmville / Candy Crush), validation & dopamine gratification :wink:. But 2 things for me stand against it:

  1. Not a big deal, but face it, it’s been done before. I don’t see it being any great shakes of an improvement over the current progress dials on user dashboards.
  2. Perhaps more validly, the validity of the badges. They work in the gaming/Codecademy environments by the simple fact that they are achieved within those very environments. The nature of TOP, one of it’s cornerstones if you like, makes that an impossibility. The only way I could see that working would be to have a team of ‘graders’ checking over submitted code and assigning badges to those who ‘passed’. OK, maybe there could be a way of automating that via test suites, but the principle remains. If you wanted to use a ‘recognised’ system like OpenBadges, surely you’d have to meet some kind of criteria or they’d be worthless outside of the initial dopamine rush :slight_smile: .

Ultimately, by TOP’s very nature, I suppose any gamification / award system is going to come down to learners being honest with themselves and what they have achieved… :man_shrugging:


I’ve been thinking about this for a looooooong time and we’ve had many discussions about it in the past so I don’t have a ton to add here right now… though I’m sure I’ll have opinions if the discussion really takes off.

Basically the biggest issue for me is if we’re going to do something like badges or certificates I really want to make sure that they MEAN something… i.e. they’re not something that anyone can jump on and fake their way through a few lessons to get the cert. However, that means that in the end unless we build some sort of verification system it’s going to be PEOPLE that are checking the projects as they’re submitted… and IMO we don’t have enough people to check every project as it comes in.

The other issue is considering what constitutes a ‘passing grade’ or whatever on a given project. is it good enough that it works if the code is nasty? what if it’s decent code but it’s missing one of the assigned features? Can we make sure that all of our mods (or whoever is checking these things) are using the same standards?

Despite these reservations, I’m generally in favor of SOME sort of badge or certificate if we can come to some agreement on how that’s actually going to play out.


If we did have “graders” could we assign a mod or two a week out of a month to “grade” submissions based on a rubric we’ve created for each project?

I agree its going to be incredibly hard to prevent people from cheesing a cert without some system in place and I believe if we create some automated verification for theses assignments it would make the course feel too rigid.


Hey guys.

I’ve been meaning to write a response to this for a while but something keeps getting in the way.

I’m going to throw out some ideas I’ve had on this. I don’t necessarily think they all will work but maybe it’ll spark some thoughts.

Rather than regurgitate I’ll start by saying I agree with @KevinMulhern’s ideas. They are relatively simple to implement and we can even solicit ideas on the achievements and maybe even have some hidden ones etc…

My ideas below aren’t necessarily all gamification but rather than start another thread it’s also ideas around the wider concept of engagement in the site.

Some other ideas:

  1. Odin currency… This could be a linked to the points system rather than actual currency, but the idea being that they can be traded for something. Maybe a full review of a project of their choice from one of the mods. Obviously the entry to get this should be fairly high to stop us being overwhelmed and maybe be dependent on them also contributing to the community first but could be a great way to drive engagement. I know currently we do give feedback on projects when asked but none of us really go in depth all the way. We could even maybe just have some kind of template for all mods to follow when reviewing a project with set areas to cover so it’s consistent.

  2. I’m not sure if this is possible, but if we can get Thinkful to maybe pitch in a small amount for some more Odin t-shirts maybe we could have competitive challenges with an actual reward for competing and maybe a special badge on their profile.

  3. A vote system for new features for the site with the winner getting some pair programming from a mod to implement it themselves.

  4. Allow users to implement challenges that others can complete for points or badges or something.

  5. I’m not sure how cool this is but for those who aren’t mods that regularly help out maybe we could suggest people can use something like or whatever to say thanks. I am really on the fence on this and I don’t want us to appear to say people should feel obligated, but if someone goes above and beyond to help someone with their project or most likely their homework it might be a nice idea.

  6. When people are completing the course and getting badges or whatever maybe alert them to people also at the same stage as them so maybe they can reach out and team up for some projects.

  7. Somewhat difficult to implement but if we can reach out to someone who has a great course that would really be great to take to complement TOP maybe we can offer to drive traffic to them in exchange for a small discount which users can get by collecting enough points or something.

If I have any more I’ll keep updating.


Points System

Perhaps we could have users level up when they get to a certain tier of points. Ex. Level 1 (hypothetically, the name for Lv.1 can be “Warrior” or “Code Smasher” “God level” or whatever). Could we use the Gitter chat points system and add the level names in the users’ bio? The Gitter points just keep adding up, but we could implement different tiers for different levels (ie. Points 1-100 would be level 1). If we have names for each tier level, it adds to the Odin theme too. We could have Odin related names for the tiers, just to make things more fun and interesting.


The tier levels mentioned above could be the achievements as well. There’s 2 different achievements we could have:

  1. Overall participation points from Gitter for the tier level achievement
  2. Completion of course achievement

Skill Tree

This sounds very unique! I can envision the Odin version could be like a journey consisting of a map like this and within those areas are Code languages or programs names. We could simplify our version of the map and align it more towards skills progress, but make it more like a journey through the map.


I like that skill tree at least for one reason: it lays out a complete roadmap to becoming an efficient web developer in a single view, compared to how our curriculum is laid out. As it stands currently, a user would have to click on curriculum, click on each course, and then scroll through the entire thing in order to get an idea of what we cover.


I like that skill tree at least for one reason: We can have a Valhalla talent when you complete the entire curriculum ! (Or is that a bit morbid ?)


@KevinMulhern!! What did we discuss about gamification?? :stuck_out_tongue:

In all seriousness though, the skill tree has my vote as @lpsv mentioned. The road map is extremely useful for seeing "how far’ you have to go without it feeling overwhelming. The bonus of this is that after completing parts of the course you will literally see your proficiency going up as skill points increase in your tree and then opportunities for newer skills.

The skill tree offers depth without complication - and that’s really inviting for both the newbies and “the regulars”. Newbies get to check things off, and active people get to contribute to the skill-tree and have a visual representation of where TOP is heading. This means it’s very clear to see how the curriculum fits to their learning and its end-points: TOP can’t teach everything but with this skill tree it can show the next horizon for development and contribution.

Investing in the skill tree will answer a lot of frequently asked questions from newcomers like “where am I going?”, “how far do I have to go?”, “how much time does it take?”. In turn, this will keep the community more active as they can discuss their progress and identify nodes in the skill tree where things got rough and how they earned XP to win that battle: these nodes serve as concrete locations for social interaction - a big plus.

The skill tree, being a mind-map of its own, will help maintainers to see where things need to be improved and problem areas. Once people keep talking about a certain node we can maybe color code that area or put symbols in that area that this part is tough - seek advice or help - it could be a place where we open a forum link so people can access FAQs for that section but only that section. We wouldn’t want to hand-hold areas we think are manageable. We could even close off that forum link from additional comments once a solution is found so that it’s like a little puzzle of its own with the answer hidden in plain sight.

We shouldn’t implement achievements or the point system. Achievements can be easily integrated into the skill tree. While the point system is mainly detrimental as it relies on fixed action pattern behaviour that utilises the reptilian brain. The reward is short-term and promotes distraction which is in direct opposition to how programmers get things done and people seeing TOP through to completion. Besides, increments in your skill tree is a point system too and instead of it being dolled out in regular intervals, making the novelty negligible, it’s truly guided by your own personal achievement. It exercises self-reflection and phronesis: “yes I did this, I EARNED this skill.”

The skill tree adopts both achievements and the points system readily while still placing the ownership of progress on the user itself. This should convince us that the skill tree outclasses these alternatives and that it best represents someone’s progress in the curriculum both inwardly and outwardly.


Here’s a wrench: How do curriculum changes impact the skill tree?

For instance, I finished Web Dev 101 a long time ago. However, since the JS section got updated, I now only show 75% completion.

Also, just as I’m working on my last section of the Ruby course, a DB course got added.

Either the skill tree is cemented in stone (so when a course is changed you don’t “lose” progress), or the skill tree evolves with the curriculum.


Does anyone else use Duolingo? I think their skill tree system might be a good model. It’s been super useful for learning Esperanto!