Computational chemistry is a synthesis of many different subjects, each of which is very complex on its own. So, if you really want to learn the theoretical basis, you should be prepared to put in a lot of time and effort. I don't want to discourage you, I just want you to have realistic expectations.
The fundamentals of computational chemistry are physical chemistry and computer science. The fundamentals of those are math, physics, and logic. So, depending on what your background is, you might have to start with math and physics.
- Vector Calculus
- Differential Equations
- Classical Dynamics
- Classical Electrodynamics
Once you have taken those courses (if you haven't already) you can start with physical chemistry. You could conceivably teach yourself those subjects, but it would be very difficult - a free online course would be a good option if you can't take a university course. I believe Khan academy covers all of these subjects.
- Statistical Mechanics
- Quantum Mechanics
I always liked Atkin's physical chemistry book (although I don't know if the newer editions are still good). McQuarrie's quantum chemistry and statistical mechanics are very good as well and are classics in the field.
Where do I start with the chemistry part?
- solving the Schrödinger equation
- Hartree–Fock method
- Density functional theory
Quantum mechanics in physical chemistry will cover solutions to Schrodinger's equation for all of the cases where a closed-form solution exists. This will give you an understanding of the basic principles, so you should start with that. To solve "real" systems, you need more advanced approximation techniques, and Hartree-Fock and DFT will get you started. That is a good order to study them in, as well.
For computer science, a lot depends on which software you will be using or what languages you want to use. Most of the core, highly optimized algorithms are written in fortran or C. Some go as far as assembly for the most important parts. Most of the software I have seen (non-core) is written in fortran or C++. My experience is a little out of date (I last worked in the field about 7 years ago) so that may no longer be true. At any rate, you will need at least a basic programming course in the language you want to use (C would be good to start with, since you will really learn the fundamentals). I would also take some object-oriented courses, so courses involving more advanced C++ and java would be good as well.
Key concepts (beyond programming and architecture) that you will need are:
- Stochastic methods (Monte Carlo)
- Linear Algebra
- Numerical integration
With all of the above, you will have a good set of base skills and knowledge on which you can build.
Are there comprehensive literature for beginners and what would you recommend? A good book would certainly be the best start.
I am only familiar with one book that might be suitable for beginners in computational chemistry, so perhaps others can give better suggestions. The one I used was Molecular Modelling by Leach. It gives a good overview of common techniques, but doesn't go too in-depth. However, it was last updated in 2001 - so it may be out of date. The state of the art moves pretty quickly in terms of detailed application, although the fundamentals tend to stay pretty consistent over time. Another classic text which covers the basics in some depth is Allen & Tildesley's Computer Simulation of Liquids.
Both of these books focus more on the modeling aspects of molecules as opposed to chemical reactions, so if you are more interested in simulating reactions as opposed to statistical mechanics or protein-ligand interactions, you would need different books.