Out of curiosity, when my coding instructor for Python did some commands on his computer, he told me learning any sort of terminal command interface (e.g. GNU Bash, PowerShell, Zsh ) will make me understand systems and how computers work and would make me know the basics of systems programming (although I am more into web development). I immediately went curious, out of my time, and looked up some command line interfaces to learn. It gave me bash, shell, zsh, powershell, etc. All these are really confusing, and they all seem the same. I want to be a terminal dweller, so which of the terminal related things should I learn? I think Bash, since it can replace Powershell on Windows, and has all the Linux/macOS systems.
Well, it is alway a matter of taste.
But to share my own experience, using Unix Shells ever since 1988, and also PowerShell for some period of time. If you want to script Windows OS as an Administrator, PowerShell is a good option. If you want to administer all different kinds of UNIX OS, bash will be available on almost all of them. If you want to develop software and have the freedom to choose, I recommend zsh, better yet oh-my-zsh.
Try the Linux kind of shells. Best zsh but bash is also good. They are for Linux and MacOSX. The Windows PowerShell has no use outside Windows. It will expand your understanding of programming. As you will learn the concepts of pipes, input and output redirection, and the general use of command-line tools. It is a must for any serious student of programming and more importantly for programmers in general.
I use GNU bash - the latest version, currently 5.2 - as my daily driver, on macOS, Linux, and Windows regularly.
I do this because modern bash has features comparable to zsh with the largest community.
On Windows, I use git-for-windows bash which is GNU bash compiled via the msys2 project, which also bundles various GNU/Linux core utilities. If you're using Windows, you should get to know the https://msys2.org/ and https://gitforwindows.org/ projects, which themselves rely on cygwin. Mainly keep in mind the helper cygpath to convert paths back and forth - some things will need Windows style paths.
You can also easily call powershell from bash.