/leetcode-from-hell

everyone knows leetcode sucks, so we made something that sucks even more

Primary LanguageHTML

View Leetcode from Hell

Inspiration

Every CS major we've ever talked to has complained about Leetcode at least once. And yet 100% of technical interviews for software engineering jobs and internships are comprised of Leetcode-style problems. So we're forced to try and fail at mastering the "art" of Leetcoding in what is a really vicious feedback loop that burns you out.

We decided to make Leetcode from Hell, Leetcode's evil-er twin who is (mostly) a troll version of Leetcode that punishes you for lethargy but is also quite funny when thought about on a meta level. With Leetcode from Hell, we hope to alleviate some of the stress and seriousness of Leetcode by illuminating just how ridiculous programming can become when it becomes a robotic exercise instead of the truly beautiful craft it is.

What it does

The task at hand is simple and the same as on Leetcode, HackerRank, or any other online programming platform: solve the question by implementing the given method. But there's a catch. If, while writing your solution to the question, you do not type anything for 5 seconds (10 seconds for hards), all your code will be deleted and you will have to start over!

Obviously, the goal of this application is not to gain a perfect score on every question. It's a tongue-in-cheek parody of Leetcode and the discussion surrounding it. Friends who have demo'd the app have already attempted to speedrun solutions to each question while figuring out ways to make their code as concise as possible so they can submit their solution quicker. Just like how on Leetcode discussion pages there are countless users posting barely coherent solutions in hopes of making them as concise and efficient as possible ("you can actually solve this this huge problem in one line..."). The app can be cold and ruthless, but also has a playful personality brought through by colorful and funny emojis that hammer home the tongue-in-cheek nature of our project.

That being said, solving some of these questions definitely tested how well we knew our algorithms and how competitive we were willing to get to solve the questions, which was really fun!

How we built it

On the tech side, we used JavaScript, HTML, and CSS to build our application. We used repl.it to host Leetcode from Hell which allowed us to collaborate on committing changes in real time (like Google Drive), a super helpful tool we didn't know repl.it had!

Beyond technological components, we wanted to have fun this hackathon because of how long it's been since we've been on campus. Creatively, we wanted to create an app that would delete your code if you stopped typing, and after observing the Leetcode stress this interview season, we decided to make it Leetcode-themed. It turned out well!

Challenges we ran into

Web development isn't our forte, but we'd be lying if we said we didn't respect web developers. The amount of cursing and head-banging related just to CSS we've seen in our lives is enough to send us into backend development for an eternity. But even though we struggled, it was really fun! JavaScript, HTML, and CSS is some of the most Googleable CS related content and we couldn't have done this project without the help of StackOverflow and W3Schools.

And the parts we thought would be the hardest (setting a timer up that clears code whenever you don't type, actually processing and running user-generated code and running it against a test suite) ended being some of the easiest. The hardest? Finding questions to use and verifying our solutions against our test cases! You try finding the longest common subsequence in an array at 2 AM when you have to keep typing once every 10 seconds in a language which thinks '5' + 3 = '53' 😒.

Accomplishments that we're proud of

IT LOOKS REALLY GOOD!!!! And it works with no bugs! (I've just jinxed us, haven't I.) The questions are diverse, and don't require a large understanding of JavaScript. We know most people are familiar with Java or Python for coding, so we made sure to accommodate for this. And most of all, we're glad we brought a laugh to the faces of those who told us how much they despised Leetcode.

What we learned

That web development is as tedious as you make it. But most of the times, it's worth it if you want a better product. We worked hard to smooth around the corners and create an experience worth looking back on using technologies we weren't familiar with. We're proud of what we accomplished and even more excited for what we can build with our newfound knowledge of web development.

What's next for Leetcode from Hell

  1. Add more questions!
  2. There's Always Better UI To Be Created. We can make our site smooth as butter and clean as a whistle.
  3. Add solutions for the questions, MAYBE 😉