Physics A physics major is not good preparation for a career in software development

Click For Summary
A physics degree typically does not provide adequate preparation for a career in software development, as the curriculum focuses more on theoretical concepts and less on practical programming skills. Most physics programs offer minimal programming coursework, often limited to optional introductory classes, which do not equip graduates with the necessary skills for modern programming jobs. Employers generally expect candidates to have experience in relevant programming languages and technologies, which are rarely covered in physics education. While some successful programmers may have physics degrees, they often possess significant self-taught programming experience, making the degree itself insufficient for job readiness. Overall, relying on a physics degree as a pathway to programming careers can lead to misleading expectations about job qualifications.
  • #91
D H said:
Back on topic!

The following is based solely on my experience, so take it with a grain of salt. The reason that physics majors, EEs, aerospace engineers, et al are hired to do what is essentially a programming job (but with a strong scientific/mathematical/engineering flavor) is that as bad as they are at programming, the typical computer science major is even worse when it comes to scientific programming. Engineers, and maybe scientists, can be taught to program well, or at least to recognize why their programs aren't so good. The engineering principles that distinguish a good system design from a bad one also apply to software. A good chunk of CS majors took that route specifically so they would never have to take another math class again. They don't grok filters and noise, ODEs and PDEs; a lot of them don't grok and can't grok F=ma.

I agree - I have been told that nearly literally by Siemens many years ago: We rather can train physicists to become programmers, but the CS majors cannot be trained the physics / engineering basics. This was illustrated by: They will never get how a transistor really works.
 
Physics news on Phys.org
  • #92
Chill_factor raises a fair point. Not everyone wants, or indeed can, be "entrepreneurial" with their physics degree. In fact, I'm willing to bet that most people would prefer a clear-cut path! Do X, do Y, this will lead to B-lambda. After that do Q2, and voila. You're set.

(or something)

Not everyone finds living in uncertainty and stress exciting!

Dickfore said:
I just want to say that there are undergraduate programs in Computational Physics, which DO give a solid foundation in programming and knowledge in hardware.

http://www.kenyon.edu/scientificcomputing.xml
 
  • #93
chill_factor said:
Mathematical models for the natural world. True. I use Matlab for that. That is far different from programming something from scratch on C. The whole thing about "oh its just mathematical modeling"... no its not. There's a type of "programming logic", not just math, that goes into it. Some people can handle the math concepts and even do some numerical stuff on Matlab or Mathematica but can't handle the "programming logic".

Just for those who think chill_factor is fibbing:

If you look at some of the complex platforms out there that have all these crazy macro's, templates, build scripts, and a whole plethora of meta-data, interface definitions and so on, you'll see how different the environment is to software development as opposed to the environment of say MATLAB or Mathematica.
 
  • #94
chill_factor said:
Mathematical models for the natural world. True. I use Matlab for that. That is far different from programming something from scratch on C. The whole thing about "oh its just mathematical modeling"... no its not. There's a type of "programming logic", not just math, that goes into it. Some people can handle the math concepts and even do some numerical stuff on Matlab or Mathematica but can't handle the "programming logic".

The analogy I had in mind wasn't really about doing math with software, it was more along the lines of building an object model of a business process or perhaps a biological system.
 
  • #95
elkement said:
I agree - I have been told that nearly literally by Siemens many years ago: We rather can train physicists to become programmers, but the CS majors cannot be trained the physics / engineering basics. This was illustrated by: They will never get how a transistor really works.

The title of the thread does not refer to programmers; it refers to software development, which is something completely different. Anyone can learn the syntax of a language and write trivial programs for computational purposes (i.e. become programmers). However, reading through an O'Reilly book on C++ isn't going to teach you how to build an operating system from scratch.

In other words, programmer is to software developer as electrician is to electrical engineer. One is a trade, the other a profession.

Moreover, it is intellectually naive to suggest that CS programs don't teach engineering basics. CS at my university requires three semesters of physics (the first two are from the standard US sequence, while the third is focused on developing programs that act as models of the physical world), 1 in electronics, and 1 in circuits. The computer engineering requirements have lab and lecture components that are largely hardware oriented.
 
  • #96
Someone once said that 90% of software development consists of searches and sorts. Assuming that to be true (and ignoring the remaining 10%, which is actually a quite important 10%), a typical physics degree isn't going to teach you how to search and sort data to any acceptable degree.

Sure, you might get some basic C or C++ experience out of it, but were you exposed to the appropriate data structures and algorithms? Even assuming that you touched on binary search trees, is that going to be good enough when your new employer expects you to implement, say, a limit order book for an electronic market? Did your physics degree teach you that the appropriate structure in this case is a self-balancing tree? Can you implement a balanced tree in C++? Can you analyse the theoretical cost of each operation? Are you capable of comparing the theoretical performance with the real-world performance when your limit order book is connected to a NASDAQ ITCH feed and thousands of orders are added each second? Do you know enough about TCP/IP to be able even to connect your application to a market feed?

Software engineering is hard. A typical physics degree isn't going to provide you with the tools to be successful at it.
 
  • #97
Dembadon said:
The title of the thread does not refer to programmers; it refers to software development, which is something completely different.

I could not agree more - I have worked in the IT industry for many years. I picked the term programmer because the posting by D_H referred to

D H said:
... physics majors, EEs, aerospace engineers, et al are hired to do what is essentially a programming job (but with a strong scientific/mathematical/engineering flavor)...

and the Siemens jobs I referred to were programming jobs with an eng. flavor.

As I said in an earlier in this thread, this has changed over the past 15-20 years. When I entered the IT world my impression was that only a minority of my colleagues actually had a CS or any IT related degree or training at all - IT was a sector that was particularly open to people with uncommon CVs. Anybody from zoologist to philologist (genuine examples) could become a computer expert, developer, programmer, architect.

I guess this was simply a matter of supply and demand of trained computer scientists. Many self-educated developers or IT professionals I know went back to school later and worked towards a CS degree while employed full-time.

I do not at all underestimate the value of a CS degree.
 
  • #98
elkement said:
I could not agree more - I have worked in the IT industry for many years. I picked the term programmer because the posting by D_H referred to



and the Siemens jobs I referred to were programming jobs with an eng. flavor.

As I said in an earlier in this thread, this has changed over the past 15-20 years. When I entered the IT world my impression was that only a minority of my colleagues actually had a CS or any IT related degree or training at all - IT was a sector that was particularly open to people with uncommon CVs. Anybody from zoologist to philologist (genuine examples) could become a computer expert, developer, programmer, architect.

I guess this was simply a matter of supply and demand of trained computer scientists. Many self-educated developers or IT professionals I know went back to school later and worked towards a CS degree while employed full-time.

I do not at all underestimate the value of a CS degree.

I should have read the thread before posting, something I normally make a point to do; my apologies for misrepresenting your position.
 
  • #99
Dembadon said:
I should have read the thread before posting, something I normally make a point to do; my apologies for misrepresenting your position.

No problem at all - my last posting was a bit short, I should have also phrased it more carefully (that I quoted Siemens basically).

Thinking more about the long-term development of the IT pro / dev job market I sometimes wonder if the problems with older legacy systems stem from the fact that they have been once setup by all kinds of weird career changers ;-)
 
  • #100
Dembadon said:
The title of the thread does not refer to programmers; it refers to software development, which is something completely different.
It refers in particular to whether a physics major is good preparation for a career in software development. Software development is a big, nebulous term. Does it prepare you for developing a massive transaction based system that uses a number of different processes written in multiple programming languages and that needs to be extremely reliable? No. Does it prepare you for developing a massive system that simulates the weather, the performance of a new physical device, or rockets in space? That's a different question. Does it prepare you for developing a game with a significant physics engine? That, too, is a different question than that transaction-based system.
Moreover, it is intellectually naive to suggest that CS programs don't teach engineering basics. CS at my university requires three semesters of physics (the first two are from the standard US sequence, while the third is focused on developing programs that act as models of the physical world), 1 in electronics, and 1 in circuits.
That's not common. I just picked three schools off the top of my head, the University of Texas at Austin, the University of Maryland at College Park, and the University of Massachusetts at Amherst. Maybe one math class beyond freshman calculus and six to eight semester hours of science, any science. Biology and physics for poets, for example.
coalquay404 said:
Someone once said that 90% of software development consists of searches and sorts. Assuming that to be true (and ignoring the remaining 10%, which is actually a quite important 10%), a typical physics degree isn't going to teach you how to search and sort data to any acceptable degree.
For a typical science-based application it's the other way around. Only a tiny, tiny percent of scientific software involves searches and sorts. Most of the software involves mathematical models of some sort.
chill_factor said:
Mathematical models for the natural world. True. I use Matlab for that. That is far different from programming something from scratch on C. The whole thing about "oh its just mathematical modeling"... no its not. There's a type of "programming logic", not just math, that goes into it. Some people can handle the math concepts and even do some numerical stuff on Matlab or Mathematica but can't handle the "programming logic".
Yep. One of the concepts that I've found is hardest to teach engineers and scientists is that a statement such as is_ok = x<y; (a) is valid, (b) makes sense, and (c) can be very useful. The things you put inside an if test can be variables? And its best to not even start talking about things such as preconditions, postconditions, and invariants. Concepts such as cohesiveness, coupling, fan in and fan out, and complexity are also hard to get across.

Software development, science, and engineering require very different modes of thinking, different world views. Someone who can bridge those different world views and do so while avoiding the "jack of all trades, master of none" problem is rare -- and worth a whole lot.
 
  • #101
D H said:
It refers in particular to whether a physics major is good preparation for a career in software development. Software development is a big, nebulous term. Does it prepare you for developing a massive transaction based system that uses a number of different processes written in multiple programming languages and that needs to be extremely reliable? No. Does it prepare you for developing a massive system that simulates the weather, the performance of a new physical device, or rockets in space? That's a different question. Does it prepare you for developing a game with a significant physics engine? That, too, is a different question than that transaction-based system.

That's not common. I just picked three schools off the top of my head, the University of Texas at Austin, the University of Maryland at College Park, and the University of Massachusetts at Amherst. Maybe one math class beyond freshman calculus and six to eight semester hours of science, any science. Biology and physics for poets, for example.

...

Amazed, I took a look at the programs; it appears as if those institutions have separate paths for CS and Computer Engineering. The program I'm in is similar to College Park's "computer engineering" path, with the addition of Calc III, linear algebra, and a course in probability and statistics. Thank you for the examples; I didn't know there were non-ABET accredited options in CS.
 
  • #102
Dembadon said:
Amazed, I took a look at the programs; it appears as if those institutions have separate paths for CS and Computer Engineering.
The Association for Computing Machinery and the Institute of Electrical and Electronics Engineers have teamed to define curricula for fields relating to computing. They have developed five such curricula: Computer science, computer engineering, information systems, information technology, and software engineering. Computing, not surprisingly, is a very, very big domain.
 
  • #103
D H said:
For a typical science-based application it's the other way around. Only a tiny, tiny percent of scientific software involves searches and sorts. Most of the software involves mathematical models of some sort.

Two points spring to mind:

  • Without defining what you mean by "typical science-based application", it's difficult to comment further. But for the sorts of "typical science-based applications" of which I have direct experience (numerical relativity, machine learning, and DNA sequencing/analysis), searching and sorting represent a huge proportion of the code.
  • Even if we accept that searches and sorts are unimportant in scientific applications, the OP's argument was specifically about software development beyond the confines of scientific computing. My experience of the curricula at three universities (Oxford, Cambridge, and Princeton) suggests nothing to contradict the idea that physics graduates don't have a head start when it comes to actual software engineering. If anything, they're generally at a significant disadvantage compared to CS graduates since they lack the necessary knowledge of fundamental data structures and algorithms.
 
  • #104
If you want to do software development you should do computer science or software engineering.
 
  • #105
Best Pokemon said:
If you want to do software development you should do computer science or software engineering.

Imo, the tide is turning against CS grads with the hot new domain of multiscale modeling.

Something has to resurrect and breathe life into an intellectual pursuit for science and engineering. Right now, who wants to get a science Phd and be held accountable in the workplace? Or told you're over the hill at age 40? This is madness. Do you think the MBA's or MD's allow themselves to be treated like cannon fodder? Or face career change because they are obsolete or that their career is over because they screwed up?

Worst of all, is this absolute craziness of taking science/engineering at school and then pretending that working at wall street is somehow related. "I'm doing physics at Wall Street"...RUBBISH. To me, this is a failed physicist or mathematician.

No damn way am I going to engineering school to be some disposable grunt running about like some errand boy to meet the MBA's bonus.

Its high time that the engineering department is *NOT* treated as a cost centre that negatively impacts profits.
 
  • #106
rdg123 said:
Its high time that the engineering department is *NOT* treated as a cost centre that negatively impacts profits.

But the engineering department *is* a cost center that negatively impacts profits. Sales and marketing need *something* to sell, but the sad fact of the matter is that good sales and marketing can make money out of a so-so product, but bad sales and marketing will lose money with a great product.

That "build a better mousetrap" saying is just some engineer's wishful thinking.
 
  • #107
rdg123 said:
Imo, the tide is turning against CS grads with the hot new domain of multiscale modeling.

Something has to resurrect and breathe life into an intellectual pursuit for science and engineering. Right now, who wants to get a science Phd and be held accountable in the workplace? Or told you're over the hill at age 40? This is madness. Do you think the MBA's or MD's allow themselves to be treated like cannon fodder? Or face career change because they are obsolete or that their career is over because they screwed up?

Worst of all, is this absolute craziness of taking science/engineering at school and then pretending that working at wall street is somehow related. "I'm doing physics at Wall Street"...RUBBISH. To me, this is a failed physicist or mathematician.

No damn way am I going to engineering school to be some disposable grunt running about like some errand boy to meet the MBA's bonus.

Its high time that the engineering department is *NOT* treated as a cost centre that negatively impacts profits.

I do applaud your take on this (and I wish others had the same perspective), but unfortunately the nature of "free trade" and its associated side-effects is such that companies can (and will) look for people who will put up with the crap and part of the reason why so much stuff is out-sourced is for this reason.

Corporations have no borders and they will go to the place with the weakest human rights checks, laws, tax-codes, labor laws, and so on.

As long as everyone from the customers, to the governments and all the way back the workers (and even share-holders) support the way things are going then this will continue.

If you can show the MBA or suit just how much you and your co-workers really contribute (which at the end of the day for these kinds of people comes to their own bottom line as a result of your activities and your coworkers) then the arrogance can come to a halt.

Its like anything: if people think they can do whatever they want to other people, then certain kinds of personalities will. But it's like when a kid has a tantrum that when they get whacked in the face, they realize they aren't as high on the pedestal as they thought.

The best thing for these guys is honestly IMO to do your approach: figures mean nothing without actual produced goods and services. When they realize that they need people to actually produce stuff and they don't get people who do produce stuff (or they get people that do a really crappy job) then they should wake up and just be a pandering idiot until they get their "candy" back (i.e. their figures and bonuses).

The best thing that I think can happen is to let these idiots have their arrogance transcend into production so that their crappy goods go to market where people who want quality goods reject them and put them out of business.

If people want to buy these kind of crappy goods then let them: it is their choice, but the people who want other characteristics of quality will navigate towards companies that respect the people involved in the real production and those are the ones you want to work for.
 
  • #108
TMFKAN64 said:
But the engineering department *is* a cost center that negatively impacts profits. Sales and marketing need *something* to sell, but the sad fact of the matter is that good sales and marketing can make money out of a so-so product, but bad sales and marketing will lose money with a great product.

That "build a better mousetrap" saying is just some engineer's wishful thinking.

Businesses are in the game of producing things in one way or another. The amount of actual "production" is something that people can debate across industries and products but the idea still stands.

As mentioned before, there are different kinds of markets with different ideas of value and necessity. The markets that shovel cheap **** around day after day won't care about things that the markets with different values and the desire to pay higher premiums for better products do.

There is still some level of diversity, and people can look for places that have specific kinds of values (and I mean not just the BS that you see in a corporate vision statement).

A lot of people do like to buy worthless cheap crap that doesn't demand those differing values and for the companies that are in for there own reasons, they probably can and will put a much lower emphasis and importance on non-sales aspects of the business to a point where you have the scenario the above poster was talking about.

But not every business has the same view: the business will ultimately be concerned with sales since that is the way they can make sure the doors are open tomorrow.

But people naturally have different priorities: corporations have obligations to their share-holders and profits at any expense may be #1 (even if this strategy leads to poor decision making and destroys companies in some situations), but some people actually start businesses to solve a problem of their own.

Some start businesses because all the other options were crappy or because something didn't exist so they created it. Some people start businesses to take their craft and make it into a way that they offer as a service to the public in exchange for resources to keep doing what they do and to expand their own endeavor whenever possible.

Not all places have the values, incentives, or the desire to operate or think like multi-nationals or other big conglomerates do.
 
  • #109
rdg123 said:
Imo, the tide is turning against CS grads with the hot new domain of multiscale modeling.

Something has to resurrect and breathe life into an intellectual pursuit for science and engineering. Right now, who wants to get a science Phd and be held accountable in the workplace? Or told you're over the hill at age 40? This is madness. Do you think the MBA's or MD's allow themselves to be treated like cannon fodder? Or face career change because they are obsolete or that their career is over because they screwed up?

Worst of all, is this absolute craziness of taking science/engineering at school and then pretending that working at wall street is somehow related. "I'm doing physics at Wall Street"...RUBBISH. To me, this is a failed physicist or mathematician.

No damn way am I going to engineering school to be some disposable grunt running about like some errand boy to meet the MBA's bonus.

Its high time that the engineering department is *NOT* treated as a cost centre that negatively impacts profits.

I know mathematicians can do mathematical finance on Wall Street (http://en.wikipedia.org/wiki/Mathematical_finance). I'm not really sure how physicists would do physics.
 
  • #110
I think it depends on what kind of software development. I feel like I could definitely prototype scientific software in MATLAB or python with innovative data visualization and data interaction/analysis.
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 18 ·
Replies
18
Views
4K
  • · Replies 30 ·
2
Replies
30
Views
10K
  • · Replies 23 ·
Replies
23
Views
7K
  • · Replies 27 ·
Replies
27
Views
3K
  • · Replies 18 ·
Replies
18
Views
3K
  • · Replies 9 ·
Replies
9
Views
2K
  • · Replies 37 ·
2
Replies
37
Views
9K
  • · Replies 18 ·
Replies
18
Views
6K
  • · Replies 5 ·
Replies
5
Views
4K