I found this page to be a good starting point.
It is focused on using Eclipse, but if you use another IDE or editor the principles are the same. I use VS Code personally.
Also, looking at the source code for other modules is really useful to see how others have written their modules. Community Commons is a great start as there are a large number of very simple actions, and some that are a bit more complicated.