I learnt Matlab by myself I would say. I got help from someone showing me how to work with Simulink (the principles of the blocks and few basic ones that you use everytime) and then yes the best is to borrow a book. There are different books :
- beginners books & internet: there you get idea of how Matlab works, how to build formulas and so on (if you know Java it'll be easy)
- advanced books & internet : unlimited amount of data and functions, I would advise you not to start with such books because you'll be lost very quickly and miss the advantages of Matlab
What are you gonna use in Matlab ? Just programming ? I must say that the internet community is very helpful but sometimes difficult to understand. The Matlab Central forum is also a good place if you have got questions, a lot of skilled people on this place to answer your questions.
But again the best is to try by yourself, helped with a book. Try to build a small program at first, and then make it bigger and bigger, using more and more functions ! I don't know your mechanical level, but for example you could build the model of a piston going up and down a cylinder, that would be a good start from which you could then add camshafts openings and so on.
For CAD programs it really depends. I know that Inventor is really easy to start with, very user friendly. Maybe you could try with this software, again making small parts and then using functions (holes, extrusions, etc.) on it to make it more complex. I don't know what software do you have at your disposal, if you are at school, etc.