Edit this Page

A collection of terms and definitions used by computer programmers. Focused on approachability, clarity, and precision.

Instead of memorizing these terms, look up words you run across frequently that you may have a fuzzy mental model for.

API (Application Programmable Interface)

An API is a way to expose parts of a program so other programs may use it.

APIs can be built on the Web as Web APIs or they can be programs running on your computer.

An example of an API for a program are browser plugins. Plugins such as Hey Girl and Mustachio Redux use the browsers api to change pictures as you browse the web.

Read More

Absolute Path

In the context of an OS (*nix, Windows), an absolute (or full) path is one that points to the same location on the file system regardless of the present working directory, e.g. /Users/sandra/Documents/homework.txt.

In the context of the web, an absolute path is synonymous with the URL. At the least, it includes the protocol, domain, and a path to a file or resource, for example: http://www.sandra.me/homework/history.html. In this example, http is the protocol, www.sandra.me is the host, and /homework/history.html is the path.

Read More

Access Token

An Access Token, sometimes called a "User Token", is created when a user logs into an application using OAuth.

It is unique on a per-user-per-application basis. An Access Token can be shared publicly without risk. Think of them as the "username" for OAuth's Authentication.

Read More

Access Token Secret

An Access Token Secret, sometimes called a "User Secret", is created when a user logs into an application using OAuth.

Read More

Algorithms (Data Transformations)

Algorithms are how we transform data from one form to another. When programming, algorithms are sets of instructions stored as functions.

Read More

Attribute (HTML)

Metadata which provides more information about an element. Represented as key-value pairs

Read More

Authentication

Authentication is how an application identifies you.

At the user level, this is often by using a username/password combination. At the application level, this is often using an API Key and a shared secret.

Not to be confused with Authorization.

Read More

Authorization

Authorization is how an application decides what someone is allowed to do.

For instance; you may be allowed to deposit money into any bank account; but you can only withdraw money from your own. Authorization is usually dependent on valid Authentication.

Read More

Authorization Context

Many APIs that offer authentication via OAuth will allow your application to work in two contexts: the application context and the user context.

These 4 pieces of data are used to create the Authorization header that is part of an OAuth request.

Read More

Browser

A web browser is a tool for navigating the web.

Read More

Callback

A callback is a function which is passed as an argument to another function.

Read More

Class

A class is a definition of a data type. It tells you what methods you can call on a variables.

Read More

Client

A client is a piece of software that sends data to a server.

Read More

Client/Server Model

The client/server model is a common approach to sharing data between many programs.

The server is responsible for storing data and ensuring the client only interacts with the data it's allowed to, and the client is responsible for handling the user interactions.

Both the client and server must use the same protocol.

Read More

Column (Databases)

A column defines the name and datatype of a piece of data in a row.

Read More

Computer Program

A computer program is a set of instructions provided to and executed by a computer. Computer programs are written in a programming-language by a computer programmer.

Read More

Consumer Key

A Consumer Key, sometimes called an API Key, is used to identify your application when sending requests to a web service that uses OAuth.

Consumer keys are generated when you register your application with the web api. Consumer Keys may be shared publicly; as they are analogous to a username when using OAuth for authentication.

Read More

Consumer Secret

A Consumer secret, sometimes called an API Secret, is used to identify your application when sending requests to a web service that uses OAuth.

Consumer secrets are generated when you register your application with the web api. You should not share consumer secrets publicly; as they are analogous to a password when using OAuth for authentication.

Read More

Data

Data is pieces of information stored in or represented by a computer. Data has different types, and is frequently used by programs to do work.

Read More

Data Formats

Data formats are how you can represent data to either a person or program. CSV's are a type of data format designed to represent spreadsheets.

JSON is another common data format for transferring data between programs over the Internet. HTML is a data format for presenting data in a human readable way in a browser.

Read More

Data Types

Data Types tell us how some data is being represented and how we can interact with it. Knowing some data's type opens up a developers options for working with it significantly.

Read More

Database

A database is a way to store structured data for retrieval.

Read More

Datatypes

Datatypes tell you what kind of data a variable holds.

The String data type holds characters, the Array datatype is a list of other datatypes, a Hash datatype is a set of key value pairs. In ruby, Datatypes are determined by the class of the variable:

puts "hi".class
puts 5.class
puts [1,2,3].class
puts { :hi => "Ya'll" }.class

Read More

Encoding and Decoding

Encoding is the process of turning data from one form to another. I've encoded an important message: "Ogrammingpray isay awesomeay." Your brain has probably "decoded" this message into "Programming is awesome." Encoding allows you to put data into a format that other programs can read.

Read More

Encryption

Encryption is a form of encoding data so it is only readable by parties who are allowed to read it. It's often used for HTTP requests that carry credit card or password data.

Read More

Event

Programs can send and receive messages to each other. One way to work with this functionality is to implement the notion of events. With events, you can write code that says "when this happens, run this function".

Read More

Form (HTML)

Web forms collect data from a user.

They may contain many input fields. A forms action attribute states which URL the browser will request when the form is submitted. The method attribute states which request method will be used in the request and where the input field data will be stored:

  • GET - Input field data is sent in the url as query variables
  • POST - Input field data is sent in the body of the request.

Read More

Framework

A framework is a collection of code used to solve a set of related use cases. Most frameworks focus on developer productivity at the expense of precise control.

Read More

Function

A function is a way to store a set of instructions for re-use in a computer program. Functions are passed arguments as input and provide a return value as output.

Read More

Gem

A gem is useful Ruby code packaged up for you to use. They allow us to be more productive by providing solutions for common use cases.

Read More

Gitignore

The .gitignore file tells Git not to include a file in a given repository.

It's a list of files and patterns that match files to exclude when you run git add.

Read More

HTML (HyperText Markup Language)

HTML is a hierarchical, human-friendly markup language for the Web. Plain text is "marked up" with semantic elements that provide meaning, such as <p> for paragraph or <h1> for the primary header on a page. HTML is frequently presented to a user in a web browsers; though some desktop and mobile applications use HTML for their user interface.

Read More

HTTP (HyperText Transfer Protocol)

A protocol used to transmit data on the Web. It is client-server based and built on top of the Internet Protocol. HTTPS is an alternative protocol used to transfer data securely using encryption.

Read More

HTTP Methods

There are four main "verbs" used in web services:

  • GET - Retrieves data from the service
  • POST - Adds data to the service
  • PUT - Replaces data in the service
  • DELETE - Removes data from the service

Every HTTP Request uses one of these verbs in conjunction with a URL to change data in the web service.

Read More

HTTP Request

HTTP requests are one half of the Request/Response Cycle.

Requests are composed of a method, a URL, headers, and sometimes a body.

Read More

HTTP Response

HTTP Responses are returned from the web service to the client who sent the request.

Read More

Headers

Every HTTP Request and Response has metadata attached to it. This week, only a few headers are likely to be important:

  • Authorization - Identifies the sender of the request to the web serice
  • Content-Type - States the data format of the request or response body.

Read More

Heroku

Heroku is a service to serve web applications for others to visit. It is free, but you may want to pay for upgrades once you get popular :smile:.

Read More

Hyperlink (HTML)

A clickable element that tells the browser to navigate via the GET HTTP method to the url in its href attribute.

Read More

IP (Internet Protocol)

The Internet Protocol is a protocol that defines how computers on the Internet send packets of information.

Read More

Information

Information is when data is put to work. The arrival and departure times at all the bus stops is data. Using them to travel across the city is information.

Read More

Input Field (HTML)

An input field is used to collect data from a user within a web form.

Read More

Insert (SQL)

INSERT queries are used to add rows of data into a table.

Read More

Instance (OO)

An instance is used to describe a variable or value created from a class.

Instances may use any instance methods or instance variables their class provided.

Here the variable so_many_his is an instance of the Array class:

so_many_his = Array.new(10, "hi!")
puts so_many_his.class

Read More

Instance Method

An instance method is a method available to any instances of a given class.

Read More

Instance Variable

An instance variable is data stored within an instance of a class. It is prefixed with an @.

Read More

Interface

An interface is the names, inputs, and outputs of a piece of code. They are the knobs and handles we use to interact with the code.

Read More

Internet

The Internet is used to describe all of the different services like email, websites, chat, games, etc. that communicate over the Internet Protocol.

Read More

JSON (JavaScript Object Notation)

JSON is a very common data format used in web services. It is very human readable, and supported in many languages.

The following is Superman's hero information in a ruby hash and the JSON equivalent:

{
  :alias => "Superman",
  :name => "Clark Kent",
  :years_active => 60,
  :powers => ["flight", "xray_vision", "heat_vision", "invincibility"]
}

now in JSON

{
  "alias": "Superman",
  "name": "Clark Kent",
  "years_active": 60,
  "powers": ["flight", "xray_vision", "heat_vision", "invincibility"]
}

Read More

Key/Value Pair

A Key/Value pair is a way to connect data with human friendly names. Often key-value pairs are held within a container. Key value pairs are used everywhere in programming.

  • first_name = "Zee" - Defines a ruby variable named first_name with the value "Zee". The key in this case is first_name.
  • { :first_name => "Zee", :last_name => "Spencer" } - Defines a ruby hash which contains two key value pairs: key :first_name with value "Zee" and key :lastname with value "Spencer".
  • <a href="http://google.com">Search!</a> - Defines an HTML link which contains a key href with the value "http://google.com".

Read More

Library

A library is a collection of code to solve a particular use case. Most libraries provide more precise control than a framework but less precise control than writing an implementation yourself.

Read More

Metadata

A type of data which provides additional information about something.

Read More

Model (MVC)

A model is a class that represents a [database table]. Instances of the model represent rows of the table.

Read More

OAuth

OAuth is a protocol built on top of http to allow client applications to access a users data without needing to store their password.

Read More

Package Manager

A package manager is used to install applications, libraries, and frameworks onto a computer. There are two kinds of package managers: system package managers and language package managers.

Read More

Params (Sinatra)

Sinatra provides a hash of data from an HTTP request in a helper method named params.

Read More

Programming Language

A programming language bridges the gap between machine code and human language. It's a tool for humans to provide instructions a computer can understand.

Read More

Protocol

Protocols define how computers communicate. There is a wide ecosystem of protocols, each with different purposes.

They are often specified using a Request for Comment. There are many kinds of protocols with different purposes. SMTP, POP and IMAP are all for email; HTTP is for web pages; Jabber (or XMPP) is for chat, and many many more. Don't worry about learning the protocols details at the moment.

Read More

Query (Databases)

A query is a sql instruction sent to a relational database.

Read More

Query String

In the context of the world wide web, a query string is the part of a URL or web address containing data that does not fit into the conventional, path-like structure of a URL.

Read More

Query Variables

Query variables are used to pass data to the server in an HTTP Request.

They are part of a URL that comes after the ?; and follow the key-value pair format name=value&other_name=other_value.

Read More

RFC (Request For Comment)

RFCs are public documents outlining a standard in the technology industry. While exhaustive and academic, they provide all the information necessary to implement a standard. They are often used for reference.

RFC 2616 exhaustively documents how to implement HTTP. Don't worry, it's only 147 pages!

A more readable one is RFC4180 which specifies how to format CSV files in a mere 7 pages.

Not all RFC's are computer focused, RFC 2119 is an RFC for people who write RFCs!

Read More

Relational Database

Relational databases are built on the premise that data is useful primarily in how it relates to other data.

Read More

Relative Path

In contrast to the absolute path of a resource, the relative path points to a resource (or a file if on a file system) relative to the current location (the URL of the page being viewed, if on the web, or the current working directory, if in a file system).

This is useful if you don't want or need to provide a full URL to link to a resource on your site.

For example, if you want to link to a CSS file from your web page, you could include a <link> tag with an href value pointing to the CSS file, like this: <link rel="stylesheet" href="/styles/global.css">. This is a relative path because it assumes that the page linking to this CSS file is located in the same directory as the styles directory, which contains the file global.css.

Read More

Request/Response Cycle

HTTP works by connecting the client and web service for a single transaction.

The client sends a request to the server for processing. Once the server finishes it creates a response and sends it back to the client.

Read More

Resource (Web)

Given HTTP Methods are the "verbs" of the web, resources are the "nouns".

A resource is identified by a url;

Read More

Route (Sinatra)

Sinatra uses routes to define what code will be executed when an http request comes to a given path with a given HTTP verb.

Read More

Routing

In the context of web development, routing describes the process by which a web application receives a request from a browser and decides which code to run order to generate an appropriate response. This process lies at the heart of every web application.

Read More

Row (Databases)

A database row is a single record stored in a table.

Read More

SQL (Structured Query Language)

SQL is an easy to use programming language that is designed for interacting with databases.

SQL is designed for relational databases; and is primarily used to insert, select, and update data in tables.

To learn more:

Read More

Schema (Databases)

A database schema is a term used to describe the tables, columns in tables, and relationships between tables.

Here's an example of a schema describing a task list:

Sample schema

Read More

Select (SQL)

A SELECT query is used to retrieve rows of data from a database table.

Read More

Server

A server is a piece of software the manages data for it's clients.

Read More

Sinatra

Sinatra is a web application framework that makes it easy to respond to http requests in ruby.

Read More

Status Codes

Status codes are part of the response that carries quite a bit of information. Status codes start with the numbers 1 to 5, and each have specific meaning:

  • 1XX - Informational
  • 2XX - Success
  • 3XX - Redirection
  • 4XX - Client Error
  • 5XX - Server Error

The most common status codes are:

A more comprehensive list may be found on wikipedia.

Read More

Table (Databases)

A database table is used to store many rows of data.

Read More

URL (Uniform Resource Locator)

The Uniform Resource Locator, often called the web address, is a mainstay of the Internet.

It's used to identify where a resource lives on the Internet in a human-and-robot readable fashion.

Read More

Update (SQL)

An UPDATE query is used to alter the data stored in a table rows.

Read More

Web

The Web is used to reference interconnected web sites served up over HTTP. Easily confused with the Internet

Read More

Web API

A web API is a program hosted on on a web server designed to be used by other programs.

For example, using Yelp's API you could write a lunch decider app that interacts with their search API and selects a single location based upon whatever criteria you like.

While a web API is often used interchangeably with the term "web service", use of the term "web API" usually implies that the interface follows RESTful conventions. A "web service" is a more generic term for any web-hosted software that is designed to communicate with other software (machine-to-machine communication).

Read More

Web Service

A web service is a piece of software hosted on a web server that provides an interface for exchanging data between programs.

To use a web service, a program sends requests to a url and gets data back, often encoded in a format designed to be consumed by other programs, such as JSON.

Read More