Programming Experience

I learned to program from Interplay's Learn to Program Basic - Junior High Edition after my dad picked this software up for me in 6th grade. I used this software to death in middle school, but when I got a brand-new TI-83+ graphing calculator in high school, I quickly started using my trusty calculator to program instead. I wrote a scientific code to simulate how the moon orbits the Earth using freshly-learned physics, a text-based psycho-analyst program inspired by the early chatterbot ELIZA, a program to calculate (and archive) as many prime numbers as my calculator could store, a program that did conformal mapping, a couple small games, and more. In my senior year, I saved up and bought myself a TI-84+SE because I had run out of the 22k of RAM on my TI-83+.

In college, I took a course at Calvin College (CS-214) in which we learned four very different programming langauges — C++, Ada-95, Smalltalk and e-Lisp — to give us a flavor of different programming language styles, concepts and paradigms. We also each chose a unique fifth language to learn and present as part of our final project. Due to my interest in scientific computing, I learned Fortran-90 and used it to implement John Conway's Game of Life. This course had as its goal for us to be able to learn a new programming language in two weeks. I consider this course one of the most valuable I have ever taken because I have needed to learn syntax and new languages quite often since then.

Later, I took another course at Calvin College (CS-374) about high performance computing. We learned how to program a supercomputer by getting each individual piece of the computer to talk together. In graduate school, I used these skills to help develop a next-next-generation framework for petascale dynamo simulation as part of a summer internship at NASA's Goddard Space Flight Center in 2012. I also had some opportunities to learn to use a graphics card (GPU) for additional computational speed. Through all of these experiences, I became hooked on high performance computing (HP)! I love thinking through different algorithms in serial and in parallel. I love using computational resources to solve scientific problems.

jess@localhost:~$ echo "Hello, world!"

To date, I have learned the following languages (or pseudolanguages), with my familiarity with them indicated in parentheses:

  • General-purpose Languages:
    • Fortran 90/95 (plus some 2003) (extensive)
    • MATLAB (extensive)
    • Java (heavy, intermittant use since 2012)
    • C/C++ (heavy prior to 2011 and then in 2020, light since then)
    • Python (moderate)
    • Ada-95 (light)
    • e-Lisp (light)
    • Smalltalk (light)
    • BASIC (heavy in middle school, haven't used since)
    • Excel VBA (light)
    • IDL (very light)
  • Scripting/Utility Languages:
    • LaTeX (heavy)
    • BASH (the Bourne-Again SHell) (heavy)
    • Makefiles (heavy)
    • TI-BASIC (heavy prior to 2006)
    • General *NIX shell commands (heavy)
  • Web Design Languages:
    • HTML / HTML5 (moderate)
    • CSS (light/moderate, as you can probably tell by this website)
    • PHP (very light)
    • Javascript / JQuery (very light)
  • Software "Pseudo-Languages":
    • vim (moderate)
    • Gnuplot (moderate)
    • PBS (portable Batch System) (moderate)
  • Noteworthy Libraries:
    • MPI (heavy until 2010)
    • FFTW (heavy)
    • CUDA (compute-capability 3.0 and below) (moderate)
    • OpenMP (moderate)
    • OpenGL (including JOGL) (light)
    • SDL (light)
  • Computing Environments
    • Operating Systems
      • Mac OS X (heavy)
      • Windows XP / Vista / 7 / 8.1 (moderate)
      • Unix / Linux (especially SUSE, Gnome, Ubuntu) (moderate/heavy)
      • IBM's z/OS (light)
    • Hardware
      • Supercomputers (various, including batch job submission) (moderate/heavy)
      • Local Area Network (moderate)
      • IBM's z-Systems mainframe (light)
      • Web servers (light)

The content of this page was last modified on Thursday, 10 March 2022 13:33:06 (MST).

I wrote the HTML and CSS for this website by hand in order to teach myself web design. It may not be the flashiest web page, but I am proud of it!