Yes, G & M code are both a language. As for solid works, thats another playing field. Then your talking about design. Its good to know a little of both especialy if you want to creat parts in a CAD system and import them into a CAM system. Programmers usaully use CAM systems to program. It makes it easier. But i cant stress how important it is to know "code". You need to be able to read and fully understand what you or your software is writing. As for training, I think the best training is hands on. That and alot of reading. Look at some vidoes online to get an idea of how many different machines are really out there.
If you go here:
http://www.haascnc.com/custserv_training.asp#haastrain
...they have a few workbooks on there you can download. They show you how to read and write G & M code. They also show you good examples.