Olá, vou tentar responder suas perguntas:
1. Porque oerece uma interface fácil para o acesso para qualquer sistema, já que nem todo sistema tem uma interface gráfica; facilita a visualização de erros durante a utilização de um programa; geralmente utiliza menos recursos que programas com interface gráfica; é uma ferramenta que pode ajudar na depuração de erros no caso de um problema com a interface gráfica.
2. O programador precisa saber usar o mínimo do Terminal, executar alguns comandos, pois pode ser necessário para instalar alguma ferramenta ou fazer algum teste.
3. Dá, mas pode ser útil saber alguns comandos. Afinal, dificilmente um programador lida somente com códigos, ele vai lidar também com o ambiente em que esses códigos serão executados.
4. Não tem relação.
5. Não.