@MutoShack@functional.cafe @freemo @nyetoots
I started out in Zoology and then moved into a MS in CS later in my career. The advice @freemo is giving is solid. Anyone with a decent logical mind can do well at the practice of programming (writing good code, working with other developers, etc) but you'll be limited on the design side without brushing up on your math. If you've made it through Cal2 then you should have a strong enough grounding to pick most of the other stuff up. Discrete math and Linear Algebre would be good courses to look for online as supplements.
SCIP is a very good intro book but TAoCS is extremely dense and you'll most likely miss most of the nuance without the equivalent of an intro to algorithms course.
@nyetoots @MutoShack@functional.cafe @freemo
"[Computer science] is not really about computers -- and it's not about computers in the same sense that physics is not really about particle accelerators, and biology is not about microscopes and Petri dishes...and geometry isn't really about using surveying instruments. Now the reason that we think computer science is about computers is pretty much the same reason that the Egyptians thought geometry was about surveying instruments: when some field is just getting started and you don't really understand it very well, it's very easy to confuse the essence of what you're doing with the tools that you use." - Hal Ableson (author of SICP).
SICP will show you how CS people 'think' about programming problems and teach you your first language (a semi-toy language, useful for instruction) so it's a great first book. I haven't read the Concrete Math book so I can't really comment on it but I'd definitely encourage you to seek out a good algorithms course after that. I think Harvard has some free courses online. Then you'll want to learn a very high level language like Python for general applications. After that, what tools you learn will be more specific to what you want to end up doing.