Quantum computers exploit the fundamentals laws of quantum mechanics to perform tasks that are well beyond the reach of any classical computer. Perhaps more remarkable than quantum computing itself is the concept of quantum error correction (QEC). With fault-tolerant QEC, it becomes possible to solve a computational problem accurately while transforming a many-body quantum state with a sequence of faulty operations on imperfect quantum hardware. However, fault-tolerant protocols come at the cost of dauntingly large overheads, pushing practical realization of useful quantum computers out of reach. In this talk I will present an elementary introduction to QEC. I will then introduce a new type of qubit called the Schrödinger cat qubit which is realized in a driven non-linear oscillator. The Schrödinger cat states are superpositions of two opposite phase coherent states. The cat qubit realized by parametrically driving a non-linear oscillator has some in-built protection against errors in hardware and software. Finally, I will discuss how this protected cat-qubit can significantly reduce the overheads for fault-tolerant QEC.