Pretty much everyone in the physical sciences these days has to know programming. C++, fortran, matlab, and what have you. But what about the more core computer science concepts, like algorithms, data structure, numerical analysis, operating systems, etc.? How important are these to those working in the physics field? I'm in undergrad right now (going to 3rd year) and wondering whether it's worth it to pursue a CS major on the side. What they teach sounds like they would be useful, but it would require me to do a 5th year, as well as paying more tuition (not just the 5th year itself, but extras from year 2 to 5), so it's not without cost. I do plan on going to grad school for maybe condensed matter, semiconductors, quantum computing those kind of area. If anyone has some experience/insight to share I'd really appreciated it. Like for example, how much did you have to self-teach cs-related topics, and do you think a formal education has significant benefits?