For a PC the easiest way is to have some kind of macro that latches onto the game and injects whatever it needs into the game.
For a console game prior to the likes of the PS3 and 360 then it is far harder. Ones before the game and button combos are easy enough but adding a whole new menu. On the later ones you would tend to want to go in at OS level, though even there it would possibly not be as easy as PC.
Skills wise it really depends what you are doing. If you are writing a macro and then telling it to watch for a given press, pause the game, inject a few numbers (maybe different ones at the user's discretion), and then return to the unpaused game then 10 minutes to learn the rudiments of some macro program, another 10 as injecting things into memory of other programs is not the done thing on PCs and might need you to understand a bit (still very possible though), and then however long it takes you to figure out where the memory locations you want for your
cheats are kept. A lot of game cheat programs have some pretty advanced logic these days as well (if your flag is accurate then artmoney is the program of choice around you, I have not played so much with it as it is paid and most other things seem to do just as well every time I go looking but it does have some fair functionality.
If you are going toe to toe with anti piracy, anti cheat, an and wanting a full in game menu then it could be a long road that sees you become a top flight programmer of sorts along the way. It probably will not entail that for most things and you will then have to learn about hooking code and how DLLs work and maybe how to generate a window in the game or abuse an existing one. I don't know if you can do it with
Likewise I don't know if it is the case with GTA5 but games which allow extensive modding, or people have worked up tools for it, might well allow some things there if the modders would need extra windows of their own. Have that and have some memory fiddling internally and you can have a cheat menu done in game. Most would not go out as DLLs as much as internal scripting, unless it was a fan driven hack rather than with developer released tools.