1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Other Should a Future Physicist Master Calculus or Programming?

  1. Aug 13, 2016 #1
    Which skill is more important for Physics in the modern era?

    From what I know, Newton (along with some other fellows) developed Calculus in order to solve problems in Physics. Because of this, it's safe to say that Calculus is an essential branch of mathematics to understand when it comes to studying Physics.

    At the same time, today's computers can perform calculations in seconds/ minutes that would have taken days/weeks in the past. Does this mean that programming knowledge is more useful than mathematical knowledge when it comes to Physics?

    chalkboard-calculus-equations.jpg VS. code-944504_640.jpg
    Last edited: Aug 13, 2016
  2. jcsd
  3. Aug 13, 2016 #2


    User Avatar
    Science Advisor
    Homework Helper
    Gold Member

    All of the above.
    Each offers an important way of thinking that the other doesn't provide.
  4. Aug 13, 2016 #3


    User Avatar
    Science Advisor
    Education Advisor

    If you want to study physics seriously beyond high school, you NEED to master calculus. There's no way around it, I'm afraid. Yes a computer can do all of the calculations for you, but in order to make any advances in the field you need calculus to understand any of it. And anecdotally at least, it seems that often the biggest problems that university students have in understanding physics, are rooted somewhere in their calculus background.

    Technically you can get through an undergraduate physics degree without a lot programming knowledge, but if you really want to do anything in the field, the more programming skills you have the better. I think the only real questions at this point are what languages to focus on learning first.

    It turns out Robphys posted while I was typing and I agree - all of the above.
  5. Aug 13, 2016 #4
    Which programming languages do you think are most useful to the budding Physicist?
  6. Aug 13, 2016 #5
    I see, but both mathematics and programming are rooted in logical thinking, right?
  7. Aug 13, 2016 #6

    Vanadium 50

    User Avatar
    Staff Emeritus
    Science Advisor
    Education Advisor
    2017 Award

    Which skill is more important for a baseball player? Batting or fielding?
  8. Aug 14, 2016 #7
    Mastering calculus is a relatively short term project. When I went to school in the 70's, it took me, (if I am representative) one year to learn calculus, and perhaps another year to get sufficient practice with it to complete all my undergraduate physics. However, after calculus there is still differential equations, linear algebra, partial differential equations including special functions, a smattering of abstract algebra, and probability to round out a physicists education.

    Mastering computers is an long term project compared to mastering calculus alone, although perhaps mastering all required undergraduate physics in a physics program is an equally long-term task, as mastering computers.

    As far as computing languages all recommendations will be specific to your employers. In may work (I know I am in the minority) but I use the following programs and applications in the following percentage:

    FORTRAN 55%, MATLAB 35%, C++, Java, Perl, Python, and others 10%. Sometimes the job(s) require us to resurrect old code that was written by subject matter experts > 40 years ago, who have long since retired. This is the reason for the emphasis on FORTRAN. I have seen newcomers suggest rewriting the code in a modern language like Python. Unfortunately neither the newcomers nor I can start writing code until we know what the earlier experts did and how they did it. In practice, many of the esoteric techniques were not well documented. Those early researchers thought they would be around forever.

    I understand banking underwent a similar revolution, and needed experienced programmers in COBOL rather than a more modern language.

    My advice is to mix old with new.
  9. Aug 14, 2016 #8


    User Avatar
    Education Advisor
    Gold Member

    I'm going to dissent here a bit with others, you don't actually need to master either. If we're thinking along the same lines as to what "master" actually means.

    Do you need to know mathematics - of course. It's the way physicist concatenate information and model physical phenomena. Do you need to know how to prove the majority of mathematical theorems you might use, say in calculus as your example? Not for the majority of physicists, I would argue. So you aren't really mastering the field - that's what mathematicians are for - you're applying their work the same way engineers would apply physics. What you do need to know is how to use the tool given to us by mathematicians skillfully and correctly; as such, you need to be fluent in mathematics. I.e. how to derive, follow logic, appropriately "read" equations to garner the full information it tells you, etc. Obviously there some counter examples in physics where you do need complete mastery in some subject of mathematics, specifically in research areas that often collaborate heavily with mathematicians to develop new physics and mathematics, but for the majority I would assume, fluency is all that's required.

    Do you need to know programming? The answer is also yes. There is no avoiding it, you will eventually need to write code. Do you need to write flawless code, the quickest code possible, design your own compiler, or understand how exactly the machine is processing your complied code? Probably not. Again you need fluency here.

    So to answer your question OP, you need both skills. Which is more useful? Well obviously without fluency in mathematics at the level of current study, you won't go anywhere in the sciences - you shouldn't be able to complete a basic mechanics course without some fluency in basic calculus. You can skate by without knowing how to program basic code for a bit longer, possibly even to graduate school if it's not required of you during your undergraduate research (which it probably will be.) Eventually though your lack of programming skills will become a drag on your research teammates, and physics students are a resentful sort of bunch to those who don't pull their fair share of work for the group.

    Study both, take one or two courses in a programming language of your choice. Once you get the feel of how to program code learning a new language is a far simpler task. You can learn more advanced topics as you need them. I personally use a bit Matlab, some Labview (which is pretty rare in the physics world I guess, I find it fun), some C and C++, depending on what the task at hand requires. You need to also know write latex documents, this you should learn as soon as possible. If some of your undergraduate research experiences were like mine, you'll have the honor of typesetting any papers for the group. Mathematica, sage, python, java, etc are also used. Some old timers love fortran still - lot of old code out there in it - and occasionally you'll run into the dinosaur that still programs stuff or does their data analysis in excel. Some applications/compilers/libraries/whathaveyou are free, while others require licenses. What your group has licenses for will determine some of the coding preferences. The point is though, once you get familiar with language through a course or self study, transitioning to the majority of these other languages is quite easy.

    You probably won't have much leeway (read choice) in what you study for mathematics, you'll be required at a minimum to take the intro calculus series, linear algebra, and either PDE's or ODE's at any school worth going to. You'll probably also have a few mathematics electives. If a course called "mathematical methods in the physical sciences" or " Math methods in physics" is offered as an undergraduate course you should take it. Other good choices along with that course are complex analysis, probability, numerical methods, etc. You'll probably develop an idea of what extra mathematics you need to study when you develop a clearer idea of what subset of physics you want to study in graduate school. These courses are important, both for GPA for graduate school applications (if you blow off math because you believe programming is superior, you'll get low marks in these class inevitably), and for understanding the language of physics.

    I've neither mastered calculus nor programming, but I can use math as a tool and cowboy code to accomplish tasks in my own studies in graduate school.

    Not sure if this helps, but it's my own subjective experience. Mileage will vary.
  10. Aug 14, 2016 #9
    This was immensely helpful. So mathematics is just a tool; knowing how to prove every mathematical theorem that you use is not essential to someone studying Physics. This is a very interesting point of view.

    I believe that what you're saying is that, as a Physicist, it will be my job to "master" Physics, and that things like mathematics and computing are simply tools to help me achieve this goal.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted