DEV Community

Cover image for The programming languages I learned in my Quantum Computing job
imtarajones
imtarajones

Posted on

The programming languages I learned in my Quantum Computing job

If you want to feel like you will never stop learning then join a Deep Tech startup. I did. And I haven’t had a day that didn’t feel like I was learning more each day then entire months in my college degree. It’s an amazing feeling and a lot of hard work.

As a junior developer I learned the langugaes and tools of the things I found interesting and could work on for fun. Although I’m not sure that I would call Javascript and an infinite amount of frameworks anything remotely resembling “fun”. It wasn’t until I joined a company that has quantum computing projects that I really took this side of things seriously, and tackled a few “new to me” coding languages.

Turns out this was a good idea. Because quantum computing is an interesting use case for some of the Machine Learning roles out there, and it might be lucrative in the future. This is exactly what I’ve been working on lately! So if that’s interesting to you too, here’s what I recommend you learn, what you might expect to learn, and a summary of what I had to learn. All rolled in one.

Python

Python is probably the most popular coding language used in quantum computing. It’s a versatile language that’s pretty easy to learn and has a wide range of applications in this area. You will quickly come to find that Python is used in many quantum computing frameworks, including Qiskit, Cirq, and Q#.

Python’s popularity in quantum computing is due in part to a mix of simplicity and readability. It’s also an excellent language for data analysis and visualization, which are crucial skills in quantum computing. This is all helped immensely where Python has a lot of libraries and tools that make it easy to work with data, scientific workloads, and as a result, a lot of quantum computing frameworks.

Here’s what I used to learn Python

Julia

Julia is another popular coding language used in quantum computing. I wasn’t familiar with this until I started my job, and it seems to be a relatively new language that’s designed to be fast and efficient in the fields of science and analysis. Julia is particularly useful for quantum computing because it can handle complex numerical computations quickly and accurately.

Julia has a number of advantages over Python. It’s designed to be faster and more efficient than Python (although I can’t speak to this yet given the project work I use it on), but this in theory makes it ideal for large-scale quantum computing applications. Julia also has a number of libraries and tools that make it easy to work with quantum computing and other scientific frameworks.

Here’s what I used to learn Julia

C++

Okay don’t go running away screaming. It’s not as intense as it sounds. We all know that C++ is a powerful programming language and it’s no surprise that it’s also pretty commonly used in quantum computing. It’s particularly useful for developing quantum computing frameworks and libraries. C++ is a high-performance language that’s well-suited for applications that require low-level memory management and high-speed computation. This might not be what you work on day to day, but it’s always a good skill to have.

C++ is used in many quantum computing frameworks, including Qiskit and Cirq. It’s also used in a number of quantum computing libraries, such as the Quantum Toolkit and the Quantum Computing Toolkit. I’m sure there’s many others out there as well, but these are just the ones that I’ve used.

I’m not going to lie, C++ is a more challenging language to learn than Python or Julia, but it offers a number of advantages for quantum computing applications. It’s particularly useful for developing high-performance quantum computing algorithms that require low-latency computations. Or in my case, for being able to understand what my senior team leaders who are working on these use cases are doing, which in turn makes the quantum workloads that I’m contributing make more sense, and give more room to adapt and align with that “lower level” work.

Here’s what I used to learn C++

And that’s just a start…

Working in Deep Tech feels like a balance between excitedly pursuing the unknown, and a stress of not knowing enough to be able to effectively do so. Thankfully it’s mostly the first feeling, and we have so many resources now to help us in our learning journey.

Hopefully this helps others who are looking to make careers either in Deep Tech or quantum computing in particular, and even if you are a master of Python, Julia, and C++ you’ve always got Java and MATLAB and others to master too. The journey is never over. But today is a good day to start!

Top comments (10)

Collapse
 
michaeltharrington profile image
Michael Tharrington

This is really interesting!

It's cool to see a practical post like this on quantum computing. Nice to learn about the program languages that folks focus on in this realm.

Appreciate ya sharing this one with us!

Collapse
 
taradev profile image
imtarajones

Thank you for the feedback. I wasn't sure if anyone was really interested in the real life of working on quantum here.

Collapse
 
cicirello profile image
Vincent A. Cicirello

Learning Julia has been on my todo list for a while (just many higher priority things ahead of it on the list). It seems like a really well-designed language, and especially good for parallelism.

Collapse
 
taradev profile image
imtarajones

Maybe this is a good little nudge to consider putting an hour or two into it this weekend :) I'm going to do so to, so then we can both feel like we've made progress!

Collapse
 
makalin profile image
Mehmet T. AKALIN

nice coverage, also I've expected more tech details about cirq, q# and quipper.. etc. I remember I've heard about julia a decade ago but it was not popular then.. anyway learning more languages or being master on some, new learners should decide about that

Collapse
 
weyardwiz profile image
Weyard Wiz

C++? Interesting...I wonder if the white house piece against c++ due to "memory safety" is gonna make a difference now in Quantum or if their advise will be ignored

Collapse
 
bmetsmith profile image
Brooke Metoxen-Smith

What's the average time for each language to learn. Number of successful projects per language? Basically, when did you feel confident enough to move on?

Collapse
 
marishell profile image
Marishell

This is very helpful and practical! I appreciate you sharing these resources.

Collapse
 
opensourceyllen profile image
Yllen Fernandez

Thanks for writing this insightful article. How did you get in quantum computing on the first place?

Collapse
 
dwillcode profile image
Derrick Williams

Nice article. Thanks for sharing.