Quote Originally Posted by Xei View Post
After my undergraduate degree I'm planning on doing a PhD in computational neuroscience where they teach you the basics of programming, so I don't really need to worry about 'minoring' in it
I don't know, sounds unusual to be covering such basic stuff in a PhD curriculum. We have a computational neuroscience program in my department and the sense that I've gotten from talking to some of the grad students in that area is that they're expected to have some programming facility when they enter the program. But I haven't quizzed them too hard about it. In any case, it seems likely such programs would be pretty heavily biased in favor of accepting students with prior programming experience, even if it's not a formal requirement per se (although it may be).

Quote Originally Posted by Xei View Post
What I'm most interested in is a bottom-up approach so that I can understand what I'm doing really means.
In that case it sounds like the second book I linked to may be more up your alley. The title makes it come off as a straightforward book about hardware, but you can tell from browsing the table of contents that it makes plenty of connections to the higher levels as well. But like I said, I haven't read it.