Four conda concepts repeatedly matter in real use.
Channels. Channels are package repositories. The defaults channel (Anaconda Inc) is the original; it has fewer packages than conda-forge and stricter commercial licensing. conda-forge is the community channel with 30,000+ packages and the most active maintainers. bioconda is for bioinformatics tools. pytorch, nvidia, etc. are vendor channels for specific stacks. Use -c conda-forge on most installs unless you have a reason not to.
Binary packages. conda's killer feature. A conda package can include compiled C/C++ libraries, CUDA runtimes, R packages, even Java. When you install pytorch, conda fetches a pre-compiled binary matched to your OS, CPU architecture, and CUDA version — no compilation. This is what makes conda the default for ML / data science.
The solver. conda used to use a Python-based SAT solver that was famously slow (multiple minutes for complex envs). The new libmamba solver (default since conda 23.10) is dramatically faster — 5-10x for typical envs. If you're on an older conda, run conda install -n base conda-libmamba-solver and conda config --set solver libmamba to enable it.
Mixing conda + pip. Some packages are PyPI-only (not on any conda channel). The right pattern: install all conda packages first, THEN pip install the rest. Reverse order can corrupt the env. Document the pip layer in environment.yml under a pip: section so it's reproducible.