Designing a personalized learning platform for coders

An old-fashioned approach to building a personalized teaching assistant in the pre-AI era.

Meet the students

When the world was forced to go remote in 2020, my college friends and I interviewed engineering students to see how they responded to the new ways of learning, and if there was an opportunity to do something new. After processing dozens of interviews, we discovered the following traits to be the most common:

Student personas of Byte Avenue.
Student personas of Byte Avenue.
Student personas of Byte Avenue.

Enrolling into a bootcamp appeared to be an obvious solution but most of them weren’t time-rich or money-rich to invest into it. They preferred to learn from self-paced courses because most of them were affordable. They also had a very tiring college schedule.

The problems

Out of all the problems that the students surfaced in their learning journeys, I will unfold the ones that we believed were the most important to solve.

“I don't know what to do when stuck”

When learners hit a road block while solving a question (on other platforms), they could not guide themselves to the solution. They needed help in the form of hints or solutions to move forward. This trend of seeking generalized help did not improve their skills over time. The learners' growth depended only on their consistency and efforts. Hints/solutions hardly contributed to it.

The problem with hints was that they were the same to everyone, irrespective of how good or bad their attempt to solve the problem was. Solutions couldn't help either because in most cases, they did not guide the learner to think in different ways. It was just the final code.

Illustration of two students with different skill level accessing the same set of hints and solution.
Illustration of two students with different skill level accessing the same set of hints and solution.
Illustration of two students with different skill level accessing the same set of hints and solution.

We believed that this problem added a lot of friction to the learning journey and is the source of demotivation. The learners are frustrated at this critical stage of the learning process, due to slow or no progress. This situation amplifies minor inconveniences.

“I feel confused about what to learn”

The learners are constantly looking for a structured path. This is something that almost every learning platform offers. We need understand why this is still a recurring pain point among many learners. It is one of the building blocks of a learning platform. It has to be more than just good.

“I don't know how much to learn”

Some learners expressed that the knowledge they gained from online courses felt less than needed. They felt that the courses were not challenging enough to reach a great skill level so they headed to other practice platforms to fill that gap. Now, they're facing the problem of solving infinite questions. They don't know what is sufficient or what their goal is.

Bar graph comparing content on learning platforms and practise platforms.
Bar graph comparing content on learning platforms and practise platforms.
Bar graph comparing content on learning platforms and practise platforms.

What's next?

We went to our whiteboard and brainstormed dozens of ideas. After some back-n-forth with the learners and testing mini-MVPs, we identified four key philosophies to help shape our solution. It was important to consider our expertise and limitations while narrowing down on what we can build in a timeframe that made sense.

Impact vs effort matrix of some ideas discussed at Byte Avenue.
Impact vs effort matrix of some ideas discussed at Byte Avenue.
Impact vs effort matrix of some ideas discussed at Byte Avenue.

The foundations

The ed-tech space (programming/coding space) was quite populated and there were a lot of standard features that a learner would expect from our platform. Re-inventing the wheel might lead us to throw a lot of time down the drain. We took off by borrowing the industry's best practices and learn why they aren’t working out for the students we spoke with.

Read on to know how we translated shortcomings to user needs.

“I don't know what to do when stuck”

Unlike the common practice of making topics to look like the index of a textbook, we built a roadmap that was less intimidating and more approachable. Upon testing this with focus groups, we discovered that they found this depiction of the roadmap helpful.

A simple roadmap of coding topics.
A simple roadmap of coding topics.
A simple roadmap of coding topics.

This was the v0 of our roadmap, which evolved a lot as time progressed.

“I want a focused and distraction-free environment at the time of solving questions”

Every product has its own goals. We observed that other platforms allowed/encouraged navigating to other parts of the platform, which may hinder the learner’s focus at the time of coding. We wanted to get rid of that distraction to aid focus.

Sample screens from Byte Avenue's pilot.
Sample screens from Byte Avenue's pilot.
Sample screens from Byte Avenue's pilot.

“I want personalised hints”

This was a tech-heavy solution and I won’t be getting into the details of it. We designed and built a one-way communication to trigger hints depending on the code that the learners have submitted. I worked on the copy for the messages as well.

Sample UI of hints on Byte Avenue.
Sample UI of hints on Byte Avenue.
Sample UI of hints on Byte Avenue.

Top: v0; Bottom: After a few rounds of user feedback

Temporary trade-off

Making courses (educational content) was a time taking process. We had to temporarily position the platform to be a practice platform (more questions and fewer educational resources) to test the parts of the product that we could build first.

Simple roadmpay and and index of topics UI on Byte Avenue's pilot.
Simple roadmpay and and index of topics UI on Byte Avenue's pilot.
Simple roadmpay and and index of topics UI on Byte Avenue's pilot.

Designing the learning experience

What started as a practice platform with just one subject, Data Structured & Algorithms, evolved into a journey that contained multiple subjects, guided learning, positive reinforcements at critical learning stages, and more.

The product & design direction was dictated by our teaching philosophy, we designed in-house after consulting top professors. Let’s take a look at the four pillars of our philosophy.

Pillar 1

A learning journey must be broken down into smaller portions and upon completing each one, the learner must experience a sense of accomplishment. It can either be in the form of a milestone or a reward.

Cues for positive reinforcement on Byte Avenue's app.
Cues for positive reinforcement on Byte Avenue's app.
Cues for positive reinforcement on Byte Avenue's app.

Pillar 2

A learner, at all stages of the journey, must be aware of their progress and have an idea about what is ahead of them.

Cues for user progress on Byte Avenue's app.
Cues for user progress on Byte Avenue's app.
Cues for user progress on Byte Avenue's app.

Pillar 3

Educational content must be broken down into the smallest consumable bits to retain the knowledge more easily.

Cues for structured learning on Byte Avenue's app.
Cues for structured learning on Byte Avenue's app.
Cues for structured learning on Byte Avenue's app.

Pillar 4

A learner should have the opportunity to learn by doing.

Sample UI of learning material on Byte Avenue.
Sample UI of learning material on Byte Avenue.
Sample UI of learning material on Byte Avenue.

The final output

What you’re seeing here was the last stage of the MVP in the beta testing phase. This solution was not a one-shot. We arrived at this outcome after building, rejecting, and innovating tons of features! Our early testers (learners on the platform) always had one hand on the steering wheel in this journey. We decided to take off when they were happy with what they were experiencing.

Launching a product demands a more holistic output. We then designed other screens like course catalog, subscription experience, checkout experience, etc.

Final screens of Byte Avenue at launch.
Final screens of Byte Avenue at launch.
Final screens of Byte Avenue at launch.

Other tricks from the hat

I designed an internal CMS tool to build and publish programming courses for our product. I designed the logo, design system, website, and did a little bit of motion design as well. It’s always fun to try something new!

Byte Avenue's logo, animated.
Simple animation showcasing intelligent hints trigger.
Simple animation showcasing intelligent hints trigger.
Simple animation showcasing intelligent hints trigger.
Simple animation showcasing real-life problems based coding.
Simple animation showcasing real-life problems based coding.
Simple animation showcasing real-life problems based coding.
UI mockups of Byte Avenue's website.
UI mockups of Byte Avenue's website.
UI mockups of Byte Avenue's website.