Went away on a mini-vacation, that was definitely nice.
I have been writing code at both the low level bits and bytes level and the higher level 'object' level. It's extremely important to understand when one approach, say memory management of the heap versus GC is the best trade off for a given project. How many times have I heard, "I don't like GC because it is slow" or "Why would I want to bother managing memory when I need this to work now."
The truth is that, like the projects that many of us have to deal with, trade offs always exist and being closed minded is going to hurt you rather than help you many times.
Since software is by definition flexible, projects always evolve and the most difficult aspect can be just to predict where a project is going to lead.
Unfortunately, as the US stock market shows, we humans are not necessarily very good at predicting.