How to (and should I) put a path to user-installed python ahead of system-installed python?
You can accomplish this by adding  

export PATH="/path/to/python:"$PATH


to your ~/.zshrc (or ~/.bash_profile if you're not on Catalina).

I'd like to propose an alternative and suggest pyenv, available via Homebrew. You can set a specific Python version to be "global" (i.e. default everywhere) and/or "local" (i.e. using that version in a specific directory only).

E.g.:

brew install pyenv
pyenv global 2.7.16
cd ~/myProjects/MyProject
pyenv local 3.7.6


If you were to use Python in ~/myProjects/MyProject it will default to 3.7.6, and anywhere else 2.7.16:

cd ~/some/other/directory
python --version
&gt;&gt; Python 2.7.16

cd ~/myProjects/MyProject
python --version
&gt;&gt; Python 3.7.6


https://github.com/pyenv/pyenv#homebrew-on-macos