I've been using Fish instead and it's much much simpler than configuring ZSH to my liking. It's already good out of the box, without having to carry around any kind of configuration. The only stuff I usually do is to setup `powerline-go` as prompt, and voilà, that's pretty much it.
The main drawback for fish is that is not compatible with bash scripting. If you need help with something specific, you can throw out almost all help available online.
Do you know what I do?
I use zsh. Let's say I need bash. "bash". I'm in bash :-) I need cmd (yup, that can happen). "cmd".
I need to run just one command with bash: "bash command".
I need to run just one command with cmd: "cmd /c command".
These problems are trivially solvable :-)