Great questions. First, some encouragement. By far the best way to become a programmer is to have a juicy project to work on. Which this certainly is ;-)
I'm not sure what the proper answers should be, but here goes...
1. Writing a plugin is easy. I would start there. That will bring you up to speed on Python development within Leo. Ask as many questions as you like. They will help other Leonistas who may be considering writing plugins or Leonine scripts.
2. Leo's markdown support is minimal at present, and Leo's rst3 code is extremely complex. Way too complex, but that can't be helped now. The only thing you have to know about the rst3 command is that it traverses an outline generating output text.
3. Next, I'd look at the Importer plugins and Writer plugins in leoPlugins(Ref).leo. The linescanner.py plugin contains common code for all importer plugins, contained in the Importer class. Many importers consist of just a few lines of code that modify the basic operation of linescanner. See this docstring:
leoPlugins.leo#Plugins-->Importer plugins-->
@file importers/linescanner.py--><< linescanner docstring >>
When you understand how linescanner.py provides "services" to other importers, you will understand (most of) how python allows classes to inherit methods from super classes. That's a big deal.
Similarly, basewriter.py contains common code used by most writer plugins. Writing is always easier than reading, so the BaseWriter class is much simpler than the Importer class in linescanner.py.
Most importers/writers come in pairs. Take a look at one such pair and study it.
Above all, feel free to ask more questions here.
HTH.
Edward