The first thing is obviously knowing and choosing programming language(s) appropriate for your task.
Here's a short discussion on that here: {ref}content:programming_languages
Let's say you are writing a super cool software that does amazing things.
You should version control it using Git.
And you should want to make it open-source and f
Surely, you want the world to use it. If your software has a lot of dependencies, you might want to containerize it.
When you install a package via Conda, it searches for the package in repositories (called channels). If the package is not available in Conda's default channel, alternative channels include conda-forge and Bioconda. We recommend using conda-forge for the reasons listed here.
Note that Conda's dependency resolution tends to be slow, so here are some faster alternatives:
- Miniconda: https://docs.anaconda.com/free/miniconda/
- Micromamba: https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html
- https://docs.docker.com/
- Collection of useful bioinformatics Docker images: https://pegi3s.github.io/dockerfiles/
- Sphinx (Python): https://www.sphinx-doc.org/en/master/
- Jupyter Book: https://jupyterbook.org/en/stable/intro.html