For exploit development, it is necessary to have a solid grasp of Assembly and C/C++. Maybe also Python. I provided some recommendations on my coding resources page on how to learn them.

Yes, companies like Microsoft have been moving from memory-unsafe languages like C/C++ for critical systems software to memory-safe languages like Rust. However, such migrations take a long time to implement and a significant portion of existing and new third-party codebases will remain in C/C++. And while there have been some recent discussions and rumors about rewriting the Linux kernel in Rust, significant actions haven’t been taken yet. I am not even mentioning that there are plenty of bugs that do not involve memory corruption. In other words: there will still be plenty of juicy targets to attack.

Afterwards, one can get started with:

Books

They can be a bit dated but introduce the topic well

Formal Trainings

We all need a guru’s help sometimes

Websites

Learning resources:

Training/Practice Challenges:

Tools