# Chemistry and physics classes in Computer Science

**URL:** <https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290>\
**Category:** Factual Questions\
**Created:** [June 30, 2013, 9:36pm UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290 "2013-06-30T21:36:51Z")\
**Posts on this page:** 12\
**Page:** 2

<div class="post-metadata">

**Author:** ![Jragon](https://avatars.discourse-cdn.com/v4/letter/j/e19b73/32.png) [@Jragon](https://boards.straightdope.com/u/Jragon)\
**Post date:** [July 4, 2013, 7:27am UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/21 "2013-07-04T07:27:13Z")

</div>

> [@Senegoid](#):
>
> Here’s another thought: If you want to learn something valuable, you need to take _some_ other technical kind of classes along with your Computer Science. If you know all there is to know about computer programming, but not much else, you’re limited in what you can do.
> 
> Maybe you want to write the next killer Accounting app to put QuickBooks out of business. Then you need to know plenty about programming AND all there is to know about Accounting. Or maybe you’d like to do nuclear weapons research, which requires heavy-duty simulations. For this, you need to know plenty about programming AND plenty of Nuclear Physics AND plenty of Math. Or maybe you’ll simply be the programmer for a supermarket chain, maintaining their databases of products and customers and employees and assets, etc. For this you need to know programming (databases in particular) AND a whole lot about how the retail business works. (This is what I’ve been doing a lot, for the past few years.)
> 
> The point is, programming skill all by itself only has certain limited usefulnesses. To be a really useful programmer, you need to know Programming thoroughly AND you need to know some other technical field thoroughly.

That assumes you’re in it to be a programmer, though. Just computer science is fine if you want to go into academia and research compiler theory, database theory, Operating System theory, etc. Obviously having more skills never hurts, but they’re not strictly necessary if you want to publish papers on the asymptotic complexity of the new graph search algorithm, or brainstorm faster/better/more secure network protocols.

---

<div class="post-metadata">

**Author:** ![Mijin](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mijin/32/9369_2.png) [@Mijin](https://boards.straightdope.com/u/Mijin)\
**Post date:** [July 4, 2013, 8:29am UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/22 "2013-07-04T08:29:37Z")

</div>

> [@Senegoid](#):
>
> Maybe you want to write the next killer Accounting app to put QuickBooks out of business. Then you need to know plenty about programming AND all there is to know about Accounting. Or maybe you’d like to do nuclear weapons research, which requires heavy-duty simulations. For this, you need to know plenty about programming AND plenty of Nuclear Physics AND plenty of Math. Or maybe you’ll simply be the programmer for a supermarket chain, maintaining their databases of products and customers and employees and assets, etc. For this you need to know programming (databases in particular) AND a whole lot about how the retail business works. (This is what I’ve been doing a lot, for the past few years.)
> 
> The point is, programming skill all by itself only has certain limited usefulnesses. To be a really useful programmer, you need to know Programming thoroughly AND you need to know some other technical field thoroughly.

Yes.  
And at the risk of hijacking, I think many people assume that if they want to do software development in their career, they have to do CS major (or other CS-based degrees like software engineering).  
But software development is common in many fields. Majoring in chemistry, say, and doing programming as a hobby and a minor, can lead to a career where you do software development as part of a whole set of interesting activities, rather than the only activity, IME.

---

<div class="post-metadata">

**Author:** ![chewsick](https://avatars.discourse-cdn.com/v4/letter/c/6f9a4e/32.png) [@chewsick](https://boards.straightdope.com/u/chewsick)\
**Post date:** [July 4, 2013, 1:11pm UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/23 "2013-07-04T13:11:54Z")

</div>

> [@Mijin](#):
>
> Yes.  
> And at the risk of hijacking, I think many people assume that if they want to do software development in their career, they have to do CS major (or other CS-based degrees like software engineering).

Well, allow me to hijack your hijacking. Where is it that software engineering is a discipline different than computer science?

I guess CS where you are at is a concentration in theoretical computer science (IMHO the interesting stuff) and is different to computer engineering, and so software engineering is kind of a trade-school type practical thing?

Not trying to be bitchy – I am genuinely curious.

---

<div class="post-metadata">

**Author:** ![Terr](https://avatars.discourse-cdn.com/v4/letter/t/839c29/32.png) [@Terr](https://boards.straightdope.com/u/Terr)\
**Post date:** [July 4, 2013, 1:15pm UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/24 "2013-07-04T13:15:58Z")

</div>

> [@Mijin](#):
>
> Yes.  
> And at the risk of hijacking, I think many people assume that if they want to do software development in their career, they have to do CS major (or other CS-based degrees like software engineering).  
> But software development is common in many fields. Majoring in chemistry, say, and doing programming as a hobby and a minor, can lead to a career where you do software development as part of a whole set of interesting activities, rather than the only activity, IME.

Hardcore software development requires skills that come from years of hardcore programming. Not just something as a hobby or “part of a whole set of interesting activities”.

I have seen stuff written by people for whom software development was “part of a whole set of interesting activities”. Nightmare stuff.

And to the OP - my degree in “Math and Computer Science” from 1984 required a year of physics and a year of chemistry. Which I proficiencied out of. Now I wish I had taken more physics.

---

<div class="post-metadata">

**Author:** ![Mijin](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mijin/32/9369_2.png) [@Mijin](https://boards.straightdope.com/u/Mijin)\
**Post date:** [July 4, 2013, 1:28pm UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/25 "2013-07-04T13:28:32Z")

</div>

> [@chewsick](#):
>
> Well, allow me to hijack your hijacking. Where is it that software engineering is a discipline different than computer science?

I was just talking in terms of degrees. I was trying to say: all CS based degrees, not just the specific degree CS.

When I did my CS degree, we shared almost all of our classes with guys who were studying Software Engineering, for example.

> [@Terr](#):
>
> Hardcore software development requires skills that come from years of hardcore programming. Not just something as a hobby or “part of a whole set of interesting activities”.
> 
> I have seen stuff written by people for whom software development was “part of a whole set of interesting activities”. Nightmare stuff.

OTOH some of the best developers I’ve worked with were entirely self-taught.

And in any case, not all programming is “hardcore” (thank goodness).

---

<div class="post-metadata">

**Author:** ![Jragon](https://avatars.discourse-cdn.com/v4/letter/j/e19b73/32.png) [@Jragon](https://boards.straightdope.com/u/Jragon)\
**Post date:** [July 4, 2013, 1:28pm UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/26 "2013-07-04T13:28:44Z")

</div>

> [@chewsick](#):
>
> Well, allow me to hijack your hijacking. Where is it that software engineering is a discipline different than computer science?
> 
> I guess CS where you are at is a concentration in theoretical computer science (IMHO the interesting stuff) and is different to computer engineering, and so software engineering is kind of a trade-school type practical thing?
> 
> Not trying to be bitchy – I am genuinely curious.

It’s a thin line, to be sure, but generally Computer Science is the more mathy stuff: automata, LR parsing, OS, algorithmic analysis, discrete math, even stuff like quantum computing or bio-informatics though those are more hybrid fields. Software Engineering is more like Agile, Scrum, When To Use This Language, Object Oriented Practices, Design Patterns, UML, UI Design, etc. Most CS Degrees will generally spend the lower division courses on software engineering, with a little bit of math, and the upper division will either be all math, or software engineering with a “mathy bent” (e.g. Parallel and Distributed programming will have formal concurrency mathematics, but usually focus on practical applications).

The water is a bit muddied with, say, computer security or things like reducing the memory footprint of programs in memory. Those tend to really straddle the line.

Generally speaking, I support having separate degrees for Software Engineering and Computer Science. I can’t count how many people have dropped out of the Comp Sci major because they wanted to be programmers and wanted to learn about industry stuff, and either couldn’t or wouldn’t handle the math (nevermind that the likes of MS, Google, etc KILL for people who know their math more than people who know why Agile is better than Waterfall any day).

75% of your comp sci degree is… well, not useless, but not immediately useful if you want to be a web code monkey for Amazon; likewise, CS professors will gladly use 10 year old deprecated APIs, archaic build systems, and inefficient development cycles so they can focus on their research.

ETA: It’s not 100% accurate, but I’d probably characterize the difference between CS and SE as the difference between Lambda Calculus and Haskell.

---

<div class="post-metadata">

**Author:** ![Terr](https://avatars.discourse-cdn.com/v4/letter/t/839c29/32.png) [@Terr](https://boards.straightdope.com/u/Terr)\
**Post date:** [July 4, 2013, 1:36pm UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/27 "2013-07-04T13:36:51Z")

</div>

> [@Mijin](#):
>
> OTOH some of the best developers I’ve worked with were entirely self-taught.

Agreed. I was not talking about CS degrees. I was talking about “real” programmers vs “programming on the side” type of programmers.

> [@](#):
>
> And in any case, not all programming is “hardcore” (thank goodness).

Non-mission-critical programming is fine done by amateurs. I know enough scientists and engineers who tinker and write their own programs to process their own results, and that’s fine. I know enough accountants who can write a mean Excel formula, and that’s fine too. I know enough traders who can tinker a bit with backtesting code to do some TA. But that’s trivial. All these rely on professional programmers for serious stuff, or they don’t achieve much.

---

<div class="post-metadata">

**Author:** ![chewsick](https://avatars.discourse-cdn.com/v4/letter/c/6f9a4e/32.png) [@chewsick](https://boards.straightdope.com/u/chewsick)\
**Post date:** [July 4, 2013, 2:37pm UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/28 "2013-07-04T14:37:33Z")

</div>

> [@Jragon](#):
>
> 75% of your comp sci degree is… well, not useless, but not immediately useful if you want to be a web code monkey for Amazon; likewise, CS professors will gladly use 10 year old deprecated APIs, archaic build systems, and inefficient development cycles so they can focus on their research.

There it is. I knew you’d come out sooner or later, AVL tree white tower ivory son of a bitch motherfucker.

Yeah well eat this APL motherfucker! KBOOM!

Jk kk1!

---

<div class="post-metadata">

**Author:** ![Revtim](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/revtim/32/1042_2.png) [@Revtim](https://boards.straightdope.com/u/Revtim)\
**Post date:** [July 4, 2013, 2:46pm UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/29 "2013-07-04T14:46:48Z")

</div>

When I was getting my BS in CS in a US college (FAU) in the late 80s, I was required to to take two semesters of Chemistry or two of Physics. I took Chemistry.

---

<div class="post-metadata">

**Author:** ![Mijin](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mijin/32/9369_2.png) [@Mijin](https://boards.straightdope.com/u/Mijin)\
**Post date:** [July 5, 2013, 3:00am UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/30 "2013-07-05T03:00:13Z")

</div>

> [@Terr](#):
>
> Agreed. I was not talking about CS degrees. I was talking about “real” programmers vs “programming on the side” type of programmers.  
> Non-mission-critical programming is fine done by amateurs. I know enough scientists and engineers who tinker and write their own programs to process their own results, and that’s fine. I know enough accountants who can write a mean Excel formula, and that’s fine too. I know enough traders who can tinker a bit with backtesting code to do some TA. But that’s trivial. All these rely on professional programmers for serious stuff, or they don’t achieve much.

I think what’s happened here is you’ve taken what I said as being “Programming’s so easy, you can learn it with just a spare 5 minutes here and there”. But that’s not what I’m saying at all.

One difference between programming and, say, chemistry, is that if you have a computer and Internet access, you have everything you need to study software development.  
OTOH free degree-level chemistry course material is not so easy to find (I’m sure it exists, but it is not as readily available), and then you have the small issue of needing a laboratory.

If you major in something other than CS, you can study CS in your own time and as a minor, and it’s up to you how far you take it.  
Want to just do trivial but useful apps and scripts? Then if you _work hard_ you can achieve that in 6 months from a standing start.  
Want to be a “hardcore” programmer? That will take years of dedication.

I’m saying this as someone who majored in CS, but then did a second degree because I was tired of _only_ doing software dev. Of course YMMV but IME many developers like the sound of my job as it is now.

---

<div class="post-metadata">

**Author:** ![robert\_columbia](https://avatars.discourse-cdn.com/v4/letter/r/e79b87/32.png) [@robert\_columbia](https://boards.straightdope.com/u/robert_columbia)\
**Post date:** [July 5, 2013, 4:47pm UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/31 "2013-07-05T16:47:17Z")

</div>

> [@leahcim](#):
>
> Without knowing specifics, it is hard to say anything concrete, but in my experience, no, CS majors in general do not need to take chemistry or physics (although they do have to take more calculus than many would like 🙂 ).

I majored in Computer Science at a major public university on the US East Coast. We had to take a certain number of “hard” science credits and a certain number of “social” / “soft” science credits, but the exact disciplines chosen were up to you and your advisor. A certain number of the credits had to be part of a progressive sequence - so you couldn’t just take Intro to Biology for Dummies, Intro to Chemistry for Dummies, and intro to something else for dummies and call that done. I picked Chemistry as my sequence and took Chem I and Chem II. There wouldn’t have been any problem had I picked Bio I and Bio II. For soft sciences, I picked Psychology but no university busybody in would have kicked up a fuss had I taken Sociology I and Sociology II instead.

---

<div class="post-metadata">

**Author:** ![ftg](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ftg/32/2801_2.png) [@ftg](https://boards.straightdope.com/u/ftg)\
**Post date:** [July 5, 2013, 9:23pm UTC](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290/32 "2013-07-05T21:23:18Z")

</div>

Ex-CS (US) prof here.

It varies a lot by program. E.g., at one school I taught at, the requirement was 3 Science courses that had labs, one of which had to be Physics. The list specific eligible courses. (So the Physics courses are the Real Ones and not the watered down ones.) So both Bio and Chem courses qualified.

Having a broad Science background is a _really_ good idea for Computer Science. IMHO, Physics is the best in general, but other fields might be best based on one’s interest and future jobs interests. E.g., one student went to work for a company that had refineries. So Chemistry would have been helpful there.

[Previous page](https://boards.straightdope.com/t/chemistry-and-physics-classes-in-computer-science/662290.md?page=1)
