Learning software depends more on the problems you will start to solve. Learning a software just for the sake of it will not make you any good. If you have no subject for it, there is no point in knowing a specific software in the first place.
On my current job, I had to learn Femap, Patran, Nastran, MathCAD, Advanced Excel and Microstation. On previous jobs, I had to learn SolidWorks, CosmosWorks, FloWorks, Catia, MatLAB, Primavera, MS Project, MAPLE, Ansys, LS-Dyna, Abaqus, LABView, CFX and Fluent to name a few softwares I came across in the design industry. Some of my friends work with Pro-E, Autocad, SAP, Inventor, SolidEdge, SACS, Vericut and specific or proprietary softwares in the CNC, offshore and metalworks industry.
For CAD, I like SolidWorks the best. I think you will find SolidWorks really useful in almost any design.
About MatLAB, there is no tutorial capable of showing what it can really help you accomplish with all the toolboxes available. If you are interested only in the Math aspect, not the programming, simulation, instrumentation and control environments, MAthCAD and other math softwares will give you a better start, until you come across a project that demands or benefits from more complex specific software, package or toolbox.