A hint of an undercurrent
Undercurrent: an underlying feeling or influence, especially one that is contrary to the prevailing atmosphere and is not expressed openly.
When I see job listings in software engineering, there are three frequently listed areas of study: computer science, electrical engineering, and mathematics.
That computer science and electrical engineering are on the shortlist is not surprising. The core curriculums involve a substantial programming component and promote an understanding of computer architecture.
The odd one out is mathematics. It is strange because the core curriculum is not particularly relevant for writing software. It’s easy to graduate with a degree in mathematics without ever having written a computer program. If fluency in mathematics is a qualification for software engineering, it has to be something other than exposure to software engineering concepts.
I think the selling point is instead that people comfortable thinking mathematically can pick up the concepts of software engineering quickly. Historically, computer science was a branch of applied mathematics, and having a solid grasp of mathematics makes it very easy to grasp concepts from data structures and algorithms. The idea is that people who understand math well are at a better advantage to learning the fundamentals of computer science.
My ideas are unimportant here; there’s enough data at major companies to know if people with backgrounds in mathematics make good software engineers. Since a mathematics degree remains an acceptable qualification, I think this suggests that people with strong math backgrounds do make productive and useful software engineers.
So let’s assume people with a background in mathematics make capable software engineers. This forces me to ask a strange question: Why was physics left out? I’ve talked with more than one recruiter who viewed physics as conceptually different than mathematics and doesn’t fall under the category of “closely related field of study”.
I have some unique perspective on this. I studied physics, so I’m familiar with this community and the subject matter. I’ve also taken an unholy amount of university coursework, to the extent that if I received credit for it I would also have additional majors in mathematics and computer science. Obviously, I’ve interacted with a lot of people from all three groups (which sometimes overlap as people double-major).
My goal is to convince you that physics is not an academic black box. It is a field of study conceptually equivalent to applied mathematics. Then I’ll briefly discuss little-know but impressive facts about the physics community. Finally, I’ll discuss how physics majors often do come out of university with programming experience. In my experience, people with physic backgrounds are pretty capable of succeeding as software engineers.
Physics requires the same fundamental skillset as mathematics
Physics is applied math and nothing less. It’s so math intensive that the majority of physics majors are also studying mathematics formally. The inside joke is that physics is the field of study you pick when you don’t get enough math through your math major. Also, a large percentage of double majors in physics and math often end up dropping the physics major; The most common reasons mentioned are that physics is too hard or requires too much time. The opposite is rarely true because physics is going to require you to learn large portions of the math curriculum regardless of whether or not you receive a degree.
Let me give an example. Mary Boas’ Mathematical Methods in the Physical Sciences, a book written in 1966, is still wildly popular 50 years later. (I can attest to this personally.) In it she lays out the mathematical techniques you need to use in physics on a regular basis at the undergrad level. This is the table of contents:
- Infinite Series, Power series
- Complex Numbers
- Linear Algebra
- Partial Differentiation
- Multiple Integrals
- Vector Analysis
- Fourier Series and Transforms
- Ordinary Differential Equations
- Calculus of Variations
- Tensor Analysis
- Special Functions
- Series Solutions of Differential Equations; Legendre, Bessel, Hermite, and Laguerre Functions
- Partial Differential Equations
- Functions of a Complex Variable
- Probability and Statistics
The latest edition (3rd) of this book has close to 900 pages. Every chapter is relevant by the time you are 5 courses deep in your undergraduate physics curriculum.
This is why it’s so confusing to hear that studying physics is considered conceptually different than studying mathematics. Both groups fundamentally have the same skillset.
Physics students are some of your best problem solvers
In 2009, when I took the MCAT, physics majors (N = 200) had the highest average score among all majors. This was interesting because the MCAT is not a physics-heavy test, but the best performers were physics students. It turned out this was not an anomaly and was happening every year I could pull data from. This trend of good performance held for all other standardized tests that collected data on score by college major, regardless of content.
- GRE: Physics has the highest composite score among all college majors. Mathematics is a close 2nd. source
- GMAT: Physics and math occupy the top two spots and toggle. source
- MCAT: Physics has the highest score most years. Biomedical engineering is a close second and sometimes takes the top spot. source
- LSAT: Physics and math occupy the top two spots and toggle. source
- SAT: (By intended major, not actual major.) Physical sciences* is second among all intended majors for composite score. First is interdisciplinary studies which is far ahead. Mathematics is a close third. source
*physical sciences is not the same thing as physics. Usually physical sciences combines physics, chemistry, earth science, and astronomy.
This is pretty exceptional. On every standardized test that measures score and area of study, physics students are doing extremely well, regardless of the test content. Math majors also do well, too, often competing for the top spot with physics. Also pretty high up is electrical engineering, but it never overtakes math or physics.
Physics students frequently have programming experience
There are a few factors which contribute programming exposure among physics students:
- Scientific computing is becoming more useful and popular in research to the extent that there are dedicated courses. They are usually called something like scientific computation, scientific computing, mathematical modeling, numerical analysis, or intro to Matlab. Some programs in physics may even have a programming requirement.
- Any physics student doing research is probably doing experimental work. Matlab is the lingua franca of numerical computing in a research environment, and student researchers have to learn to use Matlab. Matlab is a multi-paradigm, general programming language with the same features as C++ and Java. An open-source clone of Matlab is Octave, and they are functionally equivalent (or at least Octave is designed to be).
- Computer algebra (aka symbolic computation) is an extremely useful tool in physics. Computer algebra systems solve symbolic expressions (2x = 4) in the same way we would by hand, without mistakes. We typically have to work with expressions containing even ten different variables and constants, many with superscripts and subscripts, and the operations we need to do are much more complicated than the basic arithmetic operations (addition, subtraction, multiplication, division). It’s extremely easy to forget an exponent or some detail while reducing some expression. (Since you have to show your work, you have to write out all the steps.) If you make a mistake transcribing your equations, your final answer will be wrong and you’ll lose substantial credit, even if all the steps were correct. Mathematica is a popular platform which excels at this and has is own dedicated programming language.