During the last couple of years, the LEGO company has developed a few software packages to improve its consumer's experience with LEGO. Some of these software packages are required to program certain LEGO robotics kits (Mindstorms etc).
Lego Digital Designer (LDD)
Lego Digital Designer is a free software download available at Lego.com. LDD is mainly used to virtually construct and animate your own home-made models and create a set of printable instructions for your model. After your model is completed, you can check the price of your model if you wish to buy the pieces required to construct it, as well as uploading it onto LEGO factory for other Lego fans to see.
Lego Mindstorms NXT/NXT-G
Lego Mindstorms NXT/NXT-G is a software package that comes with the Lego Mindstorms kit. It can also be bought from the Lego store. You can use this software to program your Mindstorms creation with an easy drag and drop, no programming skills needed interface.
There are many other unofficial software packages available for download on the internet. Some of this software allows the user to program the NXT beyond using the official software package by using NBC (NXT Byte Codes), NQC (Not Quite C) and many other programming languages (C++, Java etc).