Surface Code Quantum Computing