I'm James Hague, a recovering programmer who has been designing video games since the 1980s. This is Why You Spent All that Time Learning to Program and The Pure Tech Side is the Dark Side are good places to start.
Where are the comments?
Things to Optimize Besides Speed and Memory
Whittling down a function to accomplish the same result with fewer instructions is, unfortunately, fun. It's a mind teaser in the same way that crossword puzzles and Sudoku are. Yet it's a waste of time to finely hone a C++ routine that would be more than fast enough if implemented in interpreted Python. Fortunately, there are plenty of other targets for that optimization instinct, and it's worth retraining your habits to give these aspects of your projects more attention:
Power consumption, battery life, heat, and fan noise.
Number of disk sector writes (especially for solid-state drives). Are you rewriting files that haven't changed?
Overall documentation size and complexity.
How much time it takes to read a tutorial--and the engagement level of that tutorial.
Number of bytes of network traffic. The multiplayer game folks have been concerned with this from the start, but now almost every application has some level of network traffic that might go over non-free phone networks or through slow public Wi-Fi.
#include file size. This is more about the number of entities exposed than the byte count.
Number of taps/clicks it takes to accomplish a task.
App startup time.
How long it takes to do a full rebuild of your project. Or how long it takes to make usability tweaks and verify that they work.
The number of special cases that must be documented, either to the user or in your code.
Blog entry length.
(If you liked this, you might enjoy "Avoid Premature Optimization" Does Not Mean "Write Dumb Code".)