Mainstay Monday: SOLID - Dependency Inversion

This post is part of a series on the SOLID programming principles.

An Open Letter to Single-Language Programmers

I work with several programmers every day and I end up giving advice a lot. Let’s not discuss whether people are actually soliciting my advice, or not, but I give it regardless. This evening I started thinking about things I think every programmer should experience. There are lots of different topics that come to mind, including math, hardware, networking and so on. One thing that keeps coming back to me, though, is languages.

Sanitary Data: Maybe, Either and Deref

Although there are times when conditional blocks are necessary for functionality, it is common that conditions simply wrap up data which may be null or undefined. These kinds of conditional blocks have become so common that they are considered idiomatic code. The underlying goal, however, is to guarantee sanitary data.

Mainstay Monday: SOLID - Interface Segregation Principle

This post is part of a series on the SOLID programming principles.

All in the Family: Filter, Map, Reduce, Recur

In programming it is becoming more common to see functional patterns. Filter, map and reduce are all discussed openly in programming circles that live far away from Lisp, Haskell, ML and other functional languages. It is common, in Javascript especially, to see these functions being misunderstood and misused. My goal is to uncover the relation between these functions and provide a really deep understanding of what is going on when these common functions are use correctly.

Mainstay Monday: SOLID - Liskov Substitution Principle

This post is part of a series on the SOLID programming principles.

Refactoring with Boolean Algebra and De Morgan's Laws

Many junior and mid-level programmers working today have opted to skip a university education and, instead, have either gone through an Associate’s program or a coding bootcamp. Some programmers started their career out of college without a formal background in CS, getting degrees in physics, biology, chemistry or even liberal arts like journalism or design. Although these developers may be quite effective, there are many topics that are core to the standard Computer Science curriculum which developers without a formal CS education may not have been exposed to.

Mainstay Monday: SOLID - Open/Closed Principle

This post is part of a series on the SOLID programming principles.

Code Smells - Conditional Obsession

Jeff Atwood of Stack Exchange and Coding Horror fame wrote a post quite a long time ago about code smells and what they mean. A couple weeks ago, I discussed eliminating switch statements using hashmaps. In that post, I introduced a new code smell that I want to discuss in a little more depth - conditional obsession.

Mainstay Monday: SOLID - Single Responsibility Principle

This post is part of a series on the SOLID programming principles.