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.