7 ms·
Show HN: Learn by rebuilding Redis, Git, a database from scratch
- acley 3mo agoI kept noticing that most "learn to code" content is tutorials you copy-paste, so I never had to actually understand why anything worked. I built this to flip that: each lesson gives you a real spec (e.g. implement the Redis SET/GET protocol) and you write the code yourself, then it actually runs against tests. Right now there are 80+ of these "build X from scratch" courses — Redis, a database, Git, a compiler, a container runtime, a raft KV store, etc. — across Python, Go, Rust, C, C++, and others. Would love feedback, especially on where the early lessons feel too hand-holdy or too sparse.
- AlexeyBrin 3mo agoFirst impression - looks great. Congrats. I have couple of questions: * I didn't see any AI mention, was it entirely built by humans without AI ? * Were will the tests run ? Your servers or the user machines ? If on your servers, how do you plan to cover the costs if you don't charge for the service ? * Will you accept contrbutions to the teaching material? How can other people contribute to the teaching material ? What is the AI policy for contributors ?
- acley 3mo ago1. We have temporarily removed it due to abuse (people are sending their own project code through it). 2. Tests are run on our dedicated server. I had some spare servers that we bought for our other platform echoed. gg 3. Will you accept contributions to the teaching material? ofc we would. I am also thinking of open-sourcing the project 4. What is the AI policy for contributors? You can use AI(we also used it), but the quality of the course, should match the rest of the courses
- SwiftyBug 3mo agoIs this going to remain free? I´d love an open source project like this where I could run the tests in my own machine.
- acley 3mo agoUnfortunately, I dont think you can run the tests on your own machine.Tests run on jude0, which takes about 20 GB of RAM to run
- DistractionRect 3mo agoSo what's the long term plan? If tests require a bunch of ram, scaling costs seem at odds with "Free Forever". Will you eventually have a pay walled tier? Or will you seek donations to pay for infrastructure or... I like the idea of a community FOSS or source available offering, I have a lovely pile of ram from the before times (when it didn't cost an arm and a leg).
- acley 3mo agoI am looking for sponsors and have already spoken with a few companies.
- SwiftyBug 3mo agoI have way more than 20GB of RAM. Can I run it in my computer? And why do I need jude0? If I had a suite of tests, I could just run code against them. Just like Exercism.
- mobius47 3mo ago[dead]
- acley 2mo agoI've implemented it Every course now has a "work in your own editor" mode: you can download a zip with the starter code for every lesson plus a run_tests.sh that runs the full test suite locally. After that, you can push it to a public GitHub repo, we will judge it based on our grading system and internal tests
- alexhans 3mo agoI've helped people get into programming face to face and also in a site I liked called exercism which also had a multi language track unit test passing style which I really value and it was purely command line, and I can't stress enough how important the command line is for me for people who want to dabble. Nowadays it's easier to get people into the command line because of Claude/codex. I only have browsed your site from a phone and looks interesting but I wanted to ask if you had particular insights around getting people to approach learning, design through tests, breaking down problems, without having someone to guide them. Have you had a chance to observe people using your tool and adjust or it's been mostly dog fooding something you would've loved to have.
- acley 3mo agoI've also trained over 100 students in Python back in 2021, when Python was often looked down upon in academia for not being a low-level language. My belief has always been that if someone learns one programming language properly, they can pick up another in no time.I've seen beginners spend months going through 300-video YouTube playlists just to learn JavaScript. People don't need 300 videos to learn a programming language they just need to understand the fundamentals and build projects. This project, however, is aimed at people who already know a programming language but want to understand what goes on behind the scenes of popular software: how it's designed, why certain architectural decisions are made, and what things to avoid.
- alexhans 3mo agoGot it. Different audience. Cool stuff. I'll take a better look as soon as I can.
- tccole 3mo agoOh that’s really interesting, I never considered that people using Claude has probably made the command line easier to learn.
- fragmede 3mo agoOr made it easier to not learn. Why memories arcane flags to tar when you can just ask AI to "deal with it"?
- xqb64 3mo agoHow does this differ from codecrafters.io?
- qainsights 3mo agoSigning up is throwing `rate limit exceeded, please try again later`
- acley 3mo agobots are hitting tons of endpoints bro. You can keep using the platform as guest
- philipallstar 3mo agoWhy are you talking like this?
- anonzzzies 3mo agoI do not care that much but all this user's comments sound like they are unprofessional / 10 years old. Careless commenting to everything while trying to promote a product that's already rather broken.
- docheinestages 3mo agoI think this person is exhibiting symptoms of prolonged conversation sessions with LLMs. Maybe this is how they talk/shout/scream at the AI, which has no emotions, and gladly accepts this tone of speech.
- acley 3mo ago[flagged]
- anonzzzies 3mo agoThanks!
- deleted 3mo ago[deleted]
- throw1234567891 3mo ago
- noobcoder 3mo agoa dafor of things are throwing errors, but good initiative
- isityettime 3mo agoThere's a book about doing this with Git. I wonder how much of the content is cribbed from sources like that, laundered through LLMs. https://shop.jcoglan.com/building-git/ https://shop.jcoglan.com/building-git/
- yakshaving_jgt 3mo agoI had a similar suspicion, though I thought the source material was from DAS. https://www.destroyallsoftware.com/screencasts/catalog https://www.destroyallsoftware.com/screencasts/catalog
- xqb64 3mo agoI've been watching this space closely and have been on the lookout for new releases. Besides "Building Git", there is also "Building a Debugger"[0], "Writing a C compiler"[1], "Crafting Interpreters"[2], "The Raytracer Challenge"[3], and a few others that I can't vouch for as they appear to be low-quality compared to the ones I listed out. The potential for technical authors in this space is enormous. [0]: https://nostarch.com/building-a-debugger https://nostarch.com/building-a-debugger [1]: https://nostarch.com/writing-c-compiler https://nostarch.com/writing-c-compiler [2]: https://craftinginterpreters.com/ https://craftinginterpreters.com/ [3]: http://raytracerchallenge.com/ http://raytracerchallenge.com/
- asibahi 3mo agoWriting a C Compiler is really good. I enjoyed myself doing it with Rust and Zig.
- xqb64 3mo agoYeah. I did it in Rust only, but went a bit farther than the book and implemented some constructs that were not found in the book. I was able to compile my other compiler written in C with the C compiler I had written in Rust.
- lohith1710 3mo agoLooks a lot like CodeCrafters, except it's free. Was it built by humans or AI?
- liberian 3mo ago[dead]
- jwpapi 3mo agoCan you add Zig?
- acley 3mo agojig is not supported by judge0 (our code execution library)
- jaylane 3mo agothis is such a cool idea.
- notLAYZ38 3mo agoKindly add support for Java
- khurs 3mo agoVibe coded AI Slop? Looked at the 'build your own os kernel' course and it doesn't appear to be written as a course by someone with experience in teaching that. A normal course also introduces and builds on concepts. This appears to be generic info laid into topics. https://shipthatcode.com/courses/build-os-kernel/lessons/what-is-kernel https://shipthatcode.com/courses/build-os-kernel/lessons/wha...
- acley 3mo agoVibe coded AI Slop? Feel free to contribute (even with the help of ai). If something closer to it exits I wouldnt have made it
- khurs 3mo agoMy advice to you: Mark each course as beginner/intermediary/advanced and the required background knowledge assumed. As people have very different levels of experience. Take some course in learning how to teach.
- acley 3mo agoI think you didn't go through a few courses. Many of those are actually better than whatever you can get from other places
- jimsojim 3mo agoI noticed the courses are tied to a language, any reason behind that design choice vs keeping it language agnostic and letting users choose their preferred language?
- chkmr 3mo agohttps://app.codecrafters.io/catalog https://app.codecrafters.io/catalog
- acley 3mo ago
- qiaobax 3mo ago[dead]
- conferza 3mo agoSo how much of this is AI-generated? I mean the content itself. Just curious.
- nojvek 3mo agoThe amazing thing about modern vibe coding tools, is you can make your own adventure course. I can say to codex "I know X, using X can you make a simple version of Y with Z features so I can understand how it works. Use this github code as inspiration"
- 10000000001 3mo agoBuild a ray tracer is down ): https://shipthatcode.com/courses/build-ray-tracer https://shipthatcode.com/courses/build-ray-tracer Nice site tho
- acley 2mo agoHey everyone, we've added GitHub integration. You can now use your own IDE, code locally, and push to a public GitHub repo we'll grade it and give you a score for each lesson. We've also added free certification: when you complete a course, you'll receive a free certificate that anyone can verify.
- Alfie_667 2mo agowhich part of Redis was the most surprising to rebuild ?