I graduated from the Rochester Institute of Technology in 2015 with a batchelors in Computer Science and a minor in Deaf Cultural Studies.

Science, mathematics, and linguistics peak my interests and fuel an urge to learn more about the universe we inhabit. Subjects I enjoy following include:

###Acquired Programming Languages

  • Objective-C
    • An attempt to jam Smalltalk-style dynamic objects within C. I’d call it a success, or at least close enough.
    • Tought myself the basics of the language, then went to Apple Cocoa Camp 2011 where I formally learned iOS development.
    • Using the dynamic object system, I’ve created classes which automatically implement their methods based on the method name and class name. It was pretty cool.
  • Swift
    • Apple’s hip new cool shiny modern language whose goal in life is to make programming safer for everyone.
    • Since many of the ideas introduced in this new language are in ML-languages, and since the semantics are heavily infulenced by C++ and C#, learning this language came easily.
  • C and C++
    • Two classic languages every programmer’s heard of. Their aim is efficiency and speed.
    • Many of my personal projects are done in C, such as Reggie the Regex Parser and Chunktional. These projects helped build up my thurough understanding of C macros and semantics.
    • Understanding C semantics and programming styles/patterns lead me to a better understanding of the semantics and purpose of C++. This has given me a good sense of when using certain C++ features makes the most sense, and when others would just get in the way of writing good code.
  • Google’s Go
    • Go has a great channel and coroutine based concurrency model which reveal concurrency patterns that would spoil any programmer.
  • Haskell
  • Standard ML
    • My first ML.
    • Yet another great strongly-type-inferred functional language.
  • Scheme
    • My first functional language.
    • Through playing with this language, I accidentally learned the lambda calculus while trying to create an iterative fibonacci sequence function using anonymous functions.
  • MIPS Assembly
    • My first assembly language.
    • Tought myself by writing a recursive fibonacci sequence.
  • Ruby
    • A great scripting language which I mostly use for manipulating large amounts of text.
  • Python
    • Another scripting language.
  • C#
    • Microsoft’s answer to Java, C# is a nice language with some modern programming paradigm ideas, such as anonymous functions (called delegates).
  • F#
    • Microsoft’s ML-style functional language, infulenced by OCaml.
    • Designed to run on the .Net Runtime and be compatible with all of Microsoft’s APIs.
    • Somewhat strange to program with. Programming with object-oriented APIs in a functional language is strange. The resulting programs have a weird blend of APIs from both worlds.
  • Java
    • A good language for teaching Object-Oriented design.
    • The JVM is a good piece of technology too.
    • The language could use some work, but with Java 1.8 they’re starting to move in the right direction.
  • JavaScript
    • An awful language we have to live with.
    • I’ve heard good things about ECMAScript 6, so hopefully that works out.
  • AppleScript
    • I learned this just because I thought it was a cool idea, even if it’s not very pratical for “real” programming.
    • This is cool in that it is heavily infulenced by Smalltalk, using a VM where the saved program code is one-and-the-same wiht the compiled binary code.
    • It had some really interesting ideas as a language. It’s too bad it never really caught on.

###Languages I’m Learning