The Ray Tracer Challenge by Jamis Buck. It uses Cucumber tests to specify the behaviour of the code, without giving you the code. Not a single weekend project. I've been doing it in C++ to learn about the modern language, but any language can be used.
The Ray Tracer Challenge
Jamis Buck
The Ray Tracer Challenge
5 readers recommend it across 5 discussions
Reader recommendations
That’s why I like The Ray Tracer Challenge. He gives you test scenarios and a little bit of pseudo code (sometimes). The actual implementation has to be done by the reader. http://raytracerchallenge.com/
The Feynman Lectures on Computation, Goedel's Proof, maybe Crafting Interpreters? I've been following the development of http://browser.engineering/ and it's so much fun to go through. Highly recommended! Mazes for Programmers is on my bookshelf. I've gone through the first few chapters coding along in Go and going on weird diversions. It's totally pointless, and I love it. There's also "The Ray Tracer Challenge" by the same author, which looks phenomenal.
Also recommended in this reply
The Ray Tracer Challenge[0] is super fun and language agnostic. It might be a good second project when learning a language. He also has a book about mazes that is great but ruby specific. Though you could adapt it to another language. The thing I like about the books is the emphasis on having fun. My understanding is Jamis used these projects to overcome career burnout. They are also good for exploring the basics of a new language though. I interviewed Jamis about this subject and burn out[1]. [0]: http://raytracerchallenge.com/ [1]: https://corecursive.com/025-burn-out-and-recreational-progra... (https://corecursive.com/025-burn-out-and-recreational-programming/)
Also recommended in this reply
i find that cpu based ray tracing is a good low-to-moderate effort project, specifically if you are getting into a new programming language f.e. lisp/modern-c++/rust/erlang(^^)/... there are plenty of books around which can walk you through the whole thing, however, of late, i have found that this: https://pragprog.com/book/jbtracer/the-ray-tracer-challenge is a pretty comprehensive. check it out ! approximately, on the same lines, nand-to-tetris is _very_ good as well.
Also recommended in this reply