Programming languages I’ve learned in order

Inspired by this post on nodnod by DZ that I found today while randomly browsing. I’m taking liberties with the term programming language, but it’s my blog so bite me.

  • BASIC on an Apple II and on what I think I remember as a TRS-80.  My dad had a book on chaos theory that had a long appendix section containing programs for generating pretty pictures on a computer in BASIC.
  • Hypercard.  I wrote a ton of stupid adventure games in hypercard after seeing The Manhole (a precursor to Myst).
  • Applescript seemed more powerful than Hypercard because it could script the OS. Turned out most applications didn’t support enough calls to be very interesting to me when I was 12.
  • C at the Iowa State University Summer Programs for Youth (ISPY) computer camp. We wrote some neat programs like Hanoi Towers with a nice ASCI art animations  but my favorite that summer was written by another camper that repeated back answer to questions.  As with DZ, I also had a copy of Learn C on the Macintosh.
  • Pascal just to understand the Macintosh Programmers Reference Library books that my dad’s students had around the lab for writing ChemViewer.
  • Perl. I like to pretend that I don’t know perl so that people won’t give me code in it, but I’ve gotta admit that for string matching it’s pretty darn good. Python 5 will crush this though.
  • UNIX shell programming is an ongoing project but I first learned it when I had Linux version 1.2 on my first pentium machine.  That thing was sweet.
  • HTML for a job creating personal webpages for the Chemistry Department at the University of Illinois while I was in high school. They were blue.
  • FORTRAN is weird and old but I had a job in undergrad at the University of Texas designing genetic algorithms for HPC application.  When in Rome…
  • Java for the introduction to programming course I had to take at the University of Texas.  I don’t like writing Java but their documentation is fantastic and I think of that whenever I’m writing.
  • Python is the worlds greatest language and I do everything I can in it. I’ve written everything from websites with django to a modestly sized logic gate router. When people who don’t love computer science want to learn to program, I usually point them here.
  • C++ for the course I took for the second course I took on programming.
  • Matlab is fantastic for data analysis but also for generation. In undergrad at UIUC I wrote an additive-synthesis tool for reproducing my voice in matlab. It’s also great for when you need graphs and statistics.  This is another top choice for non-computer types who need to do real work.
  • Assembly language for X86 for ECE 291 at UIUC (both NASM and the other one).  My team and I wrote a fantastic 3-D battle game with 3-D rendering, sound, and UDP multicasted networking all in assembly: 3-D Tankwars. I also use X86 all the time for my security work and debugging.
  • VHDL and to some degree Verilog for my FPGA projects.  All ECE students should definitely take a semester with an FPGA.
  • OCAML for the Programming Languages and Compilers class in undergrad. I can also say I used it once afterwords because the VMware vprobes emmet translation tool is in ocaml.
  • Assembly in MIPS for my masters thesis project developing security extensions for the MIPS-based DLX processor on an FPGA.
  • Processing is amazing for doing neat artsy graphical things. It’s basically java but with a bunch of built in libraries, an IDE and fantastic documentation. The integration with openCV and my Kinect make it my choice for mocking up pretty things.  One problem is a lack of normal UI elements. I guess I could take a crack at that.
  • Arduino, basically java for embedded Arduino devices. Anyone wanting to make little blinky projects should do this or PIC.  I’m not a PIC guy though so you’re on your own.
  • PHP for an online form I was writing.  I found a nice multi-file upload program in PHP so i figured I could learn it and use it for the rest.  Worked fine, but I decided to migrate to django to do it right.
  • Javascript and CSS are pretty bizarre but I needed them for a website I did recently.

I’ve tried to write a sentence which counts up the number of languages I’ve learned but I keep adding them and throwing off my count.

So in summary, programming is fun.

This entry was posted in Programming, Projects and tagged , . Bookmark the permalink.

Leave a Reply