There’s a version of me from just a few days ago, sitting in front of my Mac’s screen, heart racing, wondering what the heck I got myself into.
I was staring down an assignment from my Applied AI class that felt like it was written in another language.
What was the task? I was supposed to build book recommendation engines using collaborative filtering, Python, Truncated SVD, and similarity metrics.
If you'd said those words to me a week ago, I’d have asked: "What language are you speaking?!"
I started to panic.
Design is my passion. That’s what I do. I live in Figma. I obsess over interactions. I enj designing cool things.
But I’m also in grad school and that means stretching beyond my comfort zone in courses like Applied Artificial Intelligence.
And this one pushed me hard.
But here’s the thing: panic doesn’t mean you’re not capable of doing something. It just means you care.
So I let myself freak out... and then I got to work anyway.
What Was I Working with?
In short: we had to build two kinds of recommender systems:
One that recommends similar books based on user ratings (item-item). Another that recommends books based on similar users (user-user). To do that, I had to: Read and process real-world data from Goodreads, build interaction matrices, apply Truncated SVD for dimensionality reduction, compute distances using metrics like cosine, euclidean, and cityblock, experiment with different parameter combinations and interpret the results.
Sounds simple… if you’ve seen this before.
But I hadn’t. It was all new. And it felt like being dropped into a foreign land with no map. I was running code I didn’t understand(yet), debugging broken CSV paths, wondering why my matrix only had 11 users, and asking my co-pilot things like “why is my .pkl file not saving” at 2AM.
“I Can Do This” (Eventually)
I set up my environment. I ran scripts I didn’t fully understand. I read error messages like they were written in another language because honestly, they kind of were.
When I saw the first ‘AssertionError’ in my test script, I thought, ‘This is it. I've destroyed everything. I broke it forever.’
I tested. I failed. I tried again. I failed again. I kept going.
There were so many points I wanted to quit. After getting so many errors no matter what I did, I almost shut it all down. But I paused and asked myself: "What if I actually get this working?
So I decided to lock in. I asked questions. I read the code line by line. I broke it down like I would a UX flow, step by step, from user input to output.
And eventually… things started clicking.
I got the build script running. I tested recommendations. I tuned parameters. I wrote reflections. I even debugged my own duplicate script and rewrote it clean. And the moment the system spit out consistent, clean recommendations?
I was like no way!
I was excited. Tired, but excited.
What Did I Learn In All Of This?
For the first time, I really got it.
I saw how a user-based recommender thinks differently from a book-based one.
I saw how tweaking parameters changed results.
I saw how data transforms into logic.
The thing I thought would break me? It didn't.
Oh and I learned what cosine similarity is. Reliable. No errors. Would highly recommend.
My Advice to Anyone Drowning in a Hard Assignment
Start ugly. Run the broken code. Get the error. Then fix it. Talk to someone (even ChatGPT. Seriously). Explaining it helps. Test everything, but don’t forget to pause and ask what the results actually mean. Give yourself grace. Growth doesn’t always feel like growth when you’re inside it.
TL;DR
I walked into this assignment scared. I walked out feeling like I can do anything. If you had told me I’d understand and build a functioning recommender system and write a full reflection on it, I would’ve laughed. But here I am.
And no, I’m not pivoting to machine learning full-time or anything. But I’m walking into every new challenge; in design, tech, and life with more confidence, because I proved to myself that I can do hard things.
So if you’re staring down a challenge right now and thinking “I can’t do this,” let me be proof that you can.
Panic if you have to, but don’t stop there. Try anyway. Show up anyway. Push one line further, one Google search deeper, one hour longer.
Because on the other side of panic is a version of you who did the thing.
And they’re worth meeting.
I got the most amazing opportunity to attend FIGMA's CONFIG this year