You can develop plugins in either Java or Kotlin. Kotlin is a lot more convenient and has many utility methods that make your life a lot easier, but it may be better to start with Java if you don't know anything about either of them.
This documentation will only cover the basics. If something isn't covered by it, try looking at the source code of other plugins to see how they do things.
Feel free to open a pull request to make this documentation better!