Coding/programming and ROM hacking are somewhat separate fields. Indeed you can be a reasonably accomplished ROM hacker and not be able to do so much as hello world in a programming language.
Certainly you can use ROM hacking to learn programming (be it by using it as inspiration to make a program to hack a ROM, or by using it to get really familiar with a debugger) and the best ROM hackers will usually be reasonably proficient in assembly programming (not the most useful format for day to day stuff but if you can handle assembly then the only troubles picking up harder stuff will be learning syntax and maybe losing some of the control you are used to).
As far as programs for hacking then there are none really. Most hackers will have a nice hex editor, a tile editor capable of doing things for the system they are looking at, an emulator capable of debugging (preferably full live viewers of cpu, memory, graphics and the ability to do a tracing session but if necessary you can get away with a bit less) but beyond that the tools vary a fair bit. For instance if doing text you probably want a relative search, on some systems there might be tools to handle known types of compression.
If using a prebaked program you will tend not to learn much other than how to use those programs or maybe how to make a good level, though that I dare say most of us around here would struggle to name more than 5 level hacks each over the whole franchise for mario, pokemon, zelda, sonic and megaman despite them being in the thousands each probably says most of what you need to know there.