Chemistry - Overlap between computer science and chemistry?
Have a look at list of computational chemistry software. It gives you overview, how the computers are used in chemistry. Many of them fall more into the chemical physics field, some into the chemoinformatics, to name just few. So definitely there are lot of places to contribute to use of computers in chemistry. If you are able to mix the software engineering and the science itself in a good way, possibilities are immense.
As for the last question - almost whatever field of chemistry you choose, you can contribute to the programs used within it. There is no such thing like completed scientific code. And university level is a necessary prerequisite to do reasonable science. Just concentrate on the models and mathematics behind the scenes and everything will follow.
I'm late to the party and everyone else here has suggested how computer science experience can contribue to chemistry. I'm going to do a bit of that, but also point out how chemistry experience could potentially contribute to some (very select) CS opportunities.
I find myself in a similar position to you. I recently declared a double major in Chemistry and Applied Math-Comp.Sci emphasis because I enjoyed both subjects. I was initially planning to double in pure Comp. Sci., but our CS department is full of horrible lecturers and the math is full of amazing lecturers so I kinda got shoehorned into the other.
Computational chemistry is one of many fields in which CS and chem will overlap these days. It's not obvious, but there are many, many others, as people who are good with computers and science are rarer than they should be. Many labs, even those that are not computational in nature, rely on some basic modeling. I currently do some work with a nanoparticles group, and the PI was recently complaining that most of his grad students couldn't program anything to save their lives.
Failing that, our field could always use some good software devs. Perhaps I'm a little spoiled, but some our so-called "cutting edge" software suites have to be partially recomplied every time they are launched and suffer from spontaneously having communications modules crash, necessitating reboots of several computers in order to get things up and running again. It's pretty obvious to me that a lot of the stuff was designed by a software developer and not by a practicing scientist--such as the million button presses needed to load data and work with it, and the general recalcitrance of such software to spit out various data types.
If you don't want to work on that problem, we're still struggling with the issue of how to share code and models/data. Everything is moving to computers, and research is no exception. Researchers are still trying to figure out how to share files easily, store them, and publish them (more than one study has gone to press as a letter without any of the code attached to it).
Ultimately, I don't know what you want. Based off your last few paragraphs, this probably isn't what you were looking for, but since you opened with a question about the overlap between two fields, and not how one could contribute to the other, I'm leaving these here as ideas about how several fields can potentially interact.
P.S. For an interesting example, Philip Guo's PhD thesis revolved around the question of how the same code could give the same results when run on different systems, in spite of different environments. The question led him to create a tool (I believe Python) which allows simulations to run in a safely sandboxed (and thus identical) environement without loss of performance. http://www.pgbovine.net/PhD-memoir.htm
Computational chemistry is a huge field. The 2013 Nobel Prize in chemistry was awarded to researchers who laid the foundations for modern computational chemistry to advance forward, and is essentially a commentary by the Chemistry Nobel Prize committee on the importance of computational chemistry. Computer models are particularly critical for developing an understanding of systems that are hard (or impossible) to access experimentally.
This essentially involves creating mathematical models for how molecules and atoms behave, writing programs to solve them, and running them on (usually massive) computers. Molecular dynamics is a common activity, and involves simulating a handful of molecules that follow a handful of rules (how do they collide, how do they spin, how do they attract or repel one another, etc.). The more computing power you have, the more molecules you can simulate, and so the better your extrapolations to larger scales are. Simulations that are run on supercomputers can provide a direct link between the microscopic (molecules) and the macroscopic (fluid properties, like viscosity or conductivity). Writing programs that will run (and run efficiently) on supercomputers involves a lot of moving parts, most of which are pure computer science.
If you have a computer science background and you enter a chemistry degree program, or go to work at a chemical company where you're working with chemists, you'll have an edge because of your computational skills, and will have the intuition to think about problems in a computational way - the value of which can't be overstated. As mentioned above, computer models are used often in chemistry, so programming fluency is important. On the other hand, you'll have plenty of catching up to do on the math and physics, which is a different kind of intuition you may not have that others will.
National laboratories and universities do a significant amount of computational chemistry work, less so in industry R&D (caused by, among other reasons, lack of access to enough computing resources and difficulty of obtaining immediately applicable results). Pharmaceutical companies are the 800 pound gorillas of industrial computational chemistry. If you're looking for work in industry, though, consider chemical engineering. Chemical engineering is another huge field with an equally huge number of opportunities (read: low-hanging fruit) for someone with a computational bent.
- quantum chemistry, if you like academic chemistry,
- chemoinformatics /bioinformatics, if you like more industrial chemistry, pharma,
- simulations in nanotechnology, if you do not afraid of a little physics, and like interdisciplinar fields
In long: Quantum chemistry / molecular simulations is nice and interesting, but there are two main possible cons (depending on your taste):
- QC is generally very academy oriented. Though it is used in industry, too, QC people are generally stick to academia or small scientific software companies. Just google job advertisements to have a rough idea, before you make any big decision.
- You may fell be late from the party. QC has many-many implementations, most of them is in ancient FORTRAN dialects. There are even more unimplemented algorithms, however you may find difficult to start a completely new project from scratch, and you may find painful spagetthicoding in FORTRAN if you join others.
You should note that in that respect molecular simulation people (molecular mechanics, MM based MD etc) are very similar to quantum chemistry folks.
Chemoinformatics is a different field, and it generally requires different kind of math (much more machine learning / statistics oriented):
- Chemoinformatics is much less popular in academia, and the academic community is much smaller, on the other hand much more popular in industry. If you look for "computational chemistry" jobs, bigger part of the advertisements will be some flavour of chemoinfo.
- Generally it requires large (reliable) databases which can limit your research to certain fields. However, there are some innovative use of cheminfo, e.g. done by Grzybowski group at Notheastern digitalizing chemical synthetic databases.
- The field has an almost incestous relationship with pharma, so if it not your main interest, you may find most topics boring.
Combined fields: there is always interesting blends of theory and calculation (and experiment), see e.g. the work of Christofer Wilmer about design of MOFs.
Simulations for nanotechnology should be similar to quantumchemistry, however it is an emerging field with slightly different culture, much less established codebases and much more diversity of theories. It is often a field where Physicists, Engineers and Chemists collide. It also mean you should have a better idea about what you do. It is essentially the Wild West. In my experience, nanotech experimental groups are also much more willing to collaborate with computational / theoretical people than classical chemists and they have much more intimate relationship with machines and quantitative data than e.g. organic chemists.
One word of caution, though: Scientific computational guys are smart and everything in many ways, but the majority of them are HORRIBLE programmers. By horrible programmers I mean people who never heard about version control, do not test their code properly, and willing to write totally undocumented, unreadable code in languages that most programmer have goosebumps. It is a field where even visualisation software are written in FORTRAN. This can be a huge pro or a huge con, depending on your situation.