jeez get my own mentions now, don't know if that's a good or a bad thing
Anyways
@Elasity there's a lot involved with getting started. First off basic requirements: (not a definitive list and you can improvise with alternatives once you know how)
-PC to work on, its way too difficult to mod on a phone.
- The obvious items (phone or emulator to try app, the apk itself downloaded either from apkpure, app that extracts apk off phone, or something along those lines)
- Tools to work with, this highly depends on the particular app, if a Unity game (most popular to mod), you'll need a dll reflector of some type either NET reflector, dnspy, or similar. If not, you'll need a dex disassembler like apktool or an automated version like my ModIDE or Apkrepackager, both on this site. If working on shared library files (.so), you'll need a binary disassembler like IDA.
Ok so as far as rooted device, its not necessary in most cases, unless the modifications you do require root access, or you started off on an app that requires root anyways. You WILL need to sign the app when repacking if you aren't rooted to run it. Most tools that are for modding have that built in, including the two dex tools i mentioned above.
Your questions on how to get the app i mentioned above, so lastly, how to code... that is a HIGHLY vague question. Without specifics, only real answer i have for that is take your time to read thru and understand every tutorial here and any you find online, and start researching code types such as java, c#, and their machine bytecode equivalents (smali/dalvik and CIL/CLR for java/c# respectively)
Lastely, experiment. id recommend getting some older games and trying to modify those, see how it goes. Once you've read thru some tutorials and get a chance to try out, then any questions you have will be more direct and you'll be able to get more informative answers.
Good Luck!