You dont actually need Cafe Duet to make Java Modules, just a bit of knowledge about how they a structured and a few files needed by the master to spin them up at boot. Its not the simplest arrangement but once you know it you can just copy from module to module and change names in the meta-info files and .jardesc. Ive been making Duet modules for a while this way just with Eclipse.
Also you dont have to use SNAPI you can use you own formatted send-commands by setting 'IGNORE-UNKNOWN-NETLINX-COMMAND=true' in the axs module stub file. I was extremely irritated that someone at AMX chose the command format that used separator tokens that needed additional escaping in the resulting command string and were nothing like how folk had been writing modules for years... Im not going there. So instead you can still use the traditional command strings that most used on their own modules keeping compatibility with existing code and NetLinx modules.
Comparison: Module Data Exchange vs Duet SNAPI
MDX: DECODE-SOURCE=8926637|"The Man", Vol1|http://media.myserver.net
SNAPI: DECODESOURCE-8926637,"""The Man"", Vol1",http://media.myserver.net
The only char that needed escaping in MDX was pipe... As you can tell Im still salty about this.
An online course would be cool though. I cant imagine AMX moving away from Java. Having 1.8SE available on recent masters has really set the sky as the limit.
Personally I would like to see the ability to write the whole thing in Java. Netlinx is great but its lack of proper objects and libraries makes it very difficult to do complex multi-instance systems required these days.