Most programmers find the C programming language and assembler the most accurate language for their work, and x86 the preferred platform. As the topic is quite popular, there are many web pages related to it.
A beginner might want to create a bootstrap program writing his name on the screen. Nextly we implement protected mode, file systems or memory management, which way we choose.
A few known amateur systems:
The Linux operating system started as an amateur project.
wikipedia.org dumped 2003-03-17 with terodump