Advice on Studying Programming Languages

Michael Stone, February 24, 2013, , (src)

Contents

Dear Student…

Amateur study of programming languages has been extremely valuable to me, first as an inexhaustible source of curious insights and second as an economic signal 1. As a result, when a favorite professor wrote to me for advice on where to direct you, I figured that I might be able to do us both a favor2 with the following “reply to public”. Thus, without further ado, here are some of the PL people, projects, venues, and other resources that have been helpful to me so far.

Blogs and Aggregators

Conferences, Symposia, and Workshops

I’ve found that informal workshops and symposia are great places to meet implementers and theorists whose work I respect. Some of my favorite venues have been:

I’ve also heard good things about some of the more formal venues like

though I haven’t yet attended any of their events.

Teachers and Research Groups

There are a variety of good PLT research groups on the US East coast. Some of my favorites include:

Even better, these folks often host seminar series (announced via mailing lists like programming@eecs.harvard.edu and pl-seminar@lists.ccs.neu.edu) that, if you ask nicely, you can attend.

(Note: there are many other awesome PL research groups on the US East Coast, in Western Europe and on the US West Coast but, for the most part, I’m less directly familiar with their work.)

Math Books

As I got deeper into PL, I eventually ran into math that was beyond my ability to efficiently learn via self-study. Fortunately, I sought help from another favorite professor and, together, we developed a summer reading program that really helped me to connect my undergraduate study of math with my interest in PLT via some classic books like:

Applied Works and Authors

These projects and people have all done work that I’m glad to have used and studied:

and, of course, I can’t leave out the debt owed other members of the ALGOL family:

Programming Language Meetups

Tech centers like Boston, San Francisco, New York, and Philly often have monthly programming language user group meetings like these:

and many others that I have never had the pleasure of attending!

Self-Study Techniques

Finally, aside from reading voraciously and from going out of my way to search for languages that seem appropriate for the problem of the day, the most useful technique that I’ve found for really learning the idioms and quirks of new languages is to systematically implement one or more of a suite of toy problems (2-d line rendering, Paxos, line-oriented network protocols or UNIX utilities, data structures) that I’ve accumulated over the years.


  1. Both of the hiring managers for the two jobs I’ve held so far have remarked that I came to their attention in part as a result of my working knowledge of Haskell.

  2. Like PL? If so, this Security Architect might interest you…