References
Style guides
Style guides for various programming languages.
C
C++
Fortran
- Fortran style guide
- Norman S. Clerman and Walter Spector, "Modern Fortran: style and usage", Cambridge University Press, 2011
Python
R
Programming language standards
Programming languages such as Python and R don't have formal standards.
General best practices
General resources that discuss best practices in software engineering.
- Brain Kernighan and Rob Pike, "The practice of programming", Addison-Wesley, 1999
- Martin Fowler, "Refactoring: Improving the Design of Existing Code", Addison Wesley, 1999
- Erich Gamma, Richard Helm, Ralpha Johnson and John Vlissides, "Design patterns: elements of reusable object-oriented software", Addison-Wesley, 1994
- Robert C. Martin, "Clean code: a handbook of agile software craftsmanship", Pearson, 2008
Best practices for scientific computing
- Greg Wilson, Jennifer Bryan, Karen Cranston et al., Good enough practices in scientific computing, PLoS Computational Biology, 13(6):e1005510, 2017
- G. Wilson, D.A. Aruliah, C.T. Browni et al., Best practices for scientific computing, PLoS Biology, 12(1):e1001745, 2014
Software licenses
- Discussion of how to choose an appropriate license on the GNU website.
Scientific software
Some references that are more specific to scientific software development.
Development ecosystem
Algorithms and data structures
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein,
"Introduction to algorithms", MIT Press, 2009 (3rd edition)
- Robert Sedgewick and Kevin Wayne, "Algorithms", Addison-Wesley, 2011 (4th edition)
- Awesome algorithms