Recently discovered algorithms indicate that quantum computers may one day enable exponentially faster computation than is fundamentally possible using their classical counterparts. The realization of this promise hinges above all on the ability to protect quantum computers against the deleterious effect of the interaction with their environment, leading to decoherence. A decohered quantum computer is equivalent to a badly malfunctioning classical computer. In this talk the what’s, why’s, how’s and problems of quantum computation will first be briefly reviewed. This will be followed by a proposal for a solution of the decoherence problem, with applications to atomic and solid-state quantum computing. Two key ingredients of the proposed solution are “decoherence-free subspaces” and “dynamical symmetrization”. In the decoherence-free subspace approach, a symmetry in the system-environment interaction is sought. Provided such a symmetry exists quantum information appears as a conserved quantity, that cannot decohere. Dynamical symmetrization is a method that uses strong and fast pulses (similar to the spin-echo effect) in order to enforce such a symmetry on the system-environment interaction. The combination of decoherence-free subspaces and dynamical symmetrization is a powerful tool for reducing decoherence, and is fully compatible with quantum computation in a wide range of proposed implementations of quantum computers.