Things I was always right about

Some bloggers have strong opinions and are just right all the damn time. Like Joel Spolskey, and Jason Fried. I admire them, but I've never been that guy, or been that confident in my opinions. But damnit, some of my oldest opinions hold up. After nearly two decades of professional programming, I've looked back and thought about the opinions I originally had. Here are the ones that I'm convinced I was always right about.

People who don't maintain code are bad programmers.

They're either bad now or they'll be bad in the future. Maintaining code sucks, but 50%-75% of the cost of software is maintenance. Maintaining teaches us what we did right and wrong, and it teaches us a shit load of humility. I'm beyond happy that the current model of software development is small teams that fully own their own code base. (And yet...I recently heard a software architect list off his accomplishments for the last couple years, and it was a litany of cool, new technologies. At item two it was impressive, at item four it was incredible, at item six I asked myself what he really did.)

Grand architectures from the top down, with no domain experience, are always a disaster.

At best they are designed to scale in all the wrong places. At worst the wrong decisions are locked down early and are impossible to change without major refactoring. Early in my career I built a web application to could easily expand the amount of data it processed by two orders of magnitude, but when I was asked to add a second superuser I had to rewrite half the system.

You can learn anything.

Specifically extrovert-level social skills. I did. I'm convinced the entire introvert/extrovert split is a false dichotomy. You can even learn social skills from books, the best MBA books (e.g. How to Win Friends and Influence People, Seven Habits of Highly Effective People) are all about personal development.

Techy people who look down on non-techy people are the worst people

I hated that guy in college and I hate him now. All the best programmers I've known were friendly, well spoken, and loved teaching (I'm specifically thinking of you, Shawn Pierce, RIP).

Old ways of doing things that still work will never go out of style

SQL is still being used. JQuery is still being used. C is still being used.

Theory matters

Having a solid understanding of the theory of computation will pay off in the long run. It hones your mind, and makes you more adaptable to the shifting landscape of computing. Don't let the success of bootcamps fool you, people who spend a little bit of time on theory do better over the course of their career.


(Commenting is closed. Please tweet me at @landedstar instead.)

I agree with everything you say, my friend. Lately, when I've been searching for job opportunities as an ASP.NET engineer, nearly every single job description I've found includes Entity Framework & Angular. Entity Framework is a nightmare of an ORM full of black-boxes & leaky abstraction. Hand-written SQL will always be the best solution, coupled with Dapper as an ORM. Angular is a giant black-box that requires server-side compiling of TypeScript into JavaScript, multiple unneeded abstraction layers, uses its own complicated spagetti-code language used for parsing and rendering HTML templates, and is a 2MB download from each user who visits your website. It seems as though the architects who lead these projects chose their technologies purely out of popularity and without any concern for both developers & users. I could easily build an Angular replacement in under 50 lines of code, or, I could use jQuery + mustache. When I build applications, I always develop my database structure first along with all the stored procedures I need to maintain my database. Then, I work from there into the DAL, BLL, Web API, & presentation layer. Database-first approach to software development seems to be crucial for large teams that require consistency across the development life-cycle. Entity Framework destroys consistency and introduces security holes across various layers within a web application.

— by MARK A ENTINGH on 8th Oct, 2019