AutoLISP is AutoCAD's inbuilt programming language. AutoLISP is used to create programs that will automatically generate drawings. This is a procedural programming language. It is inbuilt i.e. if you have AutoCAD full version loaded on you computer then AutoLISP is already there. AutoCAD LT version do not have AutoLISP interface.
User defined customized commands can be added to AutoCAD using AutoLISP. These customized commands will perform the activities that we want to automate. The very simple example can be creating parametric shapes of any complexity. These shapes will be generated considering the parameters defined and values provided at the time of generation.
When there are number of different environments such as AutoCAD VBA, AutoCAD.Net, ObjectARX are available for AutoCAD Customization then why should we use AutoLISP? Very true! But if you have noticed, to do programming using any of the other environments you must be aware of the programming languages specifically needed for that environment i.e. if you want to do programming using AutoCAD VBA you must be familiar with Visual Basic. For AutoCAD.Net you should have programming knowledge of VB.Net or C#.Net. For ObjectARX you should be familiar with C++ & VC++.
That is not the case with AutoLISP. You can straight forward learn AutoLISP & simultaneously do the AutoCAD customization.
I will recommend you learning AutoLISP in following two circumstances.
1. If you are the first time programmer & not aware of any of the above programming languages
2. If you want to learn AutoCAD customization on your own without joining any training center
Almost all activities that you do manually can be performed automatically using AutoLISP. AutoLISP have rich set of functions that you can use to perform any activity in AutoCAD automatically. It has general programming fuctions for variable manipulation, decision control, loops, arithmatic opertions, error handling and function handling. And special functions such as geometric functions, display control functions, query and command funcitons, user input funcitons and object handling functions.