I've always enjoyed programming and I always enjoy learning new langauges (anything e.g. Java/C#/Erlang/F#/Clojure/Ruby etc), but something's never seemed to enjoy it as much as I want.
One thing I'm curious about which I'm wondering if I might enjoy completely is CAD/CAM/CNC programming and design and I was wondering if anyone has any tips on where/how to start learning, what software there is out there that would be helpful for learning with (preferably free/open source and preferably for Linux, though I appreciate options may be limited).
Any tips would be appreciated.