The world of software development is filled with a countless number of various acronyms. These usually can't be used in public since people won't understand what you are talking about, but once a discussion starts among developers, knowing what a certain acronym actually means is a must.
There are literally thousands of them and being familiar with all of them is clearly impossible. Therefore, you can easily get lost when going through an article overstuffed with technical acronyms, so they should be used wisely.
In general, all the acronyms can be divided into two groups. One that is common for all developers, no matter what platform, are either for targeting something or for the programming language being used. The second is more specific and depends on many factors.
The following is the list of top 10 acronyms every single developer should be familiar with regardless of his other specifications.
API
An Application Programming Interface (API) is an exposed group of building blocks (routines, protocols, tools, and so on) that helps developers build software applications by putting these blocks together. The defined functionalities are independent from the underlying implementations, so they do not compromise each other.
Operating environments, hardware or applications, all these expose their own API to allow the desired interactions. That being said, there are literally thousands of APIs available like the YouTube API, Twitter API or Google Maps API to name a few.
GUID
A Globally Unique Identifier (GUID) is a 128-bit integer number used by developers to identify resources and for uniqueness purposes. GUIDs are usually displayed as 32 hexadecimal digits with several groups separated by dashes like "1310E308-66C0-439B-BC39-9FDF0984D2DC". There are several algorithms available to generate the identifier, so it is up to the developers which one will be used. GUIDs can be generated dynamically using an appropriate library, by using some online generator or built-in GUID generator inside your favorite IDE.
IDE
An Integrated Development Environment (IDE) is a software application that allows developers to be effective when creating the software. IDE is basically the programmer's best friend and the modern ones offer all the tools needed to maximize the productivity. Components like source code editor, build automation, debugger or intelligent code completion are a must. They also provide many features for compiling, authoring, modifying or deploying the software. New features are always added to the newest versions.
While there are dozens of popular IDEs out there, Visual Studio for .Net development and Eclipse for Java are by far the most popular ones.
OOP
Object-Oriented Programming is a concept/paradigm based on objects and their behavior. This modern programming philosophy is a follower of the old procedural programming used in C or Pascal and it is basically the only one used by the current modern programming languages like C# or Java. The idea behind OOP is to create objects similar to real-world objects that interact with the world (application) and other objects. These objects are referred to as classes and their behavior as methods.
Encapsulation, inheritance and polymorphism are the most characteristic features for OOP. In order to be a successful and skilled developer, mastering OOP is a must.
SDK
A Software Development Kit (SDK) is a set of several tools like APIs, sample codes and documentation that allows applications development for some specific platform like operating systems, hardware or video gaming consoles. An SDK is basically a mediator between the developer and the targeted system. Even though some SDKs may have a license attached, most can be downloaded online for free, so after some initial installation, you are ready to start building your own peice of code for the desired platform.
SOAP
Simple Object Access Protocol (SOAP) is a platform and language-independent messaging protocol that allows applications to communicate and exchange data over the network. Because it is a communication protocol, is must rely on some transport protocol (HTTP, SMTP, TCP, and so on) for message transmission and negotiation. SOAP uses XML for its message format that consists of a mandatory envelope and body parts. A header and the fault are optional. Extensibility, neutrality and independence are its three major characteristics.
VCS
A Version Control System (VCS) (also known as a revision control system) is a repository of source codes and any other documents (files) to be monitored for changes. This tool is essential for any kind of collaborative or distributed software development since it keeps the entire project's history and is less prone to errors and data loss.
The control system usually comes as a stand-alone application. While there are several options to choose from, Git, SVN (Subversion) and TFS (Team Foundation Server) are the most popular versioning control systems currently available.
SQL
Structured Query Language (SQL) is a standardized query language for manipulating the data stored in a database. The modern database management systems have their own "language dialect" and offer different extensions when the base commands are the same, so you can use the standard commands such as „Create“, „Drop“, „Select“, „Insert“, „Update“ or „Delete“ to accomplish nearly every task no matter what the underlying database system is.
There is a huge gap among the popularity of relational database management systems with Oracle, MySQL and Microsoft SQL Server being the most popular ones. Other solutions like Access, Sybase or DB2 are also commonly used.
WS
A Web Service (WS) is a standardized way to share business logic, data and processes through an interface across a networking without compromising the underlying layer. They allow a communication between independent and distinct systems without the need for any technical knowledge of each other. Web services use several open standards to describe and transmit the data like XML, SOAP, WSDL and UDDI.
XML
Extensible Markup Language (XML) is a software and hardware independent data description standard that is used to exchange the data over the network, mostly across the internet. Its text-based format ensures easy machine and human readability. Even though syntatically similar to HTML, XML has its own set of rules and does not have any predefined tags, so these must be defined by the developer.
This was my top 10 list of technical acronyms developers should be familiar with. What are yours? Thanks for reading and comments are more than welcome.