For starters, you'll need to be quite familiar with C. Rust is only used in the leaves of the kernel for the foreseeable future, and mostly in drivers at this point.
Aside from that, the code standards of the kernel are different from what lots of devs are used to (e.g. indentations are 8 spaces there), as well as higher in terms of minimum acceptable quality. And rightly so given the execution context.
Other than that, this forum isn't quite the right place for kernel development, as pretty much all of it is written in C. The aforementioned Rust drivers, taken together with all the infrastructure code for Rust, will likely total < 0.1% of all kernel code at this point.
There is "Linux Device Drivers" Linux Device Drivers, 3rd Edition[Book] which helped me create some simple drivers back in the day. It's a bit old now, I don't know how much of it is still relevant or if there is a newer version.