Quantcast
Channel: Path-Sensitive
Browsing all 26 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

The Partial Control Fallacy

Around the time I started grad school, I applied for a few prestigious fellowships. Winning is determined by several factors. Some are just an application, while some have a follow-up interview, but...

View Article


Image may be NSFW.
Clik here to view.

The Three Levels of Software: Why code that never goes wrong can still be wrong

Update 3/20/2019: Previous versions of this post used the terminology Level 1/Level 2/Level 3 and "Level 3 bug" a lot. I'm diminishing this in favor of "Runtime/Concrete Implementation/Logic level" and...

View Article


Image may be NSFW.
Clik here to view.

The Design of Software is A Thing Apart

Big up-front planning phases are out. Rapid iteration is in. With all this movement towards agile, it’s increasingly tempting to throw out the idea of having a separate design doc for software in favor...

View Article

Image may be NSFW.
Clik here to view.

The Benjamin Franklin Method of Reading Programming Books

Let’s face it, programming books suck. Those general books on distributed systems or data science or whatever can be tomes for a lifetime, but, with few exceptions, there’s something about the books on...

View Article

Image may be NSFW.
Clik here to view.

My favorite principle for code quality

Programming seems to become more about memorization every day, with advocates pushing for memorizing lists of design patterns and refactorings and the difference between “parameter coupling” and...

View Article


Image may be NSFW.
Clik here to view.

The Practice is not the Performance: Why project-based learning fails

Last night, I encountered an old post by Zach Holman where he pushes the idea that traditional school-based CS is useless; project-based learning is the way to go. I’ve heard this idea repeatedly over...

View Article

Image may be NSFW.
Clik here to view.

When your data model means something else

One of my coaching clients was designing a program, and came to me with a data-modeling question. The program was for making interactive stories like those Choose Your Own Adventure books. A story...

View Article

My Interview with Future of Coding: On the Maintenance of Large Software

A few weeks ago, I sat down with Steve Krouse of Future of Coding. Steve is a thinker who left full-time work many moons ago to pursue his dream of making programming better. His podcast is full of...

View Article


Image may be NSFW.
Clik here to view.

Book Review: A Philosophy of Software Design

I’m trying to read all the good writing about software design. This is very easy because not very much has been written: it turns out that it’s much easier to write an article about how to write a...

View Article


Image may be NSFW.
Clik here to view.

My Strange Loop talk: You are a Program Synthesizer (video + transcript)

In my day job, I work with programs that write, analyze, and transform other programs. You can't do this unless you have some special insight into how programs work. Much of my night job is finding...

View Article

Image may be NSFW.
Clik here to view.

Book Review: Practical TLA+

I want to make something clear: I am not, and have never been, an advocate for formal verification of production systems. Sometimes people think I am because I talk about ideas from that space, but my...

View Article

Image may be NSFW.
Clik here to view.

The Best Refactoring You've Never Heard Of

Update 12/31/2019: I have also written a guest post on this topic for PL Perspectives, with fewer details but more applications.Update 7/23/2023: This title is now a snowclone! See The best...

View Article

My Interview on CoRecursive: Advanced Software Design with Jimmy Koppel

A few months ago, I sat down with Adam Gordon-Bell of CoRecursive to share my thoughts on software design and self-improvement. It's actually a bit funny how I found him. "Corecursion" is an advanced...

View Article


Image may be NSFW.
Clik here to view.

Book Review: Elements of Programming

The C++ STL may be the most impressive achievement in language standard libraries. Where most programmers are stuck complaining that their language’s default strings aren’t performant enough, about...

View Article

Image may be NSFW.
Clik here to view.

Why Programmers Should(n't) Learn Theory

I’m currently taking my 5-person advanced coaching group on a month-long study of objects. It turns out that, even though things called “objects” are ubiquitous in modern programming languages, true...

View Article


Image may be NSFW.
Clik here to view.

Developer tools can be magic. Instead, they collect dust.

Update 6/14/21: Now available in Chinese.I started working on advanced developer tools 9 years ago. Back when I started, “programming tools” meant file format viewers, editors, and maybe variants of...

View Article

Image may be NSFW.
Clik here to view.

Abstraction: Not What You Think It Is

“Interfaces are abstractions” — Olaf Thielke, the "Code Coach"“Interfaces are not abstractions” — Mark Seeman, author of Code that Fits in Your Head and Dependency Injection“Abstraction in programming...

View Article


Image may be NSFW.
Clik here to view.

Solving the Dog-Bunny Puzzle with Program Verification Technology

As a high schooler in the 70’s, my father enjoyed playing the Star Trek game written for the Sigma 7 mainframe. You play as the Enterprise surrounded by Klingon ships, and to shoot them down you have...

View Article

Image may be NSFW.
Clik here to view.

How an Ancient Philosophy Problem Explains Software Dependence

Update Oct 30, 2022: Professor Daniel Jackson wrote a response to some of the criticism this post experienced on Hacker News.This post is based on a research paper at Onward! 2020 and loosely follows...

View Article

Book Review: The Senior Mindset

Software engineers are continuously improving in ways deep and shallow. The easiest things — surface knowledge like how to use git bisect or how to file an expense report — can be taught by...

View Article
Browsing all 26 articles
Browse latest View live