Download the UDK, CryEngine 3, Unity3D, Ogre3D , Panda3D and start looking at how they work. Some will come with source, some will just be a pipeline exposing some scripting or bridge language, but it will give you some insight into modern engines and how they are designed.
Game development have become so large that people usually specialize these days. Architect, Network, Game, Graphics, Physics, Audio, Animation, Tools etc.. those are the usual "big" fields people specialize in. You can try to do all but truth is companies are not looking for people who can do "it all", they are looking for experts who are the "best" in one or 2 fields. This is for large companies of course, smaller companies might have different priorities. Focus on what you like to do and become an "expert" in that field, learn good programming practices and expand your mind, stay curious.