Home Images
Software Engineering
Infrequently Asked Questions

Overview

Ever been in a meeting where the conversation takes a technical turn?

Suddenly you're being exposed to terms and words that you've never heard before, but stay quiet to avoid disrupting the flow, or asking a silly question. Over time you develop a dictionary of unexplained terms and words used in software engineering, and a collection of infrequently asked questions.

This page intends to address some of those questions in simple terms...


Explainers

Ever heard something along these lines and wondered what 'S3' is? It's actually one of the easier terms to get your head around; an S3 bucket is simply somewhere to store files. Think of it like Google Drive, or Dropbox, except it's an Amazon Web Service (AWS) and allows you to store larger files. You can see an image of it HERE.

Lambdas can mean a few things in software engineering, but the above statements will typically refer to an Amazon Web Service (AWS). The service allows you to run code only when an event happens (e.g. button clicked on website, file is sent to your s3 storage bucket). The benefit is you don't need to worry about servers, which means less hands-on maintenance and you only pay for the processing power (or 'compute') that you need.

HTML is the code language that's used to structure a website and it's content. HTML code is read by a browser (e.g. Google Chrome) which transforms it into what you see as a user. HTML code typically consists of a few sections; 'head' and the 'body'. The head contains generic information about the webpage (e.g. the title that is shown on the browser tab), and the body contains the content of the website (e.g. headings, images, paragraphs).

CSS is used in the 'head' section of HTML to add style (e.g. color, font, etc.) to the headings, images and paragraphs that exist in the 'body'.

You can see an example of HTML and CSS HERE.

Hello world... huh? Ok, so often programmers create a 'hello world' version to test an idea / approach via minimal effort. It saves engineers spending lots of effort developing a full product or system, only to find out it's not suitable or feasible.

You might hear people talk about writing commands on the command line. On both a Mac and Windows, the command line interface (CLI) is called 'Terminal'.

When a command is typed into the terminal, the terminal will tell the operating system (the most important software on your device) to perform an action, or a series of actions. For example, if you want to create a file, you can write 'touch file_name.txt' in the terminal which will tell the operating system to create the file.

So don't take this literally... you aren't going to see your files floating around in the sky anytime soon. Ultimately, your file, system, software is stored on a physical device somewhere, just not your device. Instead it's stored on individual servers found at data centres and server farms around the world.

A positive to storing stuff in the cloud is that you can access it on multiple devices (think files on iCloud, Google Drive or Dropbox).

CDN stands for Content Delivery Network.

First, it's worth knowing that web content is stored on a physical server somewhere in the world. Without a CDN, the further a user is away from a physical server, the slower they may experience a web content stored there.

A CDN is a group of geographically distributed servers, all of which store a version of web content. This brings web content closer to more people, and as such improves the speed those people experience the web content.

For example, this website is hosted on server in London. It uses a CDN to ensure that if someone is trying to access it from afar, content is delivered from a server closest to their physical location to provide a faster, high-performance web experience. This website uses AWS Cloudfront, but there are other CDN providers, e.g. Akamai Technologies, Cloud CDN (Google), etc.

An API (Application Programmable Interface) allows two systems to talk to each other. APIs are able to understand requests (e.g. retrieve some data), tell a more complex system what to do (e.g. find the requested data in a database), and then return a response (e.g. some data).

So the API is the messenger, and a way of hiding all the complex code that actually executes requests behind the scenes.

The form at the bottom of this website contains a simple API; when you click the submit button, an API understands that action and tells some more complex code to send the response to my email inbox.

We can look at smartphone weather apps for another real world example. On most devices, the built in weather app is displaying third party data. The app calls the third party's API, which then requests and return weather information for the app to format on screen.

A plug in is a piece of code that can be used to add additional functionality to an existing piece of software (e.g. website, system, program, application).

A plug-in can also be referred to as an add-on or extension.

For example, the Google Translate Chrome extension adds a button to your browser toolbar. Click the translate icon whenever you want to translate the page you're visiting.

Available Chrome extensions can be explored HERE.

React is a JavaScript library of ready-made components that can be used to quickly develop dynamic web applications.

Buttons, forms, and sidebars are all examples of components.

Using React components to develop a website reduces the amount of code development and as such is more efficient than writing plain JavaScript without any using libraries (aka 'vanilla' javaScript). React is typically used for developing more complex web applications, and as such, wasn't used to develop this website.

React is open-source, meaning it's publicly accessible.



Help develop this page







Thank you - your response has been sent