: Whats the difference between SDK and API? I know what they stand for both they sound very similar. Is it that the SDK contains API's?
API is Application Programmer Interface; it's how the program talks to some other system. For example, the Win32 API lets a Win32 program talk to the OS.
SDK is Software Developer's Kit; it's the tools, libraries, and documentation you need to use a system. For example, the Java Foundation Classes are necessary to program in Java.
This question is similar (in scale/meaning, though not quite in technical details) to asking what's the difference between the Linux kernel and the RedHat distribution.
If you had a program that made Widgets and exported a function, createWidget, then you could call that an API for other programmers to use when using your program. If you had a suite of tools and documentation that helped other programmers easily use this API, then you could call THAT an SDK. Typically, though API and SDK are used in narrower contexts. Usually they are fairly large interface or suites for APIs usually the reference is to lower-level system utilities (hence the Application in API as if the system program wasn't an Application (and it may not be)), SDKs are usually just for programming tools, not application specific tools.
"We can't do nothing and think someone else will make it right."
-Kyoto Now, Bad Religion