Coding
Writing code
You must use version control, as described here.
Coding better
- Some helpful coding tips (mostly Matlab) are on this medium blog.
- And >20h of tutorials, including version control by Jeremy Howard, on YouTube.
Text editors
Full-featured text editors are necessary for efficient coding.
VS Code
VS Code is a full featured and efficient integrated text editor for coding.
- You should use the jupyter support
Terminals
- On Mac, iTerm2 is free and far superior to the in-built terminal app.
- If you are fancy, you can change to using the fish shell, which has lots of cool features.
- If you want to set up your Mac with lots of cool terminal superpowers, look no further.
Cluster computing
- ALL code on a cluster should be a clone of a git repository on GitHub. You should have another clone on a local computer that you can edit, and keep all versions synchronized through push/pull. You never want to have any risk of versions of the same code becoming out of synch.
- As well on your local computer, you should take the time to set up an ssh-key for Github on the server, to avoid typing in your password each time.
- You should have a nice interactive way of getting data/outputs to/from the server. The best is Transmit; free alternatives are Cyberduck, or FileZilla.
- You should set up an ssh key for each server you use regularly, to avoid typing in your password every time you connect.
- To avoid typing in the full username and servername every time you connect to your server, you set up an ssh config file.
Software on GitHub
- You should make a DOI on Zenodo for any software that you release on GitHub.
- You could consider a workflow for tracking views and download statistics, as described here.