In addition to just practicing a lot, I strongly recommend learning discrete stuff: combinatorics, basic number theory, basic discrete math, graph theory, linear algebra, algorithms, theory of computation, probability (not the theory, I mean get a book of problems), even group theory. If you really are philosophically minded, set theory and logic are good ideas too.
Some of these might sound scary, but learning the basics is not harder than calculus - get a few introductory books, and choose one you like. And pretty much everything I listed will be more useful to you in computer science / programming. I'm not saying you don't need to know calculus, it's just that studying the above will more directly teach you mathematical reasoning, as well as being of direct use in CS.
Ok, I'll keep that in mind. I definitely intend to expand my horizons.
Hi everyone,
I am graduating as a philosophy student shortly, and want to pursue computer science / programming/ something-of-that-sort.
I am currently taking some basic math (calculus) and physics (mechanics) courses in order to obtain pre-requesits, and to develop a basic framework. My problem is that I can grasp concepts and ideas, but when it comes to solving specific problems with actual numbers, I seem to shut down. Specifically, it takes me much more time (read "hours") to solve problems that ought to take 10 minutes. This is a particularly bad thing on tests and exams.
I believe that the difficulty I am having stems from so little exposure to symbolic reasoning in the past 5-6 years. I am looking for resources, techniques and advice to "turbocharge" (to use CFAR terminology) my ability to absorb and deeply comprehend technical material, so that solving problems becomes second nature.
Thank you so much for your time,
Jeremy