Study Resources
Unlike several rising branches of computer science such as artificial intellgence and machine learning, quantum computing is still young when it comes to the development level. Most widely used quantum programming languages and libraries are created for people to learn and experiment with their ideas rather than for publishing any kind of commercial product. Generally speaking, the field has a weak application side; its focus strongly lies in interpreting quantum information theories and… build some funny stuffs for the sake of learning. For that reason, I could say that one haven’t really learned quantum computing if he/she didn’t get familiar with quantum information theories in the first place. Quantum information- and quantum computing-related books require readers some background knowledge in Linear Algebra (must), Probability and Statistics, Quantum Mechanics, Number Theory, Complex Analysis, and Functional Analysis (optional, depending on the topic) and is usually written in a less-than-friendly manner for beginners. So, in this text, I want to introduce to you all of my favorite materials since I started learning quantum information and quantum computing.
Take your first step.
Here’s a list of good, I think, reading materials and my comments on them:
Lecture note for the course “Introduction to Quantum Computing” by John Watrous: Best of best for beginners, very concise and informative, will definitely help you gain a concrete base. Must read.
‘Quantum Computer Science: An Introduction’ by David Mermin: Really good, written in computer science-favored style with strong emphasis on formal mathematics, a great preparation for more scientific texts. Highly recommended
‘Quantum Computing for Computer Science’ by N. Yanofsky and M. Mannucci: Good but lengthy, uses matrix representation much and has numerous examples with steps listed clearly, certainly suitable for those who are not into math symbols at the onset.
‘Quantum Computing since Democritus’ by Scott Aaronson: Interesting but may not suitable for serious learning, wall of text in a narrative tone and a theory focus, very good in referencing. Recommended to read in spare time because it’ll give some distintive points of view.
‘An Introduction to Quantum Computing’ by P. Kaye, R. Laflamme and M. Mosca: Best conclusion and expansion when you finish the basic part (by Grover and Shor algorithms), over-concise and well-written (so not perfect for absolute beginners), extremely theoretical, have a somewhat unique approach to quantum problems that may give you a thorough insight. Highly recommended. (Personal corner: I’m very thankful to my bosses and mentors for gifting me this precious book.)
Higher level
- ‘Quantum Processes, Systems, and Information’ by B. Schumacher and M. Westmoreland (Quantum Information Theory): Good in overall, detailed but hard to read due to both content and style, a stepping stone for academic papers. Recommended.
- ‘Quantum Walks and Search Algorithms’ by Renato Portugal (Quantum Walks): Great, well-written and understandable. Highly recommended because quantum walks and search is becoming a branch full of promise. Highly recommended.
- ‘Quantum Walks for Computer Scientist’ Salvador Venegas-Andraca: Average, informative but really hard-to-read, can serve as a complement to the book right above.
- Quantum Machine Learning: I haven’t come to this branch yet so I cannot say anything about this paper although it serves as a widely used reference. One thing I can say is Quantum Machine Learning is the most active branch of quantum computing in the present.
Lecture video
- Quantum Mechanics: I found courses offered by MIT OpenCourseWare interesting, challenging but digestable. You can choose a professor whose teaching style you like to follow.
- Berkeley edX course CS191x “Quantum Mechanics and Quantum Computation” video lecture series by Professor Umesh Vazirani: a great, easy beginning for those who prefer listening to lectures, but not contain enough information for you to completely rely on. Recommended.
- Recorded Seminar Archive of Perimeter Institute: An extremely good source for higher learning with tons of videos covering from fundamental to advanced topics.
Other topics (as suggestion for further reading and searching for paper)
- Error correcting
- Computational complexity
- Probabilistic cloning
- Quantum optimization
- Quantum state tomography
- Quantum graph theory
- Quantum simulation
- Topological quantum computing
- … (too many and too hard)
Get your hand dirty
Don’t just merely read the book. Implement what you learned to understand the topic deeper. Some popular programming languages or libraries used in quantum computing are listed here.
- Q# by Microsoft: My favorite platform. It has a set of problems and solutions designed for beginners named Quantum Katas. Complete it and you’ll see how your understanding has changed. By the way, it’s the language used in the Microsoft Q# Coding Contest organized by CodeforcexMicrosoft (Problems from the contests are a good source for practicing purpose).
- Python, Qiskit by IBM: Really good with an enormous number of libraries and support from the community.
- IBM Q Experience: An interactive, drag-and-drop interface that features quantum circuit. You can run your own quantum algorithms using actual quantum computers built by IBM to see how erroneous so-called state-of-the-art quantum computers are. Just saying, still very recommended.