I am a computer science student and am currently searching for resources from where I can learn about quantum computers, quantum computing models, their working principles, their gates and some simple quantum algorithms.
A curated list of resources can be found here.
In case of the link above one day going dead, I should pick out some highlights. Though this will be entirely subjective
The book Quantum computation and quantum information by Nielsen and Chuang is a good read in order to introduce yourself to the world of quantum computation. The book assumes minimal prior experience with quantum mechanics and with computer science, aiming instead to be a self-contained introduction to the relevant features of both, so it is really a nice starting point for anyone who wishes to introduce himself to world of quantum information science.
It really depends on where your brain is at. In particular, how much mathematics you have under your belt. Much of what you will need to understand is contained within linear algebra (over the complex numbers.) Zooming in more: it's all in the tensor product. Most explanations I see of how tensoring works are brutally difficult to understand as a novice. In fact, the case can be made that the whole field of quantum computing has been held back by our understanding of tensor products and ability to work with them (calculate.) In this vein, I would highly recommend the recent book by Coecke and Kissinger "Picturing Quantum Processes." Although perhaps you would like to struggle with a more traditional text first, in order to more appreciate the diagrammatic approach.
I will answer this question in two ways: one, I will tell you how I learned, and two I will tell you how I would have liked to have learned with the benefit of hindsight. Different people will value one more than the other, but both are more valuable than a giant list of resources with zero guidance where to start.
How I learned
I started out like you, in possession of an undergraduate education in computer science. I began reading Quantum Computer Science: An Introduction by N. David Mermin. This is a very good textbook, but I absolutely could not skim it. I had to ensure I understood every single line before moving onto the next. I had the impression I wasn't learning very quickly, when in fact (due to the textbook's density) I was taking in a huge amount of information.
After a few weeks with the Mermin textbook, I bought Quantum Computing for Computer Scientists by Yanofsky & Mannucci. This is a much softer introduction than Mermin, almost too soft: I skipped the first few chapters on linear algebra and complex numbers. However, in combination with the Mermin textbook, I acquired a good understanding of quantum computing basics. It was at this point I reached my own personal threshold for feeling I "understood" quantum computing.
People often recommend Quantum Computation and Quantum Information by Nielsen & Chuang (also called "Mike & Ike") for beginners. I believe this is not good advice. Had I tried to learn from that textbook, I would have failed. However, it is an excellent textbook after you already understand the basics. Anecdotally, I knew two people who tried to learn quantum computing at the same time as me: one used Mike & Ike, and the other used a book called Quantum Computing: A Gentle Introduction. Neither of those people understand quantum computing today.
How I wish I had learned
My experience learning quantum computing required a huge amount of mental effort, and in the end what I learned wasn't actually complicated! So, I created a lecture called Quantum Computing for Computer Scientists (slides) which is the lecture I wish I'd had access to before trying to read any textbooks. The lecture is popular and well-received, and I think it covers all the stuff that's really conceptually tricky; once you're over those conceptual hurdles, you can apply your regular computer science skills to learn everything else about quantum computing you need (how specific algorithms work, etc.) Thus my "hindsight" study guide is as follows:
- Watch the lecture I created.
- Watch Professor Umesh Vazirani's lectures on quantum computing; they flesh out my lecture and he is a tremendously effective explainer of concepts (these are scattered around YouTube but you can find a full playlist here)
- Concurrently, work through the first few chapters of either the Mermin or Yanofsky textbooks
- After you feel you understand the quantum computing basics, pick topics which interest you from the Nielsen & Chuang textbook
- Stick around quantumcomputing.stackexchange, reading questions & answers, asking your own, and maybe eventually answering your own!