Life should be fun! Make it so. I program not so much for the end goal, but because programming itself is fun. Why? Well,
It's the inefficiencies in life that make it worth living.
Programming itself isn't efficient, although it is about making things more efficient. The most enjoyable kind of programming is the highly inefficient, high brainpower, challenging work that improves future efficiency. And, for life to be worth living, I find challenge to be paramount.
Learning new languages. Understanding new libraries. Grokking C++'s template metaprogramming. Rust's borrow checker. Concurrent programming. Even clean, simple Java 8's streams and lambdas. Or bigger: designing the classes of your project. Attempting to simplify the inevitable refactoring due to design errors. Frustration at limitations of your language. These all have something in common for me: they require brainpower. It's inefficient to do these things. I could just go in and code. Granted, that would rapidly devolve into inefficient tar, but that doesn't mean it would be inefficient at the time. It's these challenges, these inefficiencies, that make life worth living.
One of my mentors once said,
It's good to be lazy, if it is the right kind of lazy. -- D.A.
I've followed this mentality my whole life. While taking Calculus, I constantly pondered over its rules and quirks. I constantly searched for shortcuts that would make coursework faster. I constantly analyzed the mathematics to try to make sense of it. Consequently, it made so much sense to me. Integration by Parts became easy once I tried to integrate without it and derived it via the Product Rule. Volumes of solids of revolution became easy when I saw that variables were just labels. It didn't matter if I graphed the x axis as the vertical one.
And in programming, it is definitely good to be lazy. Yet, sometimes the laziness never effects increased efficiency in the project I wanted to be lazy with. Sometimes these are only learning experiences which help me become a better developer in the future. And I need it to be enjoyable. As it should be.
As Linus Torvalds said,
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.
I would go further:
Life needs to be fun. Whatever you do, you should do not because you expect to get paid, not because you want the approval of others, but because you find it fulfilling. You find it enjoyable. Your life is for you, not for me, but for you.
Perhaps your job isn't enjoyable, but you do it so you can enjoy your free time; that is fine. Perhaps you aren't finding anything enjoyable whatsoever, but you are doing what you know you should find fun. That is also fine. Just remember that life is short; this flash of color will be gone in the blink of an eye. Life is for living. Ensure that you actually are living it, not just surviving.