How Developers Gamify Rust Learning Curve

This research was conducted by two enthusiasts eager to explore the Rust developers community and validate a few hypothesis we had about Rust learning curve. This is the first part of the research, if you want to participate in the 2nd one: please fill out this typeform;

Here’s a TL;DR of what we learned:

  1. Rust is growing it’s popularity among developers;

  2. The main issue of learning web3 Rust is it’s different implementations;

  3. Gamification helps to stay motivated and have fun on the journey of learning Rust;

Respondents selected for research: Developers who are familiar with web3 & have experience with developing smart contracts using Web3 stack, such as Solana, ink!, Move, Solidity etc. Overall we conducted 25 dev experience interviews

I. How developers learn Vanilla Rust.

Our study was also focused on how developers approach learning Rust from scratch, not only the web3 versions of it. According to the data we gathered, the main sources for learning were:

a. The Rust Book - book is the most obvious & most frequent reply that we got. Most frequently it has been used in combination with one or few other sources, though it proved to be a starting point for nearly everyone;

b. Building pet projects - developers are practical people, and they like to dive straight into the language & build something right away. Throughout our research, we have encountered multiple exciting projects developers have built to learn:

“I love strategic games & played WoW a lot, so I thought that building Rust–based World of Warcraft server is a good way to learn. It was my first pet project on Rust” - Nikita

“I learned Rust through game development. I followed YouTube tutorials on game development, so I started learning through game dev. I like to play games, and game dev for me was really fun, I like to create something that others would enjoy. And I got a lot of positive feedback on the games I created. I learned Rust through Bevy / SDL library. In Bevy I built Voxxel engine and 1 physics engine in Rust.” - Toni

“I learned via developing Monopoly game on Solana - where people buy and sell not cards, but rather nft tokens which act as a card. Development is fully on Rust.” - Sai

c. Gamification platforms - throughout the research, we have stumbled across multiple gamified platforms developers have used to learn Rust. Leetcode, CodeWars, Exercism, AdventOfCode - all of these were used, and all of them have pros and cons that we will touch on later.

II. Issues with learning Web3 Rust

Now let's talk particularly about issues developers are facing when they want to dive into web3 Rust.

a. Lack of clearly formulated strategies to learn & apply Rust for web3

Our research has demonstrated, that developers often get confused on how to learn & apply Rust specifically for web3. There are from little to none educational courses & other guiding content, no clear path that would take developers through thorns to the stars - meaning learning key concepts & apply them on a real project right away.  But besides this, there are multiple Rust derivatives for web3: ink!,  Solana, Move, Cairo.

b. Decreasing of motivation due to the high entry barrier for web3 Rust

Rust is considered to be amongst the hardest languages to learn. It was mentioned by our respondents and also researched in Rust Survey 2022 that provided the “Too difficult to learn” factor as a 2nd most popular reason to stop using Rust.

Statistics was provided by 2022 Annual Rust Survey Results Research
Statistics was provided by 2022 Annual Rust Survey Results Research

Despite the community's great efforts to create educational materials and courses, YouTube videos, meetups and constant help from fellow Rustaceans, Rust remains a mountain too big to climb for many people.

III. How developers use gamification platforms to stay on edge

One of the main focuses of our research has been gamification, and specifically, the gamified platforms developers use. We were curious about what motivates them to come to these platforms, why the stay or go, for which languages they’re suitable, for which not and why.

Thus, the scoring criteria for all respondents has been whether they used the gamified platforms or not.

With that being said, here is a list of gamified platforms that our respondents have used:

a. CodeWars

Codewars Leaderboard
Codewars Leaderboard

b. AdventOfCode

Has been popular amongst Rust developers since the addition of Rust language support in 2022-2023, gaining momentum;

c. Leetcode

d. Exercism

e. Codinggame

There are multiple reasons developers come to use these platforms.

a. Understanding syntax and functionality of a certain language:

“For Haskell  Exercism was good, but for other languages it had the same issue - tasks there were very similar and boring, mostly focused around arrays and working with them to understand basics of a language. This platform is more aligned with developers' competition, but it is not very practical for learning.”  - German

b. To find an engaging community and interactiveness

I started with Leetcode and then switched to Exercism, but it was not what I was looking for. When you need to dive deeper into concepts that you already now - these platforms can’t help, and you can not use all the libraries. Also, I thought that I needed to get an overall understanding of the language before doing tasks. In Exercism I loved the community and its interactiveness.” - Thouney

c. To challenge themselves for additional motivation: gaining points & leveling up

“I created my own project on Solana, and used a gamified platform for learning when I was learning Java / Python. I used these platforms mostly because I like to challenge myself. Liked to see gaining points and leveling up.” - Ycrydev

Gamified platforms proved to be an effective way to keep your spirits up, tackling the problem of fading motivation that we mentioned above.

However, existing platforms focus mainly on C++, Python, JS and very poorly cover Rust

Not optimized for solutions made with Rust. Rust is a relatively new language, to which some part of the developer world has yet to adapt, and this is a perfect demonstration of this standing issue

IV. Researchers Reflections

Looking back to reflect on our venture have a few conclusions to make.

a. A competitive gamified environment is a great add-on for existing learning curves to stay on the edge, as it provides an understandable straight path for your education, helps to stay motivated and find a like-minded community that will support you throughout the way. Checking solutions of others, solving interesting tasks, doing a solo leveling - all these factors proved to be effective for  Samurais who chose a path of coding;

b. On-chain environment allows the creation of persistent leaderboards for algorithms/solutions, meaning that any algorithm which, for example, is built to win every session in an on-chain game, can take it’s place among similar algorithms that serve similar purpose. These algorithms and leaderboards are not limited to on-chain games, they can be used in trading, on-chain learning platforms, etc;

c. It is not necessary to be top 10% rust dev to be 10% rust dev within a particular Web3 ecosystem because there are a lot of space inside the Rust derivatives for each developer: you can become well-versed with ink! and be very successful with it, while having 0 experience with Cairo;

The first part of our research is finished, and we’re grateful to every member of the community who participated in it. Further, we will be gathering more statistical data to showcase the intricacies of web3 Rust. Stay tuned, Rustaceans!

To participate in further research please fill out this typeform!

Subscribe to Impulse DAO
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.