Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/transientlunatic/notes-software
Notes on software engineering principles for the natural sciences
https://github.com/transientlunatic/notes-software
containers docker htcondor lecture-notes notes python python-package scientific-computing singularity software-development software-engineering testing tutorial unit-testing version-control versioning
Last synced: 14 days ago
JSON representation
Notes on software engineering principles for the natural sciences
- Host: GitHub
- URL: https://github.com/transientlunatic/notes-software
- Owner: transientlunatic
- Created: 2020-08-26T09:20:48.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-10-31T10:56:11.000Z (over 2 years ago)
- Last Synced: 2024-12-06T19:55:27.225Z (about 2 months ago)
- Topics: containers, docker, htcondor, lecture-notes, notes, python, python-package, scientific-computing, singularity, software-development, software-engineering, testing, tutorial, unit-testing, version-control, versioning
- Language: Python
- Homepage: https://notes.daniel-williams.co.uk/software
- Size: 69.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.rst
Awesome Lists containing this project
README
Software Engineering for Scientists
===================================As scientists we spend most of our time thinking and learning about how various parts of the universe--be they atoms, molecules, or even galaxies--work.
For most of us that also means that we need to turn to computer programming and writing software to help analyse data and perform research.
Most of us, however, don't spend much time thinking about what the best way to do this is, and while many undergraduate science courses teach the fundamentals of programming in a language like C, python, or R, very few have the scope to cover good practices once you start writing *lots* of code.They assume you have some knowledge of a programming language; most of the concepts discussed will work for any language, but most of the examples will use Python.
This means that you'll need to figure out the best way to do some things in your own language, but hopefully I'll have provided the scaffolding for that learning.No part of these notes is specifically intended to be more important than any other, but if you're very pressed for time I strongly recommend reading the chapter on **version control**, which is something it's helpful to understand before you start working on even the simplest scripts.