for collision and transforming 3d stuff i'd recommend linear algebra lessons ^.^
to get started don't use opengl or directx stuff, it's just frustrating, use (if you want to learn about 3d graphics) a rendering engine like ogre3d(c++) or jmonkeyengine(java)
pick something that supports a programming language you already mastered.
i don't recommend using udk or unity because in my opinion those engine abstract the whole "3d world" thingy to a pretty high level, which would result in learning how to use a particular game engine and not learning about 3d graphics
ogre and jmonkey abstract this also, but to an intermediate level, where you don't have to deal with opengl/directx and displaying single triangles in the beginning, you can start off learning how to use a scenegraph and stuff to display and transform objects in 3d space
well that's how a began graphics programming in school ^.^ now i study media informatics at technical university in vienna and learn about all the details behind the scenes, like programming opengl and mathematics