I suggest you audit CS classes at Berkeley or Stanford if at all possible. I'm also a very practical programmer, but being exposed to the ides and theory are important, if for no other reason than you are aware they exist and gain an expanded ability to conceive of what is possible.