IMHO a good place to begin is:

a) With Unity3D. There are lots of tutorials and free to use assets as well as code to use and learn from.
b) Modding existing games to learn how they function under the hood... Unreal or others.