# What classic software developers need to know about quantum computing

IBM, Intel, Google, D-Wave and others have made significant advancements in the field of quantum computing over the past few years, but many hurdles (not all of them technical) exist before the technology can become a practical alternative for businesses. For example, software developers will need to learn new ways of writing programs for quantum computers.

In May this year, IBM hosted its fourth annual Quantum Challenge. The four-day event consisted of four exercises designed to help classic software developers, researchers, and even business users better understand how quantum programming works. Participants were able to use the 18 IBM Quantum systems on the IBM Cloud to complete the exercises, and according to IBM during the event the total use of these system "exceeded 1 billion circuits a day." Over 1,745 people from 45 countries participated in the challenge and 574 people actually completed all four exercises.

In this instalment of Dynamic Developer, I talked with one of the IBM team members who helped put the challenge together. In our conversation, Abe Asfaw, Global Lead, Quantum Education and Open Science at IBM, explains the 2020 Quantum Challenge and the challenges developers face when trying to write programs for quantum computers.

**Bill Detwiler:** So let's start with what the IBM Quantum Challenge is. Give everybody a breakdown of how it works, how long it's been around, and what people do when they participate in it.

**Abe Asfaw:** Yeah. So the IBM Quantum Challenge is one of our many attempts to make sure that everyone becomes quantum-ready, everyone can do quantum computing, can program a quantum computer. So it's a set of four exercises that they can take with their families. And at the end of the day, what we hope to achieve from this process is that everyone is equipped to be able to program a quantum computer.

**Bill Detwiler:** So let's talk about those exercises. What's the first one about?

**Abe Asfaw:** Sure. So every time you talk about programming a quantum computer, really what you're doing is building a quantum circuit and then running that quantum circuit on the quantum computer. So in the first exercise, what we thought we would do is walk people through this model of computation where we show what it takes to build a quantum circuit. When you build a quantum circuit, you're putting on quantum gates on different qubits. So we show what each quantum gate does to each qubit, and we build up from there.

**Bill Detwiler:** Okay. And maybe before we go any further, I guess it would be helpful for folks to know what is it that...how did they get that foundation of knowledge so that they understand the language? Whether you're a seasoned developer trying to learn a new language, whether you're new to programming or new to quantum computers. Is there a way for people to understand, "Okay, so I know what a circuit is. I know what gate means. I understand the terminology in the process."

**Abe Asfaw:** Yeah. So we have several tools to be able to get you from knowing classical computing to being a quantum-ready developer. So one of the things that we do is make an open-source textbook available online, and several people have been looking through this textbook. So for this challenge, what we did is take snippets of the textbook and put them in with exercises that walk people through the material, solve a problem, walk through more materials, solve the problem, and gradually you develop that terminology that you mentioned where you go from classical development to quantum development.

## Beyond the basics of quantum computing: Quantum noise, understanding superposition and quantum key distribution

**Bill Detwiler:** Okay, cool. So you've gone through that first exercise, which helps you understand some of the basics of quantum computing. What's the second exercise that people move to after that?

**Abe Asfaw:** The second exercise is, in my mind, one of the more exciting ones, where you go from knowing what a quantum circuit is to then running it on a real quantum computer. So, everyone gets experience running the quantum circuits that they built in the first exercise and the second one. And really the kind of experience that you get from doing that is valuable. Because today's quantum computers are still under development, right? We have things like quantum noise in our systems that we need to learn how to work with. So people get a taste of what it looks like to be able to do things like readout error mitigation. So as you're getting the results back from the quantum computers, how you take those results and interpret them when you have some noise in the quantum system.

**SEE: Quantum computing analytics: Put this on your IT roadmap (TechRepublic)**

**Bill Detwiler:** What's the best way to think about quantum noise? When people ask you, what does that mean or how does that relate to the regular type of error mitigation that you're doing and programming? How does quantum noise relate to that?

**Abe Asfaw:** So let me give you an example of a standard error mitigation technique. If you and I are communicating right now and we have a very noisy channel between us, so you kind of hear what I say and maybe there's some blurriness to it. One easy protocol that you and I can take right now is to repeat the communication multiple times. And every time I repeat it, you can measure it and then take a majority vote. It sounds like multiple times I heard him say this, so I'll just assume this is what he said. So that's a standard classical mitigation technique. In quantum mechanics you can't play that game, because measuring a quantum state to understand what it was effectively destroys the quantum information and gives you one particular outcome instead of the large superposition of states that would be accessible with a quantum state. So the rules are different now and do you need to employ different error mitigation techniques, and we walk people through one of them in this exercise.

**Bill Detwiler:** Okay, cool. And I would imagine there are a lot of things like that that people new to quantum computing need to wrap their heads around when they start trying to code for quantum computers.

**Abe Asfaw:** Exactly. So the rules that change now are the things that we're trying to get people used to. As you're doing quantum programming, the two hardest parts to get used to are: one, that you simply can't do measurements like you used to be able to do on a real system; and secondly, the rules of quantum mechanics are just so different. Here, instead of using classical computing techniques, what you're doing is taking advantage of superposition, which is the ability to take a quantum state and have it become a combination of different basis states, to have interference between quantum states, and to have entanglement between quantum systems. So these three rules are very unfamiliar to a classical developer, and that's what you have to take advantage of to build quantum algorithms.

**Bill Detwiler:** So I think that's a great segue. As we talk about entanglement, as we talk about communication moving to exercise three, because that's where you get into one of the big areas where people think quantum computers will play a role in the future, which is cryptography.

**Abe Asfaw:** Exactly. And in exercise three we walk people through what's called quantum key distribution. And one of the earliest protocols for quantum key distribution is something called BB84. B and B stand for Bennett and Brassard who are the people who came up with this protocol back in 1984. Charlie Bennett still works at IBM and to this day is making a significant impact in the field. So there's a lot of history in this protocol. What we're trying to do here is show as information goes from point a to point b, we call these personalities Alice and Bob, if there's an eavesdropper in the middle who we call Eve, the question is how do you take advantage of quantum mechanics to find out if there was any sort of interference in that communication or if there wasn't. And the key point here is, as I mentioned before, as you're working with quantum states, measuring them drastically affects the quantum states. So you can use this to make sure that your quantum communication is secure.

**Bill Detwiler:** Right, because the theory would be, and correct me if I'm wrong, that if someone observed those states, you would be able to tell that that had happened and you would know that the communication was not secure.

**Abe Asfaw:** Exactly. So it's a modification of the classical protocol that you and I discussed earlier about taking a majority vote by doing something repeatedly, except now you add a flavor of quantum mechanics to it, where you say, "If there was a measurement, I know that there was some sort of interference."

**SEE: How to build a quantum workforce (TechRepublic)**

**Bill Detwiler:** And these are some of the news announcements that we saw maybe come out in the last few years. Various agencies talking about being able to create secure communication channels between the earth and satellites, things like that, being able to use quantum computing to try to do that, right?

**Abe Asfaw:** That's right. So there are many different parts of quantum that are exciting to study. One is quantum computing using quantum to do any sort of information processing, the other is communication itself. And maybe the third part that doesn't get as much media attention, but should, is sensing -- using quantum computers to sense things much more sensitively than you would classically. So think about sensing very small magnetic fields for example. So the communication aspect of it is just as important because at the end of the day it's important to have secure communication between your quantum computers as well. So this is something exciting to look forward to.

**Bill Detwiler:** Okay, so let's talk about the fourth exercise because that's where I guess you really ramp things up a little bit. Give us a break down of what's involved in that one.

### Quantum Computing

**Abe Asfaw:** Okay. So this has been the most rewarding part of designing this challenge to see how people are coming up with clever solutions to the following problem. So the problem is, if I give you a quantum circuit, effectively what you're doing is taking a series of operations and applying them on some qubits in your quantum computer. To each circuit there is a matrix that corresponds to the series of operations that are applied. So every time you give me a circuit, I can tell you the unitary part of that circuit, which is just the set of quantum operations, looks like the following matrix.

Now the question is, if I gave you the matrix instead, can you do the reverse? Can you tell me what circuit generated that matrix? This is a hard problem in general, and it's really exciting. So we gave people a very small matrix. It's not that big of a matrix and we set it up so that we can see different creative ways that people go back from the matrix to the circuit that generated it. And I'm seeing so many creative ways of solving this problem, Bill. It's really rewarding to see this after having made the challenge.

**Bill Detwiler:** And is that something that you maybe find most interesting about the challenge -- that you get to see people that are using novel ways to solve problems that even you didn't think of, that you didn't think about? You're seeing the unexpected inventions come out of this, right? You're seeing new ways that people were like, "Oh yeah, that could work. We have practical applications for that."

**Abe Asfaw:** That's right. And people are coming up with clever ways that we didn't think about -- but more importantly, taking this problem really requires understanding things deeply. Being able to go from the matrix to the circuit requires for some people writing down equations and solving those equations on paper and then writing down a quick script to solve it. For other people that requires writing different circuits and trying out 'what did this small change that I did to a circuit do to the matrix?', and trying to go back and forth between the two. The rewarding part of all of this is seeing the amount of learning that's happening. People going from exercise one, starting with no quantum background and finishing all the way through exercise four, I think that's a huge, huge step for someone to make and it's really exciting to see that many people learning.

**SEE: Hiring kit: Python developer (TechRepublic Premium)**

**Bill Detwiler:** Do you have a sense from the people who participate in the challenge -- and I don't know whether you collect data about the people that participate -- but do you get a sense that there are people with a previous engineering background like yourself, or are they people with a coding background or are they people with an IT background, or are they people who are just interested in this? Who do you find participates in the challenge?

**Abe Asfaw:** You'll find that traditionally the field has been dominated by PhDs in physics and electrical engineering. So when you talk about quantum computing, if you look at any of the research labs today, you'll find that most people have that kind of background. The work that I'm doing with all the quantum education effort within our team is to make sure the barrier to entry is lowered to the college level. So anyone with any sort of programming experience and a little bit of linear algebra -- the kind of math that you take in freshman year of college -- can attack these problems. So if you look at the kinds of people who are taking this challenge, you'll see various STEM -- Science, Technology, Engineering and Math -- people with that kind of background. But what we're starting to see is people crossing over from other fields.

Finance is one of the ones where we see a lot of people coming from, and that's for good reason. There are some quantum algorithms where we expect to see some advantage from quantum computers. We're seeing a lot of people from data science because there seems to be a very good motivation to study quantum machine learning. So these are the kinds of backgrounds that we're seeing overall. The most rewarding thing for me to see is not just college students, but people from high school and middle school attacking these problems. You can see their responses on Twitter, when you ask 'how did you solve this?', that they're so excited about quantum computing and they're learning every day and consume any material that we put out.

## Qiskit: IBM's open-source tools for writing quantum computer code

**Bill Detwiler:** Yeah, that's really cool. Let's talk about the tools. We talked about people who are interested in the challenge and taking the challenge. What are the tools that people need from a software, an online or a hardware [perspective that] they need to kind of start with quantum computing? Where can they get the tools as part of the challenge, or how do people just physically go to actually, "Oh, here's how I build a circuit. Here's how I run the circuit."

**Abe Asfaw:** So the first tool that you need, and one of the most important tools is the one that gives you access to the quantum computers. So if you go to quantum-computing.ibm.com and create an account there, we give you immediate access to several quantum computers -- which first of all, every time I say, this just blows my mind because four years ago this wasn't a thing. You couldn't go online and access a quantum computer. I was in grad school because I wanted to do quantum research and needed access to a lab to do this work. But now you can just log into a website and immediately get access to quantum computers.

To help with using these quantum computers we have open software called Qiskit, that's Q-I-S-K-I-T. So qiskit.org is where you'd find access to the software. So in my work, one of the things I do is make sure that people have all the right tools to get started with quantum computing. So you'll find an open-source online textbook at qiskit.org/textbook, and having the textbook open and the quantum computing website that I mentioned open, you can be looking at snippets of code and writing the code and testing it yourself on a real quantum computer.

**Bill Detwiler:** And I think what is striking for me too, having been in technology for longer than I care to admit to, is that you're actually accessing IBM's quantum computers -- you're actually going to run this not on a virtualized quantum computer or an emulator type set up on local machine, but you're actually going to be able to run this on real hardware somewhere. It reminds me of the old supercomputer days, where you would write your code and then you would submit it up to the computer and then you would, "Okay, when am I going to get time to run this thing? When am I going to get my simulation back? Okay, it's going to be two days. It's going to be tomorrow. Okay, well I'll wait here. Wait to get the data back. Oh your batch ran. You got your data back."

**Abe Asfaw:** So let me tell you about how confusingly good the progress is here. So four years ago, no quantum computers available. Right? All right, so now quantum computers become available. Everyone gets excited and wants to access the one quantum computer that we have online. Which means now you need to think about exactly what you said, which is "how do I get time on this thing?" There's a public queue -- we all want to access this device -- so now you have to wait a long time. And gradually we've been increasing the number of quantum computers that we have online. We have 18 of them now, which again is another confusing number. It's not one or two quantum computers -- 18 quantum computers, which means now when you send your job, you don't need to wait as long as you used to a few years back to do this. So we're going from the timeframe when you needed to think about, "How do I get time on a quantum computer?" More to the question of "what kinds of interesting things can I try on a quantum computer because it is available and readily accessible right now".

**SEE: Hiring Kit: Application Engineer (TechRepublic Premium)**

**Bill Detwiler:** And I guess maybe one of the questions that a lot of people have is, "What can I do with this? What are the right kinds of problems?" We talk about quantum computers being very good for optimization problems, or we talk about them being good for maybe chemical assimilation problems, whether it's chemical simulations, environmental simulations, drug research, things like that. And then maybe on down the road, AI, and we talked about quantum as it relates to communications. What are some of the ways you're seeing people use the quantum computers? I mean what problems are they trying to solve?

Because I can sit here at my desk and think, "Man, you know, that would really be cool. I'd like to try this. I'd like to write this, but I don't know what I would solve. Do I just want to know the quickest route for me to get from my house to my office and have it run every computation of every road and every left turn and right turn." That sounds cool, but it also sounds like a waste. I don't want to take up time on one of IBM's machines when it could be devoted to solving a health crisis, solving a cure for disease, finding something much more important than what's the optimal way for me to get from here to the office -- if we ever go back to the office anyway.

**Abe Asfaw:** So two things to think about. The first thing is that a quantum computer is just not going to replace the laptop that I'm using to talk to you right now. A quantum computer is going to work in union with a classical computer. We just talked about a few examples. You take a quantum circuit, you measure the output of that quantum circuit and then you interpret whatever that output was relative to the problem that you're trying to solve. Well, the problem that you fed to the quantum computer presumably it was some real-world problem, which means there's nothing quantum about it. It's a classical issue. You have some numbers, you want to feed that kind of set of numbers in some special way to a quantum computer. So all of that is done by a classical computer. And then you want to get the results back from the quantum computer and process them, which is also a classical thing.

So we'll always be in this regime where quantum computers and classical computers will work together. So now the question becomes, "Well, if you have these two working together, how can you extract some sort of advantage from them?" So the kinds of examples that I'm seeing people working on fundamentally are all about learning how to take your problem. For example, let's say it's simulating a molecule. Learning how to take that problem of, "Let me simulate this molecule to a real quantum system." How do you map that problem onto a real quantum system? And once you do, how do you take the results back out and interpret them? And in the presence of noise in today's systems, how do you overcome noise and extract meaningful results from quantum computers? These are the kinds of things that people are doing. Learning how to map problems, and learning how to work with the quantum computers today.

**Bill Detwiler:** And what gets you the most excited as you look at the next one year, two years -- and we've talked about the progress that you've made in just the last four years? What gets you the most excited in the immediate near term future?

**Abe Asfaw:** This is a very biased opinion. Okay. So let me preface this by saying my background is in physics. So I'll say something along the lines of physics. The fundamental motivation for building quantum computers is to use quantum mechanics, which is inherently what we're using here to compute, to understand systems that are quantum mechanical in nature. So to get a better glance at nature using the fundamental principles of nature that we know best today. So for me the most exciting thing is seeing, as these quantum computers grow in size, the number of qubits grows, the quality of the qubits grows, and overall we're getting better and better systems, what kinds of new physics that we haven't seen before can we simulate on these systems? And maybe a sort of related topic is what kinds of chemistry problems are people solving on these systems that can have societal impact that a large scale?

So all of these require taking advantage of quantum mechanics to compute something to then learn more about quantum mechanics, to then make better systems. So it's this feedback loop that I'm very excited to monitor as the years go by.

**Bill Detwiler:** Well Abe, I really want to thank you again. I appreciate you taking the time to talk to us today. This has been a great conversation. Where can folks go to learn more about IBM's Quantum Challenge, quantum computing in general to get the tools that they need to get started?

**Abe Asfaw:** So thanks for having me Bill. So the quantum challenge is at ibm.co/quantumchallenge and all of our quantum computers are accessible at quantum-computing.ibm.com. And the learning materials that we have can be accessed at qiskit.org/education and that includes our textbook, series of videos that we have to help people, all of these things wrapped up together in one webpage.

## Also see

- How Talent Path is helping people jumpstart their tech careers (TechRepublic)
- Kotlin: How JetBrains created Google's preferred Android programming language (TechRepublic)
- Developer doing good: How one coder is helping feed his community during the COVID-19 pandemic (TechRepublic)
- Get TechRepublic's Dynamic Developer podcast (TechRepublic)
- 5 developer interview horror stories (free PDF) (TechRepublic)
- Photos: The 20 most influential programmers of all time (TechRepublic)
- Low-code platforms: An insider's guide (TechRepublic)
- Chaos Engineering: A cheat sheet (TechRepublic)
Programming languages and developer career resources (TechRepublic on Flipboard)