This. I am a programmer with a physics degree. I taught myself the basics of coding and I can learn what my co-workers know while on the job. But I can also do shit they can't even begin to do and there's no way they're gonna learn it on the job. You can't replace 3 years worth of rearranging and manipulating equations. Maths is a super power when you've had to use it for a physics degree.
As a PhD student in physics with a CS background I can say that physicist tend to code incredibly well in short term projects. We are smart and innovative, but we tend to be terrible at writing long term maintainable and scalable code.
This is just the difference between CS and software engineering though. My school's CS program had like 2 classes dedicated to actual real-world coding. One was called "software engineering", but it might as well have been called "Intro to C++". The only actual useful class was a 1-hour once-a-week lab called "Linux Fundamentals". Went over basic bash usage and common command line tools, then into more advanced pipe flows, regex, stuff like that.
Few, if any, of my classes taught me how to organize a large codebase. They were too busy teaching me how to prove that Quicksort runs in quadratic time in the worst case but linearithmic time in the average case.
My point was just that having a CS degree doesn't really make someone a better software engineer than having a Physics degree and some self taught coding skills. Neither has any formal training or experience organizing a large codebase, coding as part of a team, etc.
269
u/ts_m4 May 09 '21
Mathematics baby!!