A web API (application programming interface) is an application dedicated to transferring data. Accessing a web API is the same as accessing any other web page via a URL. The difference is APIs aren’t easy for people to read. The data returned by an API is formatted for machines.

This is a great intro to REST APIs

The purpose of an API is to share data from one application to another. …

Last fall I taught myself how to use Docker and wrote a piece titled Docker for Rails Developers. Since then, I have fallen in love with Python and landed a job as a data engineer. At work we are building a product that includes a Flask REST API, so I wanted to get more familiar with Flask.

Understanding the terminology Docker uses may help you understand why the technology exists. “Docker” is another term for a longshoreman, who is the person responsible for loading and unloading cargo ships. Back in the day, this process was incredibly inefficient. …

Chapter 14- Package Management

I refer to The Linux Command Line by William Shotts every day on the job. The book is freely available online at the link below. This is a short post sharing what I learned from the book about package managers.

Software is constantly being updated. Back in the day, if someone wanted to install and update software on their operating system, they had to download the source code of the software and compile the source code into executable machine code that could run on their operating system. …

I will say upfront that my motivation for learning how to use Vim is strictly practical. I cannot stand the silly arguments developers get into over which text editor they use, so please know that this article is simply encouraging juniors developers to check out a more traditional text editor like Vim.

I recently wrote an article sharing what I have learned from the book The Linux Command Line by William E. Shott. I reference this book every day at work as I am getting more and more comfortable with navigating an entire operating system without the use of GUIs. …

By William Shotts

I would consider Docker the most valuable tool in my tool belt as a software engineer. Docker is a tool that packages a software application and its dependencies together in a container so it can easily and reliably run on any Linux server.

Well what the heck is a container? A container is a self-contained Linux operating system that shares the kernel of the host operating system. …

Big-O notation can appear intimidating. I get it. But believe it or not, once you get past the math jargon, it actually is very accessible. Trust me, take a deep breath, and dive in!

Image for post
Image for post

Algorithms are simply step-by-step instructions for executing a specific task. We instruct the computer how to execute these steps in our source code, which is the code we write in our programming language of choice.

Big-O notation is a tool used by computer programmers to communicate how efficient an algorithm will run. …

Recursion finally clicked for me after watching this video:

I fear some may not watch it because the instructor is using C++, but he does such an excellent job explaining how recursion works that I thought I’d take a few minutes to explain recursion to those of us using very high-level programming languages such as Ruby.

Take the classic factorial problem. You may remember having to calculate the factorial of a number back in school. For example, the factorial of 5 is:

We can certainly take an iterative approach to this problem. It is important to note that 0! = 1. If we call factorial(0) below, then our function will return 1. If we call factorial(5), then we will use a for loop starting on line 4 to iterate from 1 to n = 5. …

Intro to Docker

Step 1: Install Docker and Docker Toolbox

Step 2: Define our Rails Project

Step 3: Create our Rails Project

Step 4: More Efficient Workflow

Step 5: Creating the Database

Step 6: Running the App

Step 7: Proceed as Usual

Quick Summary

I am very grateful I got turned on to Docker by my mentor. I had been building Ruby on Rails applications using a specific Vagrant development environment provided by the Firehose Project that allowed me to spin up a virtual machine with VirtualBox. …

There are many reasons why I decided to sign up for the Firehose Project, and now as a graduate who took on the agile team project, I am incredibly grateful I decided to drink from the firehose. In the first half of the program I spent several weeks on my own following tutorials for building Ruby on Rails applications, but there is nothing like diving into the deep end and building a complicated Rails application with a handful of other developers. It was an incredible experience!

Creating a chess application is a really challenging project that builds up quickly when you only have seven weeks to work together. It was the ultimate opportunity to practice writing concise and readable code, building thorough tests, receiving and giving code reviews, and communicating as part of a team. I am confident this experience has prepared me to be a high-impact contributor in an agile workflow. …

I am grateful I picked up a copy of Code: The Hidden Language of Computer Hardware and Software by Charles Petzold after hearing a shoutout for it on CodeNewbie. It is very accessible and incredibly interesting for all sorts of folks, but I think it is especially useful for people taking alternative means to learn computer programming beyond the traditional computer science degree route. I am only halfway through and have learned so much about why we write code the way we write code. …


Charlie Brooke O'Hara

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store