I’ve been looking at future careers recently, and one general piece of advice I had for most of the careers I’m interested in involve showing rather than telling people about my skills. I definitely consider programming one of my best skills (I’m self-taught and I speak 5 languages to different degrees of competence), so how do I show people my coding projects?
I’ve actually written thousands of lines of code for my PhD, most of which is throwaway, but it would be nice to show some of my more generally approachable projects. To that end, I’ve started up my GitHub account and started uploading things which I think are interesting. The first project I’ve picked out is a very recent thing I wrote called Hwavfn.m. It’s a toolbox designed to let a Matlab user visualise the Hydrogen wavefunction. It doesn’t stop there: you can actually use it to look at how superpositions of wavefunctions behave.
This type of program is significant to my PhD, which revolves around controlling atoms which behave a lot like Hydrogen (they are known as Rydberg states), and demonstrating that I can control the shape and size of their wavefunctions in quite a sophisticated way. I use the toolbox to visualise the kinds of things I can do to the atoms, as shown in the picture below.
What’s most cool about my usage of this package though, is that I can use it to simulate what the atom looks like over time. When you make a complicated state like the one above, it actually changes its appearance over time. If I leave the state in the picture above for a few picoseconds, you are more likely to find the electron in a completely different location!
Anyway, I have digressed a bit. I will be developing my toolbox to be a bit more user friendly (as well as refactoring some code and making some of the things you have to edit a bit less dumb). I expect that it can be used as an interesting teaching tool for showing what Hydrogen wavefunctions look like; for showing how superpositions work and what the results of the Time Dependent Schrödinger Equation look like. It’s quite exciting!
I’m expecting to update the package weekly, and hopefully I’ll achieve my goals for it in the next month or two. Currently it’s in the “practical but ugly” state which I had to leave it for work, and I’m looking forward to making a much better job of it over time.