Qual seria uma configuração boa para programar?

Olá pessoal.
Atualmente estou querendo montar um computador especifico para programar e fazer projetos pessoais e da faculdade, porém sou bastante leigo em relação a hardware e configurações de máquina para ter um bom desempenho para esse fim.

Eu queria começar a aprender java web nessas férias e o java por si so já é pesado em comparação a demais linguagens. Eu já procurei e pelo que li, dizem que rodar java web exige muito da máquina por ser extremamente pesado, ao contrário do php, que roda em qualquer pc de boa (ao que me pareceu).

Além de programar java web, também preciso de que rode para desenvolvimento Android, rodando IDE’s como Android Studio, além de claro, de uma máquina virtual para simular o celular e rodar o aplicativo.

Como citei acima, uma máquina virtual também é um fator importantes, uma vez que eu não vou usa-la apenas para desenvolver aplicativos androids e afins, mas também para rodar outros sistemas operacionais que precisarei futuramente, como por exemplo o Kali Linux, pois uma das minhas áreas de interesse no mercado de TI é a de segurança.

Eu terminei o 4 periodo agora, ainda não sei ao certo tudo que precisarei usar ao longo do curso ou trabalhando como desenvolvedor, se alguém lembrar de alguma tecnologia que precisarei utilizar e que precise de uma configuração boa, fala ae.

Não quero gastar em um pc e depois perceber que ele não atende as minhas necessidades. Como falei, não entendo de hardware. Um tecnico amigo do meu pai, sugeriu que eu colocasse placa de video em vez de 8Gb de memória, o que particularmente não acho uma boa ideia, mas sei la. Pretendo também colocar um processador I7 ou I5 e um HD de 500Gb. A placa de video, por mim, acho desnecessário se preocupar. O que acham?

Olha se quiser rodar java, e o android studio na minha opinião uma configuração miníma seria um processador i5 de qualquer geração, minimo 8GB de ram de boa velocidade e principalmente um SSD, sem SSD eu não consigo usar o Android Studio.