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
- Codecademy: Interactive lessons and practice problems. - https://www.codecademy.com/learn/learn-python-3
- LearnPython.org: A comprehensive tutorial site. https://www.learnpython.org/
- “Automate the Boring Stuff with Python”: A practical, project-based book. https://automatetheboringstuff.com/
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
- JuliaAcademy: A dedicated learning platform with a range of Julia courses on various topics. https://juliaacademy.com/
- ThinkJulia.jl: An adaptation of the book “Think Python”, this resource uses a similar approach to teach programming fundamentals with Julia. https://juliapackages.com/p/thinkjulia
- JuliaLang.org “Getting Started” Guide: The official Julia documentation provides a concise introduction to the language and syntax. https://julialang.org/learning/
- MIT Computational Thinking with Julia and Pluto.jl: Uses interactive Pluto notebooks for a highly engaging learning experience. https://computationalthinking.mit.edu/Spring21/
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++
- LearnCpp.com: A comprehensive site with tutorials covering everything from basic syntax to advanced concepts. https://www.learncpp.com/
- Codecademy: Offers beginner-friendly interactive lessons on C++ basics. https://www.codecademy.com/catalog/language/cpp
- HackerRank: Solve coding challenges and compete with others while honing your C++ skills. https://www.hackerrank.com/
- Effective Modern C++: Considered essential reading for mastering modern C++ practices. https://www.oreilly.com/library/view/effective-modern-c/9781491908419/
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 (11)
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!
Thank you for the feedback. I wasn't sure if anyone was really interested in the real life of working on quantum here.
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.
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!
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
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?
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
Nice article. Thanks for sharing.
Thanks for writing this insightful article. How did you get in quantum computing on the first place?
Boa noite, sou Felipe Moreira e gostaria de saber se é importante um Doutorado para quem quer trabalhar com Computação Quântica.
This is very helpful and practical! I appreciate you sharing these resources.