What I learned at UofT

1 minute read

My dissertation is nearing approval (touch wood) and I have started a new position as a Post-doctoral Research Fellow and lecturer at UBC. I wanted to summarize my experiences in grad school as a reflective exercise. I often found I got down on myself during the process: it is an incredible challenge to acquire a research Ph.D. at one of the top-10 computer science schools in the world. I’m extremely proud of my past selfs for persevering and allowing 2011 Neil to reap the reward, as it were. ‘Cause 2006-2008 Neils put up with a lot of sh*t.

These are all things I knew nothing about when I arrived for my PhD in 2004:

Languages and Tools

  • Python (matplotlib, numpy, networkx)

  • Lisp (SBCL and Clozure)

  • Git and SVN

  • Twitter, Facebook, Wordpress

  • Mendeley

  • Latex + Scrivener + MMD3

  • Flash / Flex

  • Sqlite

  • Ruby/RSpec/Rails/Gems


  • MDE with Eclipse and GMF

  • Logic programming with ATMS


  • Knowledge representation

  • Propositional logic

  • Non-monotonic logic

  • Latent Dirichlet Allocation

  • Agile software development


  • A smattering of Italian (via ferrate means “iron ways”).

  • The importance of good coffee.

  • How to change a diaper at 4am without turning on the lights.

  • Friends: It’s somewhat trite to say that it was the people you met who you will remember, but that’s true. I think one of the most enjoyable things about moving on to a new experience is the idea that there will be all of these people you will call friends in five years, of whom you know nothing now.

  • How to prepare and defend a 60,000 word opus starting with no knowledge of the area, no relevant background skills, and little to no published work. In that context seven years seems about right.

Thanks to my wife and family for getting me to this point. They found the right combination of “why are you doing this again” and “you can do it”.


Leave a comment