For every project, a coder is ultimately caught between 2 opposing ends of the spectrum. The first end is the goal, the purpose for developing the software. The other end is how the machine implements the code. I'm realizing that through development, we're trying to produce code with a balance between efficient implementation, readability, and of course the ability to accomplish the task it was designed to do.
You could say the most efficient implementations would always be written in some sort Assembly language, though this doesn't necessarily promote readability, and in todays fast paced world isn't always ideal. Good OOP techniques can improve readability though hinder performance.
As a programmer, one of my inspirations for coding is the challenge to produce "perfect" code, clean, readable, and executes seamlessly.
I've noticed as my projects have become bigger this has become more of a design challenge then anything. I've had to think long and hard as to how to make a larger project truly modular and completely decoupled.
I'm definitely no pro yet, but I've learned a lot in the last week. I've known about casting, pointers, inheritance, and polymorphism for the longest time though this week things definitely "clicked" into place as to how these things fit into the design picture.
Because of this, coding has taken on a new life