Item 21: Treat Software Engineering as an Art, not a Science

The term "computer science" is literally the biggest crock of shit I have ever heard in my entire life.

The above sentence is obviously a grotesque oversimplification at best, and completely debased at worse, but now that I have your attention, I'd like to introduce you to how I think about writing code. I feel this is important because it creates a context which underpins a lot of the ideas I'll be discussing here:

Software engineering is an art form, where you take an abstract idea and represent it concretely with code. The rest is literally an implementation detail.

The gripe I have with people thinking about my job as "computer science" is that it just doesn't translate. Picasso was not a chemist, but a painter. Conversely, if you took a random sample of chemists and asked them to paint a Rembrandt, they would most likely fail miserably.

At the end of the day, artists breathe reality into abstract ideas, just like software engineers.