Developers often use complex, industry-specific language when talking about their work. If you don’t have much experience working in software, it can be difficult to adequately explain your development needs or understand why there are certain roadblocks. However, you don’t need to read a library on software engineering to get over this speed bump. Knowing just a few key/baseline terms developers use will help you and your developer communicate far more effectively and efficiently.
API stands for “Application Programming Interface,” a term used to describe the idea of computers or computer programs talking between one another. Most of the time, this means code that you write communicates with code that someone else has written, typically over the internet. An example would be a search box for finding music, you might use Spotify’s API to collect data about an artist so you wouldn’t have to create your own music database.
Algorithms are sets of step by step procedural instructions that are followed to reach a goal. Normally the steps are implemented in code, but they don’t have to be. Algorithms are used for problems like “How do I solve a Rubik’s cube” to “How do I match people who need car rides with people who have cars?”
Short for “Application.” Often used as a synonym for “product,” but normally refers to the digital instance of the product, rather than the idea of the product itself. An app can be a website, phone application, or something else.
An application that can be visited with a web browser. A website has an address (www.differential.com) built with a front end and a backend.
The back-end is the part of the application that the user can’t see. The code for the back-end lives on a server and is responsible for delivering the front-end to the users, handling business concerns like scheduling emails, payment processing, data analysis, and other tasks that are performed behind the scenes.
Servers are computers that are specifically engineered to run the software of the website or API. When developers are talking about the “servers,” they are talking about either a machine in the cloud or their personal computers running code that powers the app’s backend.
Webapp refers to an application that is accessible via a website. Facebook, Twitter, Trello, Linkedin could all be considered Webapps. Typically websites that offer a high degree of interactivity are referred to as “webapps” vs sites that serve static content, like Wikipedia and The New York Times.
When creating phone apps, developers have two options. Write a traditional web page and package the site in a “shell” that allows it to be installed as a phone app, OR write the app in the language that the phone uses (Objective-C or Swift for iPhones, Java for Android phones). Writing apps “Natively” is typically more complex, and an app for both Android and iOS requires two separate code bases but is normally rewarded with a far more responsive user interface and ability to use the phone’s hardware features, like camera, gyroscope, and hardware accelerated graphics.
10. Push Notifications
You know when your phone buzzes and a message pops up on your screen without having the app open? That’s a push notification.
Realtime apps are apps that update immediately as soon as new data is available, without requiring the user to manually refresh.
Deploying is the process of releasing your app to its user base. This could be the initial upload of the code, submitting the app to the app store, updating the app, or adding new features to the app.
13. Pushing - (Git workflow)
When developers write applications, they normally have a central server, or repository, where they keep their code(imagine a dropbox for code). “Pushing code” is the action of taking code that exists locally and uploading it to that server.
When users use an application, the way they use that application is normally tracked and sent to a third party service. Analytics normally refers to data about how users use an application, what pages they visit, how long they spend on each page, which buttons are clicked, etc.
Data, or “transactional data” normally means the data that is central to your application. In a store front, your transactional data would be your customers, your products, and your invoices. In a Wiki type application, your transactional data would be your articles.
16. Version Control (VCS)
Developers use Version Control Systems (or VCS’s) to manage their codebases. This tool is used to facilitate collaboration and give developers the ability to keep track of the history of a codebase. These days most developers use Git, but some use tools like SVN or Mercurial.