In computational chemistry, we spend a lot of time working with computers. However, very few of us have formal training in computer programming. There is little short-term incentive for us to fix this, which has led us to adopt some inefficient programming practices. Some interesting reads on this include Nobody ever gets credit for fixing problems that never happened, Why do many talented scientists write horrible software?, and Why learning to code is so damn hard.
This workshop is designed around the "low-hanging fruit" of best practices - simple fixes that will result in big improvements to your productivity. The topics are admittedly boring, but doing things right will save you from having to think about them again.
- Profiling and optimization
- Test-driven development
- Style guides
- Documentation
- Software Carpentry
- This organization focuses solely on teaching scientists how to code. Highly relevant!
- Conference videos
- Go to youtube and search. Here's a good example. Here's another.
- The popularity approach
- Read through the top posts on stack overflow. If they use terminology or tools you don't understand, take the time to learn them.
- Similarly, read through the most starred github repositories. Learn why each repository is popular, and understand how it may be helpful to you.
- Github also has a science showcase (complete with IPython and Software Carpentry repos). The same applies - read and learn.
- You can also read through the most downloaded packages by package manager. Here's javascript's npm and python's pip.