There seems to be a mismatch between your description of the problem and your description of the solution. If you are already able to grasp concepts, but not to apply them rapidly, then the solution ought to be on the application side, not on the comprehension side as implied by “turbocharge [...] ability to absorb and deeply comprehend”.
This being so, I suggest you practice doing problems. Lots of them. Go through your physics textbook (or calculus, or whatever) problem by problem, and do them all. Practice makes perfect.
In addition, it is my experience that people who say they grasp the concepts but can’t apply them haven’t actually grasped the concepts at all. I have yet to encounter anyone (including myself) who really fundamentally gets it (where ‘it’ may be physics, calculus, or even algebra) without doing a lot of dang problems.
Finally: It may be the case that your current learning effort is a bit misdirected. You say you want a career in a software-ish direction; you don’t need to know a whole lot of either math or physics for that. You mention pre-requisites, so perhaps it is unavoidable, but any additional effort besides coursework may be better spent on programming. Which, again, you should learn by doing exercises, not reading books. Fire up emacs, write “Hello World”, compile from the command line, run ditto. Iterate from there. For the sake of the absent gods do not start with an IDE or anything that hides the compilation step.
Based on JMiller’s statements regarding ‘prerequisites’, it implies that he is seeking college-level courses in computer programming, and attempting to pass the classes to get access to the advanced Computer Programming classes in a C.S. degree. As a C.S. major, I can assure you that Calculus is considered a prerequisite to many programming courses. Computer Science is (still!) considered to be primarily a Math degree.
@JMiller: I regret to inform you that RolfAndreassen is correct in most other regards, however. If you want to learn computer programming, do programming. Academic Computer Science is purely about the theory of computers—I managed to achieve a degree in C.S. with less knowledge in how to program computers than when I started, because the entire degree is made up of math theorems stacked up on top of each other. I know how to design a computer from transistors and write a programming language and operating system for it—you might be surprised how seldom that actually comes up in the real world. ;)
If you do want to learn Theory, then by all means, focus on math. If you want to learn Programming, then you find symbolic logic more helpful—my Philosophy 101 courses on symbolic logic are far, far more helpful to me in my programming (even today!) than any of my C.S. courses ever were.
I’ve seen https://www.khanacademy.org/cs to be a highly valuable resource if you want to learn programming. They’ve got some very potent innovations there, such as an in-website programming environment. It’s very nifty for beginning programmers. I’d recommend checking it out.
As I mentioned in another comment, I am not necessarily looking to become a programmer. I am more interested in big-picture design and management, but I figured that I ought to get as good fundamentals as possible first.
I’m not sure how comment notification works here, and whether you will auto-see what I say in other comments, but I am considering a career in software, but not as a programmer necessarily. I want to be more of an administrator/motivator, but I’m floundering in the dark as to how to go about gathering the necessary skills. Hence, I sort of defaulted to more school, since in Montreal university is really cheap. I’m still figuring things out :)
I want to be more of an administrator/motivator, but I’m floundering in the dark as to how to go about gathering the necessary skills.
Well, then I reiterate my comment about what mathematics background you really need: All the more so. You don’t need calculus to be a programmer; there’s mathematical intuition and there’s “coding intuition”, and both are built up by practice but they are quite different skills. And a manager needs even less to know the mathematical details.
So, you may be stuck with calculus classes due to the course structure of your school, but if at your current level you can struggle through and get acceptable grades, I suggest that your marginal unit of effort is likely better spent coding. (If you’re looking at a fail, or at insufficient preparation for a tougher course next year, that’s a different question.) And I strongly suggest that you do not want to take courses labeled “computer science”, except perhaps a very introductory one to cover data structures and big-O analysis; you want “software engineering”. Possibly the courses you are taking as prereqs can be reconsidered in light of this.
Because, in my experience, you cannot debug anything more than one step removed from the command line; and if you cannot debug then you cannot program. If you are unable to compile, link, and run your code from the command line then you will not be able to fix it when something goes wrong on a system with a slight difference from your dev setup; and they all have slight differences from your dev setup.
Perhaps you are right wrt my belief that I understand concepts. An example of what I meant is; while explaining what a derivative is in class today, I understood rather easily what it is used for and how it works. However, as soon as numbers were put on the board, it was harder for me to interpret what was going on.
The idea of a derivative is definitely worth understanding and you can understand it without being able to do a lot of actual derivatives. Most “practice” of doing derivatives is applying a set of rules you learn for exponents, chain rule, and so on. BUT if you understand the concept, you should be able to derive some or all of these rules, which is a form of doing problems. Make sure you can derive the rule for differentiating x^n from infinitesimals, for example. That always made me happier to apply the rules without thinking I was doing something arbitrary.
This is a good suggestion for improving math skills. As you get to moderately advanced math, “Prove X” rather than “Calculate X” is often a very helpful kind of exercise to do, and is especially good for developing your mathematical intuition, that sense of where to go next that’s also very useful in calculation problems.
There seems to be a mismatch between your description of the problem and your description of the solution. If you are already able to grasp concepts, but not to apply them rapidly, then the solution ought to be on the application side, not on the comprehension side as implied by “turbocharge [...] ability to absorb and deeply comprehend”.
This being so, I suggest you practice doing problems. Lots of them. Go through your physics textbook (or calculus, or whatever) problem by problem, and do them all. Practice makes perfect.
In addition, it is my experience that people who say they grasp the concepts but can’t apply them haven’t actually grasped the concepts at all. I have yet to encounter anyone (including myself) who really fundamentally gets it (where ‘it’ may be physics, calculus, or even algebra) without doing a lot of dang problems.
Finally: It may be the case that your current learning effort is a bit misdirected. You say you want a career in a software-ish direction; you don’t need to know a whole lot of either math or physics for that. You mention pre-requisites, so perhaps it is unavoidable, but any additional effort besides coursework may be better spent on programming. Which, again, you should learn by doing exercises, not reading books. Fire up emacs, write “Hello World”, compile from the command line, run ditto. Iterate from there. For the sake of the absent gods do not start with an IDE or anything that hides the compilation step.
Based on JMiller’s statements regarding ‘prerequisites’, it implies that he is seeking college-level courses in computer programming, and attempting to pass the classes to get access to the advanced Computer Programming classes in a C.S. degree. As a C.S. major, I can assure you that Calculus is considered a prerequisite to many programming courses. Computer Science is (still!) considered to be primarily a Math degree.
@JMiller: I regret to inform you that RolfAndreassen is correct in most other regards, however. If you want to learn computer programming, do programming. Academic Computer Science is purely about the theory of computers—I managed to achieve a degree in C.S. with less knowledge in how to program computers than when I started, because the entire degree is made up of math theorems stacked up on top of each other. I know how to design a computer from transistors and write a programming language and operating system for it—you might be surprised how seldom that actually comes up in the real world. ;)
If you do want to learn Theory, then by all means, focus on math. If you want to learn Programming, then you find symbolic logic more helpful—my Philosophy 101 courses on symbolic logic are far, far more helpful to me in my programming (even today!) than any of my C.S. courses ever were.
I’ve seen https://www.khanacademy.org/cs to be a highly valuable resource if you want to learn programming. They’ve got some very potent innovations there, such as an in-website programming environment. It’s very nifty for beginning programmers. I’d recommend checking it out.
As I mentioned in another comment, I am not necessarily looking to become a programmer. I am more interested in big-picture design and management, but I figured that I ought to get as good fundamentals as possible first.
I’m not sure how comment notification works here, and whether you will auto-see what I say in other comments, but I am considering a career in software, but not as a programmer necessarily. I want to be more of an administrator/motivator, but I’m floundering in the dark as to how to go about gathering the necessary skills. Hence, I sort of defaulted to more school, since in Montreal university is really cheap. I’m still figuring things out :)
Thanks so much for the post.
Well, then I reiterate my comment about what mathematics background you really need: All the more so. You don’t need calculus to be a programmer; there’s mathematical intuition and there’s “coding intuition”, and both are built up by practice but they are quite different skills. And a manager needs even less to know the mathematical details.
So, you may be stuck with calculus classes due to the course structure of your school, but if at your current level you can struggle through and get acceptable grades, I suggest that your marginal unit of effort is likely better spent coding. (If you’re looking at a fail, or at insufficient preparation for a tougher course next year, that’s a different question.) And I strongly suggest that you do not want to take courses labeled “computer science”, except perhaps a very introductory one to cover data structures and big-O analysis; you want “software engineering”. Possibly the courses you are taking as prereqs can be reconsidered in light of this.
Could you say more about why this is important for beginning programmers?
Because, in my experience, you cannot debug anything more than one step removed from the command line; and if you cannot debug then you cannot program. If you are unable to compile, link, and run your code from the command line then you will not be able to fix it when something goes wrong on a system with a slight difference from your dev setup; and they all have slight differences from your dev setup.
Perhaps you are right wrt my belief that I understand concepts. An example of what I meant is; while explaining what a derivative is in class today, I understood rather easily what it is used for and how it works. However, as soon as numbers were put on the board, it was harder for me to interpret what was going on.
The idea of a derivative is definitely worth understanding and you can understand it without being able to do a lot of actual derivatives. Most “practice” of doing derivatives is applying a set of rules you learn for exponents, chain rule, and so on. BUT if you understand the concept, you should be able to derive some or all of these rules, which is a form of doing problems. Make sure you can derive the rule for differentiating x^n from infinitesimals, for example. That always made me happier to apply the rules without thinking I was doing something arbitrary.
This is a good suggestion for improving math skills. As you get to moderately advanced math, “Prove X” rather than “Calculate X” is often a very helpful kind of exercise to do, and is especially good for developing your mathematical intuition, that sense of where to go next that’s also very useful in calculation problems.