Programming

Long before I was learning physics, I was doing programming! My first foray into the coding universe was when I picked up Microsoft Small Basic when I was around 7. The precise details of how I chanced upon it currently elude me, but I was really into mathematics at that time, and so I viewed programming as both a recreational offshoot and a (perhaps lucrative) opportunity to make video games. My very first program was a math quiz, and I have vivid memories of discovering what a for loop was shortly after working out how long it would take me to copy-paste and edit 200,000 lines of if-statements.

Later on I was taught C, at age 9, and then I self-learnt Java by reading the two volumes in the Core Java series by Cay Horstmann and Gary Cornell (the second edition, printed circa 2000!). Learning programming languages became something of a pastime after that, and I am now also conversant in C++, Rust, and - despite the repeated insistence of my younger self that it was not a “real” language - Python (spoiler alert: I love it now). For a long period, I was intent on becoming a game developer, and so I have many game projects in Unity strewn around too. I also enjoy app development, particularly in Flutter.

My favourite extended projects that I’ve undertaken include a chess engine, a physics engine and a machine learning library, all of which have undergone substantial rewrites and transcriptions into multiple languages. Some other smaller highlights include an editor and simulator for Conway’s Game of Life (discrete and smooth versions!), an FFT-based noise reducer, quantum chemistry calculations of observables in helium, a quantum tunnelling simulation, a ray tracer, and an ASCII art generator. I’m looking to expand my repertoire in hardcore scientific programming, as I sense it’ll be very handy in the future.