Quote: "not necessarily, in a small company, perhaps, but in the bigger there are probably loads of programmers.
"
Programmers have the same kind of specializations that any other discipline has. You have AI programmers, graphics programmers, UI programmers, animation programmers, programmers working on tools, web development -- tons of different disciplines. On console projects (for Xbox360 or PS3, for example) you also have specialized programmers working with low-level code that communicates directly with the hardware and translates the game engine's instructions to specific machine-ready code.
About 3D programs, I recommend choosing a program you have access to and then sticking to it. Learning any program really well is what you need to do. In this sense, any program will do. People will advocate their personal favorites, but in the end, it's all about your own skills with the program. How comfortable you are with it.
I'd personally recommend Blender, as I use it for all my hobby modelling, but if you're at a graphics school some day you may have access to Maya, 3D Studio Max and similar, far more expensive, programs.
Blender can be downloaded from here: http://www.blender.org/download/get-blender/
Understand that all of the 3D programs available take some getting used to. Blender, being a free program, has tons of readily available tutorials in both video and text form.
But again, no matter which program you use, make sure to stick with it. Learn its ins and outs and learn them well.