Otherwise it's not science.
But scientists don't use them effectively.
“ Organized Skepticism. Scientists are critical: All ideas must be tested and are subject to rigorous structured community scrutiny.” - R.K. Merton, 1942
Formats: Evaluated Nuclear Data File (ENDF), GRIdded Binary (GRIB), Flexible Image Transport System (FITS), Hierarchical Data Format (HDF), etc.
Management: C/Python/Fortran APIs, HDF5, SQL, MySQL, sqlite, MongoDB, Hadoop, etc.
Version Control Systems: cvs, svn, hg, git
Hint: tools like git-annex or git-lfs can help you manage large data files
“ It takes just as much time to write a good paper as it takes to write a bad one. ” - Polterovich, 2014
Hint: Check out GitHub for existing toolkits for analysis in your domain. e.g. PyNE, serpenttools
Hint: try a tutorial on BASH, CSH, Python, or Perl, e.g. the bash lesson by Software Carpentry.
Build System Tools: make, snakemake, autoconf, automake, cmake, docker, etc.
Reference: The Carpentries have an associated Automation and Make lesson.
Hint: In FORTAN, learn about arrays. In C++, learn about maps, vectors, deques, queues, etc. In python, the power lies in dictionaries and numpy arrays.
Addendum: Perhaps DataFrames, xarray,
DRY: Dont Repeat Yourself. Code replication is bug proliferation.
Hint: github.com/audreyr/cookiecutter or github.com/uwescience/shablona
Tools: python argparse, xml rng, json, etc.
“ The scientific method’s central motivation is the ubiquity of error—the awareness that mistakes and self-delusion can creep in absolutely anywhere and that the scientist’s effort is primarily expended in recognizing and rooting out error. ” - Donoho, 2009.
Tools: cpplint, pyflakes, gdb, lldb, pdb, idb, valgrind, kernprof, kcachegrind, cprofile/snakeviz
“ just-in-time review of small code changes is more likely to succeed than large-scale end-of-work reviews. ” - Petre, Wilson 2014
Books: Clean Code, Working Effectively with Legacy Code
Tools: sphinx, doxygen, googletest, unitttest, nosetests, pytest
“ If a piece of scientific software is released in the forest, does it change the field? ”
Tools: LaTeX, markdown, restructured text
Example: github.com/cyclus
Export control is serious.