Inspiration

When I first started learning how to code, I genuinely enjoyed the process. I loved solving problems, figuring out why something wasn't working, building things from scratch, and discovering new technologies.

Then LLMs and AI coding agents became part of my workflow.

At first, they were incredibly helpful. But over time, I noticed that I was delegating more and more of my work to AI. Instead of trying to understand an error, I would ask the AI to fix it. Instead of figuring out how to implement something, I would ask the AI to build it.

I was becoming more productive, but I was learning less.

Sometimes, I would even use code generated by AI without fully understanding what it was doing.

That made us ask a simple question:

Why let AI code for us when we could code with AI?

This question became the inspiration for ThinkCode.


What it does

ThinkCode is an AI-powered learning platform designed to help developers learn by thinking, solving, and understanding, rather than simply receiving answers.

Its AI coding coach, Socrates, guides learners through programming exercises without immediately revealing the solution.

Socrates uses progressive levels of assistance:

Think → Hint → Explain → Example → Reveal

The more help a learner requests, the more XP it costs.

After solving an exercise, ThinkCode can also provide a similar challenge to verify that the learner actually understood the concept instead of simply following the AI's instructions.

ThinkCode also includes learning progress, XP, user profiles, and a leaderboard to make the learning process more engaging.


How we built it

We built ThinkCode as a web application with a coding environment where learners can solve programming exercises while interacting with Socrates.

The application combines a frontend coding workspace with a backend responsible for handling the AI interactions, learner data, exercises, and progression.

We use an AI model to power Socrates and provide it with the context needed to coach the learner, including the exercise, the learner's code, their level, and the current assistance level.

We also designed the AI behavior around a key constraint: Socrates should teach before it solves.

The application was designed around a simple learning loop:

Try → Get stuck → Ask Socrates → Understand → Solve → Prove your understanding → Progress


Challenges we ran into

One of our biggest technical challenges was implementing RAG (Retrieval-Augmented Generation) for Socrates.

A coding coach needs the right context to provide useful guidance. We had to think about how to retrieve and provide relevant information about the exercise, the learner's code, their previous interactions, and their learning context without overwhelming the model with unnecessary information.

Another challenge was designing the AI's behavior.

Most coding assistants are designed to provide the fastest possible solution. Socrates has almost the opposite objective. We had to design a system that could resist immediately giving the answer and instead guide the learner progressively.

The UI/UX design was another challenge. We wanted ThinkCode to feel like a real learning environment rather than another generic AI chatbot. We had to find a balance between the code editor, the AI coach, the exercise, XP system, progression, and leaderboard without making the interface overwhelming.


Accomplishments that we're proud of

We are particularly proud of turning a simple idea — "AI should teach instead of simply solving" — into an actual interactive learning experience.

We also like the fact that Socrates is not just a chatbot placed next to a code editor. Its behavior is designed around the learning process.

The progressive help system gives learners control over how much assistance they need, while the similar challenge after an exercise introduces a way to check whether they actually understood what they just learned.

Most importantly, ThinkCode made us rethink our own relationship with AI while building it. We didn't want to create another tool that encourages developers to blindly accept generated code.

We wanted to build something that encourages them to think first.


What we learned

Building ThinkCode taught us that building an AI application is about much more than connecting an application to an LLM.

The context provided to the model, the instructions given to it, and the rules controlling its behavior can completely change the experience.

We also learned that an AI does not always need to be optimized for giving the most direct or complete answer. In an educational context, sometimes the most useful answer is a question that makes the learner think.

Finally, building the interface taught us how important UX is when working with AI. Even a powerful model can provide a poor experience if the user does not understand what the AI is doing or why it is responding in a particular way.


What's next for ThinkCode

ThinkCode is only the beginning.

We want to make Socrates increasingly aware of each learner's progress and weaknesses so that it can adapt exercises and explanations to their actual learning journey.

We also want to expand the learning system with more programming languages, more exercise types, stronger code evaluation, and deeper learning analytics.

Another direction we are exploring is bringing Socrates outside the ThinkCode web application, allowing developers to use the same coaching approach directly inside their development workflow.

Our long-term goal is simple:

Make AI a tool that helps developers become better problem solvers, not a tool that solves every problem for them.

Built With

Share this project:

Updates

Submission history