Coding Vocabulary: How to Talk like a Programmer
Locally, where I live near New Haven, Connecticut, I lead a group called “Hack Night.” It’s a group of new and experienced programmers who get together to look at new technologies, work on projects, learn, and eat pizza. It occurred to one of the more “seasoned” developers during the discussion that we were using a lot of programming terminology and not defining it. I think often times, experienced programmers use an extensive amount of jargon that mystifies the development field.
While developers love jargon, it should be noted that developers often use jargon loosely and that the precise meaning of certain words is often not shared between developers.
Not being a big fan of jargon, in this post I want to define some of the common terms used by developers. The terms below came out of our Hack Night last week. Pick up these terms and you can talk like a programmer too!
Programming Terms (In No Particular Order)
IDE: IDE or Integrated Development Environment is a software application that provide an integrated set of tools for software development. There are several IDE’s that specialize in a particular language or technology. For example X-Code allows programmers to use the languages Swift and Objective C to build applications that run specifically on Apple products.
Version Control: Software that allows you to record changes to a set of code and enables recall to an earlier version of your code base. Git is a commonly used version control software.
Standards and Conventions: Guidelines for specific programming languages and technologies that recommend best practices for code style, documentation, testing, software architecture and naming conventions.
Libraries: A collection of resources used to build applications. Libraries may include prewritten code, precomplied code or templates that are used in the development process, often doing “heavy lifting” within a particular development technology.
Frameworks: Frameworks often provide a generic high-level implementation for software in certain problem areas. The Frameworks are meant to be modified to create specific solutions within a problem space.,
Tools: In coding vocabulary, tools are used to make certain parts of the software development process easier for the programmer. A debugger is a tool used to aid in finding bugs within software.
Sprite: An individual image element that will appear in an application. Most often associated with game programming a sprite might represent a single state in an animation of a character walking.
Zero-Indexed: In coding, when elements are part of a set, their position in the set is often numbered sequentially. In most languages the first position is zero, not one. When this is the case the language is said to be “zero-indexed”.
Procedural: A style of programming where tasks occur in a specified order. Procedural programming is less common today than in the past except in specialized task areas. Python scripts are often run procedurally.
Object Oriented: A style of problem solving applied to program where each element in the program space is broken down in to a series of objects. Each object can be described in terms of its properties and actions. Several programming languages are based around the object oriented paradigm. Java programming relies heavily on object orientation.
Synchronous: Events occurring at the same time. As applied to programming, synchronous events might include working with the user interface as a database look up is occurring in the background.
Asynchronous: Asynchronous events often are required to occur within a certain order. For example, saving records must occur asynchronously sinced only one user can access a record at any given time.