Skip to content

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

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