I collected together a bunch of links a while back.
Take a look here: How can I make my own Discourse plugins? (it’s ever so slightly outdated but mostly still relevant)
Be prepared to be patient - it’s quite a steep learning curve but utterly worth it! Good luck!