Hi, I'm Derrick. I'm a software engineer and sometime I write about it

What's Algebraic About Algebraic Data Types?

If you’re relatively new to the statically-typed functional programming scene, there’s a good chance you’ve encountered these fancy-sounding things called “algebraic data types” (often abbreviated as ADTs), and have been left feeling both a little intimidated by them and confused about what they have to do with algebra. That was my initial experience with them, anyway. I’d like to try offering a beginner-friendly introduction to them in a fashion that I think would have helped me understand them sooner.

Currying and Function Composition

I want to demonstrate two foundational techniques you need to know to practice functional programming: function composition and curried functions. We’ll learn what these terms mean, how to implement them, and the advantages of using them. These techniques are applicable in any programming language where functions are first-class values, meaning they can be passed around like any primitive value. For the purposes of this post, we will be implementing these patterns in JavaScript. Function Composition Function composition sounds fancy, but it’s really not. It’s actually just a way to automate something we all do manually anyway. Imagine we have these three functions:

Bootcamp Prep: How I Prepared to Get Into a Coding Bootcamp Without Any Prior Experience

Now that I’ve been accepted to Fullstack Academy’s software engineering immersive program, I figured I’d share how I prepared to pass the admissions test. Please note that not all dev bootcamps have a coding challenge in their admissions process. Some programs are designed for people starting at square one with zero prior knowledge. However, I would like to suggest to you that you’re wasting your time and money going to a bootcamp that starts you at square one. There are tons of free online resources that you can use to learn everything they’d teach in the first month. It makes no sense to pay tons of money to be taught the most basic aspects of programming and a programming language when all of that information is low hanging fruit freely or cheaply avaliable to you all over the internet.

Square One: That Time I Quit Grad School to Become a Programmer

This watershed moment in my life seems worthy of documentation. So I thought, “Why not start a blog? The internet can always use more blogs, right?”


Well, whatever. Here’s my blog.