Zsh is a good upgrade path from Bash because it has more features but similar syntax, so knowledge can be transferred.

Key interactive features of Zsh:

Key non-interactive features:

Sample config (to be added at the end of .zshrc):

# This won't work if promptinit is enabled.
PS1='%B%F{yellow}%n@%m%f%b %# '
RPS1='%B%F{magenta}%~%f%b'

setopt autocd

# Note: Bash also supports $CDPATH (except as a string).
cdpath=(. ~ ~/Projects/ ~/Projects/web/homepage/)
homepage=~/Projects/web/homepage
: ~homepage

alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias -s py=python3

# These paths are valid for plugins installed from Debian repos.
source /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh

More to follow; see more notes on various other topics.