I think the major problem in CAD/CAM software is the creation of technical drawings.
I enjoy every new CAD program (solvespace, implicitCAD, nanoCAD, ...) when they come but each time it lacks this vital function. Even fat dinausors like CATIA, Pro/E, Inventor & co have a very poor ux at that level.
So I will recommend to master the rules of technical drawings and geometric dimensionning and tolerancing before going to deep in 3D. Likewise, BRep, CSG, constraints solvers, code/GUI will be just straightforward "plugins". It's safer and more useable in real life.
By the way, the Purdue University have some good innovative lectures, ie. Erep [1]
Computer Aided Engineering Design by Anupam Saxena & Birendra Sahay is cool and informative.
In general, the Indian Institute of Technology of Kampur [2] has some pretty intense books on the subject.
Finally, Knowledge-based engineering [127] will extend a lot your future awesome opensource haskell CAD package!