Coding Philosophy

A collection of 114 posts
The Arc of a Developer

The Arc of a Developer

In my recent interview for Legacy Code Rocks, I talked about the arc of a developer. I feel like there is this trajectory that people that go on over their careers. It's the learning and growth path that developers tend to follow.
4 min read
XP Explained

XP Explained

This book is considered a classic for a reason. It’s inspired a lot of coders over the years. I think the first time I had heard about it was from Stephen Loftus Mercer talking about pair programming. I’ve heard a lot about XP over the years since then
2 min read
Premature Reuse

Premature Reuse

Premature Optimization Premature Optimization is a phrase that is often heard in software engineering. It’s where you envision some potential performance bottleneck, so as you are writing the code, you go out of your way to create the most optimum code (ie written in a way that the compiler
6 min read
Its Already Hard, Don't Make It Worse.

Its Already Hard, Don't Make It Worse.

I was ice climbing with a buddy once in the Adirondacks We had hiked up to the bottom of Multiplication Gully, which is a very popular climb. It was 25 degrees out, but it’s a steep approach and we were carrying heavy packs so we hiked up in long
3 min read
Rituals

Rituals

Rituals are an important part of humanity. We’ve been performing them for years. They serve a purpose. They help us to form good habits. As everyday examples, you probably have rituals around brushing your teeth or around washing your hands. There are certain triggers that you use to tell
3 min read
Probably Are Gonna Need It (PAGNI)

Probably Are Gonna Need It (PAGNI)

YAGNI Software engineers like acronyms. It makes it easy to remember and refer to certain ideas. You’ve likely heard the acronym YAGNI, which stands for “You Ain’t Gonna Need It.” The premise behind this is that as software engineers, we have a tendency to overengineer things. We often
3 min read
Legacy Code Testing and Requirements

Legacy Code Testing and Requirements

One of the first traps you run into as a developer working on Legacy Code is to ask for the original requirements. It seems logical. Let’s figure out what the original designers of the machine intended. However for legacy code, that is a rabbit hole that will lead you
3 min read
The Joel Test

The Joel Test

The Joel Test is a classic. It’s been around for a while and is still increbibly relevant. It’s probably one of his most popular articles. I thought I would just go through each item and comment on how they apply to LabVIEW today. Looking at Joel’s list
6 min read
Back to Basics

Back to Basics

So here is another article from Joel on Software. In this article, titled Back to the Basics, Joel talks about the importance of understanding how some lower-level things (like how strings are stored and memory management) work. It’s a bit of a rant. His conclusion is that you need
4 min read
Peopleware

Peopleware

This book was recommended to me many years ago by a friend, but for some reason it took me a while to get around to reading it. I read it immediately after reading “Why Employees Are Always a Bad Idea” and a lot of the ideas seemed the same. Tom
1 min read
Code as Communication.

Code as Communication.

The code we write is a form of communication. We are telling the computer what to do, but we are also communicating with our colleagues. If we were only communicating with the computer, we could just simply write a bunch of 1s and 0s. That’s all the processor needs.
1 min read
Simplest Thing That Could Work

Simplest Thing That Could Work

It seems like I have been giving the same piece of advice lately: Start with the simplest thing that could possibly work and only add complication as you need it. Sometimes our natural tendency is to plan for all eventualities. We get so caught up planning for what might happen,
3 min read
Forget the word but

Forget the word but

In improv, there is this idea called “yes and”. The idea is that the first person goes and starts telling a story. The second person (and everyone after them) picks up with “yes and” and then continues adding to the story. What you want to avoid doing is using the
2 min read
The Freedom of Refactoring

The Freedom of Refactoring

Let’s talk about software design and refactoring in LabVIEW. When I first read Martin Fowler’s Refactoring book several years ago, it was very liberating. Prior to that, I had always had the idea that I had to get things right up front. It was kind of paralyzing. I
5 min read
Choosing a Language

Choosing a Language

I’ve decided to start a new series. I recently bought the book “Joel on Software” by Joel Spolsky. It is a collection of his blog posts. He still continues to produce more content today. Some of the articles in this book are a little dated but they seem to
2 min read
Coding Camps and Climbing Gyms

Coding Camps and Climbing Gyms

I have been a programmer for over 15 years and a rock climber for over 20. During that time I have seen a lot of changes in both. In some ways, the changes are very similar. Rapid Growth Both programming and rock climbing have taken off over the past couple
3 min read
Informative Versus Transformative Learning

Informative Versus Transformative Learning

In the technology field, particularly programming I feel like we tend to focus a lot on informative learning. Informative learning is just building upon what you already know. For instance, if you already know how a for loop works in C, and then you learn how to implement it in
1 min read