Currently, the only programming language supported to build Substreams is Rust, although more might be added in the future.
If you have experience with typed programming languages, such as Go or Java, you should be able to understand and learn Rust pretty easily. However, there some features and standards that are specific to the Rust programming language.
The Substreams team recommends following the official Rust by Example tutorial, which pretty much includes everything you should know about Rust. At the same time, the following sections cover some features and standards that are important when developing Substreams.