De forma bem resumida: lógica, algoritmos, estruturas de dados.
Na verdade, tem algo mais básico ainda: matemática, comunicação, interpretação de texto (sim, muita coisa é feita da maneira errada porque a pessoa não entendeu o que era pra fazer).
Ou seja, tudo aquilo que muita gente acha "teoria chata e inútil". O problema é que muitas dessas coisas só te ajudam indiretamente e vc só percebe muito tempo depois.