@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.
I dont think the order is quite so critical as just making sure you cover it all.
If you really want to start and make the first thing you do a computer program before you know any math, do it, if your having fun who cares. But know your limits.
What i suggest is you try to dive in over your head, thats what works for me. You quickly learn what you cant do and why, and then when you circle back to learn the math so you can actually do it since you have explored the actual problem already the math makes a lot more sense.
So in short, I'd say, do it all at once. Pick math problems that are really really challenging, ones you know you probably cant solve, and try to do it anyway. Failure is the greatest teacher.
To this day I still work on "impossible" problems I first tried to tackle in my early days of coding.. some of the impossible problems I've solved, others I keep learnign more and more math and come at them again.. Even if I never solve them, even if they arent even solvable, every cylce I learn more math, i learn more programming, and I learn better design.
Success is a waste of time, failure is where its at :)
@drewfer @MutoShack@functional.cafe
@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.
@drewfer
Yeah, I looked at some of TAOCP, I'd definitely agree, it appears to be a fairly challenging read for someone new to programming. I'm seeing a couple books targeting math for CS, which might be a better option since it's targeted toward's my intended future use.
Based on your comment, do you feel someone new to the field would be wise to start with a computer math book (Concrete Mathematics), then move to SCIP, and then finally tackle TAOCP? It just seems like a lot of reading/study before studying the languages that are predominantly used today, but I do understand the need for a solid foundation.
Thanks!
@MutoShack@functional.cafe @freemo