&gt; It is possible to be good at thinking computationally, but when it comes to platform specific implementation details and changing requirements not much can be done.<p>Its quite possible to be an expert at platform specific implementation details for various platforms, or to be good at analyzing new platforms and understanding those details, so that part is something one can be good at, or not, too.<p>Its also possible to be better or worse at designing software to be maintainable in the face of evolving requirements.