Hi there,
I'm an experienced software engineer (+15 years dev experience, MsC in Computer Science) and quantum computing is the first thing in my experience that is being hard to grasp/understand. I'd love to fix that ;)
What resources would you recommend to start learning about quantum computing?
Ideally resources that touch both the theoretical base and evolve to more practical usages.
- Nielsen and Chuang, Quantum computation and information: mmrc.amss.cas.cn/tlb/201702/W020170224608149940643.pdf
While you are reading and solving the above book, I strongly recommend reading:
- "Quantum computing since Democritus" by Scott Aaronson, one of the researchers on quantum computation: https://www.scottaaronson.com/democritus/
This book will give you a "flavour" of where the power of quantum computation might be coming from, and the whole host of theoretical issues that surround this domain.
What I _highly_ recommend is practicing problem-solving using these resources:
(1) Microsoft quantum katas: https://github.com/microsoft/QuantumKatas
(2) Codeforces Q# coding contest: https://codeforces.com/msqs2018
Actually programming the circuits in Q# will give you a sense of stuff that's swept under the rug when reading textbooks: initialization of qubit states, a good sense of what "qubits cannot be copied" means, etc.
At this point, one ought to have an understand of quantum computation and our current understanding of its power (in particular, the relationship that we don't know how to separate BPP and BQP), how to implement the "common" quantum algorithms in a programming language, and a vivid sense of the "quantumness" of these algorithms.
For reference, I speak from experience: (1) My solutions to the quantum katas: https://github.com/bollu/quantum-course-exercises. (2) My scattered QC notes: https://github.com/bollu/notes/blob/master/quantum-computati...
(One can find a full pdf of quantum computing since Democritus relatively easily on the internet if one so chooses.)