I think writing a book about something technical. Either self-published (I like leanpub) or through a publisher. Doesn't have to be long, even a 30 page ebook is a big effort.
I have done this a few times and you learn so much and appreciate so much.
Other than that, I think it really depends on where you are starting. If you are a webdev, building an MVC framework. If you are a system programmer, building a basic HTTP.1/1 web server.
I think writing a book about something technical. Either self-published (I like leanpub) or through a publisher. Doesn't have to be long, even a 30 page ebook is a big effort.
I have done this a few times and you learn so much and appreciate so much.
Other than that, I think it really depends on where you are starting. If you are a webdev, building an MVC framework. If you are a system programmer, building a basic HTTP.1/1 web server.
How do you know that you know "enough" on a topic to write a book on it?
Maybe by researching until it feels like you do? I mean sometimes writing can be a learning process, not just a teaching one.
Text editor, compiler, BASIC interpreter, virtual machine emulator, CRUD application, web server, Lisp interpreter, Forth Interpreter, SQL database application.
Repeat the above as gui applications, and on the web.
An overdesigned, overengineered personal website
JPEG codec
MPEG 1 codec
Minimal HTTP server of actually used features.
An ERP and a blog engine with the first post being about it
A video game engine
A raytracer and an emacs mode.
A ProjectContractChargingPeriodProjectAccountReferenceVMFactoryBuilderStrategy Implementation
An ecommerce website.