How much Computer Science do physicists learn?

In summary, physicists and physics students often learn and use programming in their research, but the extent of their computer science knowledge and training varies. While some may become proficient programmers, their skills may not be equivalent to those with actual CS degrees. However, they are still able to do software engineering, apps, and web development. Physics students may also learn and work on algorithms, discrete structures, automata, and computational complexity, but the level of expertise depends on the individual and their focus. Ultimately, while there is overlap between physics and CS, they are distinct fields with different areas of emphasis and expertise.
  • #1
kweba
43
1
How much Computer Science do physicists (both Physics professionals and students) learn?

I'm aware that it is common for physicists (and mathematicians) to learn and do programming as part of their research (computational science/physics). But how extensive are their CS knowledge/training and their CS core courses they take at university? I've read from the other threads here that most physics graduates do actually become programmers and computer scientists in the industry/corporate after they've graduate (commonly after a BS). I mean are they really as good as computer scientists and programmers that have actual CS/IT degrees? I've also read that most employers prefer people with physics backgrounds, even in CS/IT industry.

So do Physics CS's also can do software engineering, apps, web, and stuffs like that?

And lastly, I want to know specifically what CS concepts and knowledge do physicists learn and do? Do they also get to learn and work on Algorithms, Discrete Structures, Automata, and especially Theory of Computations/Computational Complexity (which can be math/proofing extensive)?

Thank you very much in advance!
 
  • Like
Likes Dhlomo Lephoma
Physics news on Phys.org
  • #2
I'm a sophomore who is probably going to declare Applied Physics as a major. I took a computer programming class designed for scientists/engineers. We learned C++ and MATLAB. We solved various basic problems in science/engineering disciplines. We didn't exactly become advanced C++ programmers because we would use MATLAB whenever it would be more efficient to use (such as in assignments that involved matrices or making graphs). We only used C++ for basic quantitative problems such as calculating resistance for a voltage/current input by the user.

I haven't taken any advanced physics classes yet but I bet I'll be doing more programming in the future.

I also noticed that a lot of videogame companies hire programmers with a physics or math degree. That's probably because game programming can get intense with things like 3D math and physics.
 
  • #3
kweba said:
But how extensive are their CS knowledge/training and their CS core courses they take at university?

I have taken exactly two computer science courses in my life, and both of them are online. Everything else, I taught myself.

I mean are they really as good as computer scientists and programmers that have actual CS/IT degrees?

Degrees in CS don't mean very much. One reason there are a lot of physics programmers is that it's rather easy to figure out someone's programming ability, and no one cares where and how you learned to program.

Programming is a lot like writing, and there are lots of English majors that can't write, and a lot of writers that do not have English majors.
So do Physics CS's also can do software engineering, apps, web, and stuffs like that?

Yes.

And lastly, I want to know specifically what CS concepts and knowledge do physicists learn and do? Do they also get to learn and work on Algorithms, Discrete Structures, Automata, and especially Theory of Computations/Computational Complexity (which can be math/proofing extensive)?

Depends on the physicist. It's possible for a physicist to have no CS knowledge. However, basic algorithms and computational complexity is pretty essential stuff for any non-trivial programming.

If you just take physics core courses and do no outside programming, then you aren't going to be a decent programmer. If you take physics courses and then spend most of your time programming, you'll get decent at it.
 
  • #4
Also the relationship between programming and CS is like the relationship between writing and being an English literature or linguistics major. It's possible for a physicist to be a professional programmer just like it's possible for a physicist to be a professional writer.

Conversely, there are excellent CS professors that make horrible programmers just like it's possible to be a brilliant English literature or linguistics professor and not be able to write a decent short story.
 
  • #5
A CS major would be able to build an operating system from the ground up. It is much more then simple programming. It is understanding how the more basic functions of compilers and operating systems, for example, work.

This is simply not needed by your typical scientific programmer.
 
  • #6
twofish-quant said:
Degrees in CS don't mean very much. One reason there are a lot of physics programmers is that it's rather easy to figure out someone's programming ability, and no one cares where and how you learned to program.

Depends on the physicist. It's possible for a physicist to have no CS knowledge. However, basic algorithms and computational complexity is pretty essential stuff for any non-trivial programming.


Sometimes I just don't know whether you just make stuff up or hear voices from radio static but saying a CS degree doesn't mean very much is hardly a good statement to make.

As Integral said, there is more to CS than just computational complexity and basic algorithms. In fact, non-trivial programming as you call it especially in the working world most of the time cares little about whether a program runs in [tex]O(\log_2 \log _2 n)[/tex]
 
  • #7
Two fish quant seems to be making the mistake Integral was trying to correct. "Computer Science" is not writing programs.
 
  • #8
I was going to say something similar to what HallsOfIvy said.

Architecture is to carpentry as CS is to programming.
 
  • #9
Integral said:
A CS major would be able to build an operating system from the ground up. It is much more then simple programming. It is understanding how the more basic functions of compilers and operating systems, for example, work.

This is simply not needed by your typical scientific programmer.

daveyinaz said:
...

As Integral said, there is more to CS than just computational complexity and basic algorithms. In fact, non-trivial programming as you call it especially in the working world most of the time cares little about whether a program runs in [tex]O(\log_2 \log _2 n)[/tex]

[tex]O(\log_2 \log _2 n)[/tex] efficiency? One can dream. :biggrin:

In all seriousness, I would like to echo these statements.

It comes down to a difference in emphasis. Of course, there is overlap between the two skill sets.

As a data point, I work in a computational physics group. My particular focus is the formal physical theory underlying the simulations we run as well as efficiency of our algorithms. So, most people in my group (and similar groups) tend to focus more on the mathematical side of the programming. Which libraries should we use? What are the best algorithms for this particular simulation? We consider the tradeoff between numerical (and therefore physical) accuracy and computational efficiency for a given problem.

As far as how much computer science I have learned, well, I took a couple of courses from the CS department as an undergrad. But the things that I do (listed above), I mainly learned from my physics and computational math courses. A lot of the actual programming just boils down to familiarizing yourself with the language.

In addition to the things davey and integral mention - and back to one of your original questions - computer scientists tend to be much better at developing software that other people are able to use easily. Hell, I can't even imagine trying to develop software with a GUI - it's just so different than the type of programming most physicists do on a regular basis. Physicists may be employed to do that type of thing, but I suspect they picked up the specific skills needed to do it somewhere other than a physics course.
 
  • #10
daveyinaz said:
Sometimes I just don't know whether you just make stuff up or hear voices from radio static but saying a CS degree doesn't mean very much is hardly a good statement to make.

For the purpose of getting employment as a applications programmer, it happens to be a true statement. CS ***degrees*** aren't important in that context. CS ***knowledge*** is essential, but you can have knowledge without a degree (and you can also have a degree without knowledge).

It's not like being a doctor, lawyer, or a civil engineer in which no one will look at your application if you don't have the right **degree**. The reason that physics Ph.D.'s end up as programmers rather than doctors, lawyers, or civil engineers is because employers don't care if you got the knowledge through a formal degree program or by reading cereal boxes.

As Integral said, there is more to CS than just computational complexity and basic algorithms.

Sure.

In fact, non-trivial programming as you call it especially in the working world most of the time cares little about whether a program runs in
O(log2log2n)

Disagree with the second statement (although part of this might be what gets defined as non-trivial programming). If you don't care about O(n) complexity/run time, then what happens is that you end up with a program that works perfectly well in your desktop test, but blows up when you throw non-trivial data at it.
 
Last edited:
  • #11
HallsofIvy said:
Two fish quant seems to be making the mistake Integral was trying to correct. "Computer Science" is not writing programs.

Which is exactly my point.
 
  • #12
A course or two in basic/intermediation C++ (some vectors and OOP) is all you really need. I course in some applied numerical methods in addition is all I ever had and I spend most of my time doing computational engineerig/physics.
 
  • #13
So do Physics CS's also can do software engineering, apps, web, and stuffs like that?

And lastly, I want to know specifically what CS concepts and knowledge do physicists learn and do? Do they also get to learn and work on Algorithms, Discrete Structures, Automata, and especially Theory of Computations/Computational Complexity (which can be math/proofing extensive)?

Thank you very much in advance!

Physicists tend to learn as much computer programming as the physicists care to. Many of them are self-taught on some level. Self-teaching a subject seems to have a randomizing effect on the precise skills one develops. If, for instance, the physicist found that they were really interested in Artificial Intelligence or building Security; then that's what they'll learn.

I can put it this way... Richard Stallman, and Bruce Schneier both started off as physicists and became brilliant programmers. If you've never heard of them, you can look them up. They're interesting people.

If you study physics, then the potential for you to do something like that is there. If you're interested in programming; do it. If you find something cool that applies programming; go for it. The more you learn, the better you'll be.
 

What is the importance of learning computer science for physicists?

Learning computer science for physicists is crucial because it allows them to analyze and process vast amounts of data, simulate complex systems and equations, and create models and visualizations to aid in their research. It also helps them to develop critical thinking and problem-solving skills.

How much computer science do physicists typically learn?

The amount of computer science that physicists learn varies depending on their field of study, but most will have a strong foundation in programming languages such as Python, C++, and Fortran. They may also learn about data structures, algorithms, and numerical methods.

Do physicists need to be proficient in coding to be successful?

While proficiency in coding can be beneficial for physicists, it is not always necessary for success in the field. Many physicists collaborate with computer scientists and other experts who have stronger programming skills, allowing them to focus on the theoretical and analytical aspects of their research.

What benefits do physicists gain from learning computer science?

Learning computer science offers numerous benefits for physicists, including the ability to process and analyze large datasets, create simulations and visualizations, and automate tedious tasks. It also allows for more efficient and accurate calculations and can lead to new insights and discoveries in their research.

Is computer science a required subject for physics students?

It depends on the specific program and curriculum, but computer science is becoming increasingly integrated into physics education. Some universities may require a basic computer science course, while others may have more specialized courses in computational physics. However, it is highly recommended for physicists to have at least a basic understanding of computer science in today's increasingly data-driven world.

Similar threads

  • STEM Academic Advising
Replies
6
Views
1K
Replies
2
Views
892
  • STEM Academic Advising
Replies
6
Views
1K
  • STEM Academic Advising
Replies
13
Views
3K
  • STEM Academic Advising
Replies
8
Views
1K
  • STEM Academic Advising
Replies
10
Views
1K
  • STEM Academic Advising
Replies
6
Views
3K
  • STEM Academic Advising
Replies
4
Views
812
  • STEM Academic Advising
Replies
23
Views
3K
  • STEM Academic Advising
Replies
1
Views
228
Back
Top