I want to learn API, where to start?

I am trying to learn API to automate a few routine tasks in Solidworks. I know a little bit of programming.

Please guide me as to where to get information about basics of API programming.There aren't any books dedicated to Solidworks API training.

Which language one should learn for Solidworks API, is it C++, VB, .NET, VBA or C#.

Please help.

SolidworksApi macros