Show HN: AlgoDrill – Interactive drills to stop forgetting LeetCode patterns
178 points| henwfan | 2 months ago |algodrill.io
AlgoDrill turns NeetCode 150 and more into pattern-based drills: you rebuild the solution line by line with active recall, get first principles editorials that explain why each step exists, and everything is tagged by patterns like sliding window, two pointers, and DP so you can hammer the ones you keep forgetting. The goal is simple: turn familiar patterns into code you can write quickly and confidently in a real interview.
Would love feedback on whether this drill-style approach feels like a real upgrade over just solving problems once, and what’s most confusing or missing when you first land on the site.
firsttracks|2 months ago
Ended up deciding to buy a subscription, but looks like the site still says "82% claimed" and "17 spots left". I appreciate the one-time purchase model, but feel that it's a bit shady of a tactic.
arein3|2 months ago
I understand that it's a sales tactic, but it's lying to your users worth it?
zweifuss|2 months ago
unknown|2 months ago
[deleted]
brazukadev|2 months ago
michaelmior|2 months ago
henwfan|2 months ago
You are right that the current check still leans too much toward my reference solution. It already ignores formatting and whitespace, but it is still quite literal about structure and identifiers, which nudges you toward writing my version instead of your own. There are many valid ways to express the same idea and I do not want to lock people into only mine.
Where I want to take it is two clear modes. One mode tracks the editorial solution for people who want to learn that exact version for an interview, while still allowing harmless changes like different variable names and small structural tweaks. Another mode is more flexible and is meant to accept your own code as long as it is doing the same job. Over time the checker should be able to recognise your solution and adapt its objectives and feedback to what you actually wrote, instead of pushing you into my template. It should care more about whether you applied the right logic under time pressure than whether you matched my phrasing.
There is also a small escape hatch already in the ui. If you completely blank or realise you have missed something, you can press the Stuck button to reveal the reference line and a short explanation, so you still move forward instead of getting blocked by one detail.
You are pushing exactly on the area I plan to invest in most. The first version is intentionally literal so the feedback is never vague, but the goal is for the checker to become more adaptive over time rather than rigid, so it can meet people where they are instead of forcing everyone through one exact solution.
VBprogrammer|2 months ago
losteric|2 months ago
djmips|2 months ago
epolanski|2 months ago
The lifetime membership + launch discount was a good marketing bait I felt for.
Not really understanding the negativity here. We know for a fact that most of the people that master intellectual problems do so via pattern recognition, not by reasoning.
You show a chess master a position, he/she can instantly tell you what the best moves are without "thinking" or "calculating" because it's mostly pattern recognition.
Maths and algorithms fall in the same category. When approaching new problems, masters don't really start processing the information and reasoning about it, instead they use pattern recognition to find what are very similar problems.
The thing I really don't like is the lack of TypeScript or at least JavaScript, which are the most common languages out there. I really don't enjoy nor use Java/Python/C++.
embedding-shape|2 months ago
Where is this fact stated, and who are "we" here? Sounds like an opinion or guess at best.
> Not really understanding the negativity here
There are two comments that could be read negativily, the rest is neutral or positive. I don't really understand the constant need for people to bring up what (they think) the rest of the comments said. Post your piece adding positivity if you want, but most of the time comments end up a fair mix so any time someone adds a snippet like that, it turns outdated in a few hours.
henwfan|2 months ago
I agree with you on pattern recognition. AlgoDrill is built around taking patterns people already understand and turning them into something their hands can write quickly under pressure. You rebuild the solution line by line with active recall, small objectives, and first principles explanations after each step, so it is more than just memorizing code.
You are also right about the language gap. Right now the drills are Python first, but I am already working on full support for JavaScript, Java, and C++ across all problems, and I will have all of those in by the end of this year. I want people to be able to practice in the language they actually use every day, so your comment helps a lot.
inesranzo|2 months ago
> The lifetime membership + launch discount was a good marketing bait I felt for.
The negativity here with me is because it feels like clickbait and like a scammy ad to manipulate me into purchasing.
It is almost lying. I find it unethical and I don't think there are 17 lifetime access spots, it's just artificial hype that doesn't make sense to me.
Marketing (at least like this) is basically lying.
baq|2 months ago
andoando|2 months ago
paddleon|2 months ago
In the last year or so HN seems to have attracted a lot of people (plus some bots) who seem to have been socialized on Reddit.
I don't know if these people are ignorant of what a good discussion forum can be (because they've never experienced one) or just don't care, but I do wish we could see more reflection on the second-order impacts of posting, and a move away from the reflexive negativity that mimics the outer face of good criticism while totally missing the thought and expertise good criticism requires.
monooso|2 months ago
If anything, GitHub seems like a more obvious choice for such a site.
henwfan|2 months ago
I am working on both and plan to let people move their account once they are live if they would prefer not to use Google here.
port11|2 months ago
wodenokoto|2 months ago
I bit more info on what NeetCode is, why I should focus on those 150 problems and how the drilling actually work would be helpful. Do I get asked to do the same problems on repeat? Is it the same problems reformulated over and over? Is there actualy any spaced repetition, or am I projecting?
henwfan|2 months ago
NeetCode 150 is a popular curated list of LeetCode problems that covers the core interview patterns people expect nowadays, like sliding window, two pointers, trees, graphs, and dynamic programming. I used that set as the base so you are not guessing which problems to focus on, and more problems and patterns are being added on top of that core set regularly.
On the study side, each problem has a consistent structure with the core idea, why that pattern applies, and a first principles walkthrough of the solution. On the practice side, the solution is broken into small steps. Each step has a clear objective in plain language, and you rebuild the code line by line by filling in the missing pieces. After you answer, you see a short first principles explanation tied to the line you just wrote, so you are actively recalling the logic instead of just reading notes.
You can repeat problems and patterns as much as you want, mark problems as solved or unsolved, and filter by pattern so you can focus on the ones you struggle with most. There is not a full automatic review schedule yet. For now you choose what to review, and the goal is to use that progress data to track weak patterns, guide what you should drill next, and add more types of focused drills over time.
embedding-shape|2 months ago
But then I don't know how to reconcile the idea that some people use LeetCode to pass interviews, some use it recreationally, but then this app seems to indicate some people use LeetCode to learn patterns to implement in the real world, which seems absolutely backwards to me. These are tiny examples, not "real programming" like you'd encounter in the world outside of computers, LeetCode can impossibly teach you how to create useful programs, it only teaches you syntax and specific problems.
So I guess take this as a word of caution, that no matter how much you grind LeetCode, nothing will prepare you to solve real world problems as practicing solving real world problems, and you don't need any platforms for that, just try to make your daily life better and you'll get better at it over time and with experience of making mistakes.
baq|2 months ago
they're doing it for themselves just like when they solve sudokus, crosswords or play fortnite
another_twist|2 months ago
Vaslo|2 months ago
mylifeandtimes|2 months ago
999900000999|2 months ago
I dislike limited offers, because I think you're placing a bit of unfair pressure on the user to buy. But I went ahead and gave you 30 bucks.
I'm going to study this before my next interview, thank you
pxtail|2 months ago
emaro|2 months ago
Or to put it another way, if I give some applicant a coding problem to solve, and they just write down the solution, I didn't learn much about them except they memorized the solution to my problem. That most likely means I gave them the wrong (too easy) problem. It will only increase the change of me hiring them by a tiny bit.
Edit: I don't hate the player, I hate the game.
notepad0x90|2 months ago
10 programmers will write 10 different ways to solve a simple problem. and that code is tech-debt other programmers have to maintain at some point. Just having coders that have the same base-level memorized problem solving patterns can ease that pain, and it can make collaboration/reviews easier down the road.
francoispiquard|2 months ago
henwfan|2 months ago
In chess you repeat the same positions until the patterns feel automatic. Here it is LeetCode problems. You keep seeing the same core patterns and rebuild the solution step by step. For each step and line there is a small objective first, and then a short first principles explanation after you answer, so you are not just memorizing code but training pattern recognition and understanding at the same time.
hinicholas|2 months ago
AidenVennis|2 months ago
reverseblade2|2 months ago
https://nemorize.com
pelagicAustral|2 months ago
noident|2 months ago
* Take home projects filter out people with busy lives. Wastes 100 people's time to hire 1 person. Can't be sure they didn't cheat. No incentives to stop company from giving you a 10 hour assignment and then not looking at it. The candidate with the most time to waste wins.
* Relying on academic credentials unfairly favors people from privileged backgrounds and doesn't necessarily correlate with skill as an engineer.
* Skipping the tech interview and just talking about the candidate's experience is prone to favoring bullshitters, plus you'll miss smart people who haven't had their lucky break yet.
* Asking "practical" questions tends to eliminate people without familiarity with your problem domain or tech stack.
* We all know how asking riddles and brainteasers worked out.
With leetcode, the curriculum is known up front and I have some assurance that the company has at least has some skin in the game when they schedule an engineer to evaluate me. It also tests your general knowledge and in some part intelligence as opposed to testing that you have some very narrow experience that happens to overlap with the job description.
neilv|2 months ago
another_twist|2 months ago
koakuma-chan|2 months ago
unknown|2 months ago
[deleted]
apt-apt-apt-apt|2 months ago
bochoh|2 months ago
Quick suggestions:
Excited to see where it goes — thanks for building.henwfan|2 months ago
GitHub sign in is on the way. Right now it is Google only, but I am adding GitHub so it feels more natural for devs.
For languages, the drills are Python first. Java, C++ and JavaScript will be fully supported by the end of this year across all problems.
The site is dark by default today. A proper light and dark toggle is planned so people can pick what is more comfortable for longer sessions.
Really appreciate you trying it this early and sharing where you would like it to go.
sumnole|2 months ago
skydan|2 months ago
androng|2 months ago
Fire-Dragon-DoL|2 months ago
Thank you either way, I purchased I license
kybernetyk|2 months ago
qwertytyyuu|2 months ago
dJLcnYfsE3|2 months ago
[deleted]
quibono|2 months ago
dzonga|2 months ago
now the same people in the industry advocating for leetcode are also advocating for vibecoding. I wonder if an LLM is made to do leetcode before approval for vibecoding.
day in day out, the software gets worse, delayed, shipped with bugs, very slow yet yeah prove to us you can build software by doing puzzles
if you advocate for leetcode - fxxk yxx.
australium|2 months ago
nialv7|2 months ago
JoeOfTexas|2 months ago
Most useful when you work with large datasets, if you can reduce a workload that takes hours into minutes or less, congrats, otherwise, you are forced to wait the hours. Either way, job security.
davidbensoussan|2 months ago
henwfan|2 months ago
I am working on a Python validator that compares the parsed code as an AST instead of raw text, so you can use your own variable names and small structural changes as long as the logic is the same. I am aiming to have the first version of this in by the end of December.
After that I want two clear ways to practice. One mode tracks the editorial solution for people who want to drill that exact version, while still allowing harmless differences like different names and small adjustments in structure. The other mode treats your own code as the reference and lets the objectives and feedback adapt to the way you wrote the solution, instead of holding everyone to one fixed template.
If you have thoughts on what would make the checker feel natural and fair for you, feel free to share them here and I will keep them in mind as I make these changes.
dragochat|2 months ago
you either:
(a) want DEEP understanding of math and proofs behind algorithms etc.
(b) can get away with very high level understanding, and refer to documentation and/or use LLMs for implementation details help
there is no real world use case for a middle-ground (c) where you want someone with algo implementation details rote-memorized in their brain and without the very deep understanding that would make the rote-memorization unnecessary!
unknown|2 months ago
[deleted]
komali2|2 months ago
I was watching a video recently talking about how Facebook is adding KPIs for its engineers' LLM usage. As in, you will be marked negatively in your performance review if your code is good but you didn't use AI enough.
I think, you and I agree, that's obviously stupid right? I imagined myself as an engineer at Facebook, reading this email come through. I can imagine two paths: I roll my eyes, find a way to auto-prompt an LLM to fulfill my KPI needs, and go back to working with my small working group of "underrecognized folks that are doing actual work that keeps the company's products functioning against all odds." Or, the other path: I put on my happy company stooge hat, install 25 VScode LLM forks, start writing a ton of internal and external posts about how awesome AI is and how much more productive I am with it, and get almost 0 actual work done but score the highest on the AI KPIs.
In the second path, I believe I will be more capitalistically rewarded (promotions, cushy middle/upper management job where I don't have to do any actual work). In the first, I believe I will be more fulfilled.
Now consider the modern interview: the market is flooded with engineers after the AI layoffs. There's a good set of startups out there that will appreciate an excellent, pragmatic engineer with a solid portfolio, but there's the majority of other gigs, for which I need to pass a leetcode interview, and nothing else really matters.
If I can't get into one of the good startups, then, I guess I'm going to put on my dipshit spinny helicopter hat and play the stupid clown game with all the managers so I can have money.
bko|2 months ago
More often than not a deep interest in a particular technical domain is a liability. It's like that guy that insists on functional programming design patterns that insists on a fold with tail recursion where simple mutation could have easily sufficed. Or endless optimization, abstraction and forced patterns. Bro, you're working on building a crud app, we don't need spacecraft design.
farhanhubble|2 months ago
I'm seeing this trend again in the field of AI where math olympiad participants are being given God like status by a few companies and the media.
Truth is even the most prolific computational scientists will flunk these idiotic interviews.
unknown|2 months ago
[deleted]
petesergeant|2 months ago
Ship has definitely sailed
HenryQuillin|2 months ago
another_twist|2 months ago
unknown|2 months ago
[deleted]
constantcrying|2 months ago
I get that some people feel forced into it, but nobody can believe that this is an appropriate measure to judge programmers on. Sure, being able to understand and implement algorithms is important, but this is not what this is training for.
henwfan|2 months ago
The reality for a lot of candidates is that they still face rounds that look exactly like that, and they stress out even when they understand the ideas. I built this for that group, where the bottleneck is turning a pattern they already know into code under a clock. Each step in the drills is tied to a first principles explanation, so the focus is on the reasoning behind the pattern, not trivia.
netdevphoenix|2 months ago
unknown|2 months ago
[deleted]
stack_framer|2 months ago
ohghiZai|2 months ago
Surac|2 months ago
neilv|2 months ago
It was most popular during zero interest rate phenomenon, when there were numerous investment scams based on startup companies that could have a very lucrative "exit" for those running the scheme, despite losing money as a business.
LeetCode falls out of favor when companies realize they need to build viable businesses, and need software engineers rather than theatre performances.
dsr_|2 months ago
"farming" is the same but without the difficulty: just doing an easy but boring task repeatedly because it gets you something else that you want.
ErroneousBosh|2 months ago
linguae|2 months ago
unknown|2 months ago
[deleted]
inesranzo|2 months ago
Please stop with the false urgency and borderline lying to people saying there are 17 spots when they most likely aren't.
Doing this to sell more is unethical and dishonest.
I think if this project didn't do this it might work and go far.
unknown|2 months ago
[deleted]
game_the0ry|2 months ago
But fuck leetcode. With AI, its obsolete at this point.
another_twist|2 months ago
clbrmbr|2 months ago
smetannik|2 months ago
Leetcode wants subscription, NeetCode wants subscription, and now - yet another one thing.