OpenSCAD is a free piece of software for creating 3D models and is available on most operating systems. It is a programming language based CAD program that you manipulate the files purely using text. It does have a built in compiler which will render the 3D model in a screen beside where you are working to see how your changes are affecting the model. This means it lacks many of the features that make for a good artistic modelling program. By using the text interface for creating the model, it makes it very useful for creating parametric 3D models for mechanical parts. It is very easy to adjust the size of 1 specific part of your 3D model as well as adjusting a whole portion.
This software is a good fit for someone who already has programming experience as it will feel very natural to use. On the other hand it is a usable tool by someone who is interested in getting into programming as it develops the basic skills of programming. OpenSCAD is a well documented piece of software so getting started is fairly straight forward. There are many guides on the internet to help you get started but OpenSCAD hosts some great starter guides on their website here. If you already have some experience with programming and OpenSCAD, they have created a cheat sheet. This Cheat Sheet has most of the commands you have access to as well as when you click the command it will take you to a write up on it. This makes for a very valuable tool to help you when you are trying to figure out how to create your object most efficiently.
If you have an interest in math and progamming it is definitely worth checking out OpenSCAD as a tool to add to your 3D modelling toolkit.