4

If I want to develop algorithms or computer programs for studying chemical systems, where should I start? Is learning one or two programming languages like FORTRAN enough? And if I do it, then how do I proceed further? I would be grateful if someone can tell me about a book or any other learning resource.

Edit: I am 3rd year undergraduate in chemistry. I am interested in pursuing computational chemistry for my master's as well as PhD. I am mostly interested in electronic structure theory and ab initio calculations. Regarding the theory, I think I have got that part covered as I am taking courses and learning stuff on my own as well (QM, Linear Algebra, Quantum Chemistry etc.). What I want to know is the fields in computer science that I should have a knowledge of so that I can start learning it and be prepared with it if I encounter it in my grad school.

Pauling0304
  • 448
  • 2
  • 11
  • 2
    The Szabo and Ostlund book is probably the best for a beginner. https://www.amazon.de/Modern-Quantum-Chemistry-Introduction-Electronic/dp/0486691861 –  Dec 07 '17 at 13:44
  • 1
    I guess you might want to specify what chemical systems and what properties you want to study (and add corresponding tags to attract the specialists). I doubt you start from scratch with Fortran like in 1970s, these days there are many ready-to-go solutions implemented in various libraries. Availability of those libraries often dictates the choice of programming language. E.g. I've heard that in chemical engineering python is quite popular, whereas large farmacompanies tend to hire Java-programists. I'm not a programmer BTW, just an observer, so take this with a bit of a skepticism:) – andselisk Dec 07 '17 at 13:45
  • 4
    I would recommend to look for open jobs in the area you are interested in. Read the required skills carefully, word-by-word. This should give you a deep insight into the expected skills/knowledge. – mhchem Dec 07 '17 at 13:55
  • 5
    The traditional computational chemist should have a much stronger background in chemistry than in computing. There is a long list of books in our resources post. – Martin - マーチン Dec 07 '17 at 13:59
  • 3
    If you are looking to develop production level code that would be implemented in say Gaussian or QChem, I would recommend trying to learn Fortran and C++. It's not a requirement and I know people who do method development who didn't know these languages beforehand, but it would certainly give you a leg up. Beyond that, you will want to find a masters/PhD research group that focuses on methods development. From just a general background perspective, it also might be useful to find a course/book on numerical methods of integration and optimization. – Tyberius Dec 07 '17 at 15:11
  • 3
    Don't worry about the programming so much, rather think about chemical theories or problems you find interesting, and then see what methods are available. Mathematical maturity is much harder to come by than learning how to program. Although implementations are almost always based on linear algebra, method derivations require calculus and differential equations. Understanding batches of results requires statistics. All programming that you would plausibly do requires discrete math. – pentavalentcarbon Dec 07 '17 at 15:32
  • If "develop algorithms or computer programs" is crucial in your post then it's not what "traditional computational chemistry" is. It strongly depends on programming skills - you'd need to know many languages and be good in programming to significantly contribute in development. – Mithoron Dec 07 '17 at 19:18
  • 1
    @Mithoron sorry about the late response: this is partially a myth (no pun intended). Everyone is correct that it is not traditional computational chemistry, which is just applications with maybe some scripting. However, "you'd need to know many languages and be good in programming to significantly contribute", ignoring some definition of "significantly contribute", is not true. Anecdotally, most of the people I know are only remotely familiar with 1-2 languages and are nothing close to software developers. – pentavalentcarbon Dec 25 '17 at 22:08

0 Answers0