online courses that I attended ..
- Probabilistic Graphical Models (Daphne Koller)
- Functional Programming Principles in Scala (Martin Odersky)
- Neural Networks in Machine Learning (Geoffrey Hinton)
the best of the papers that I read ..
I usually read lots of papers on my subjects of interest. The total number are too many to list here. But here are a few of them, mostly from the domain of programming languages and type theory. In this regard I must confess that I am not a programming language theory person. But I sincerely believe that you need to know some theory to make sense of its implementation. That's the reason I think programmers (yes. serious programmers using a decent programming language with a static type system) will do better to learn a bit of category theory.
As I mentioned at the beginning, currently my programming language of choice is Scala and I have been exploring how to write better code with Scala's multi-paradigm capabilities. Though I tend to use the functional power of Scala more than its object oriented features, there are quite a few idioms that I use where I find its object oriented capabilities useful. Scala 2.10 will now be released any time and I am even more excited to try out many of the new features that it will offer.
Ok .. here are some of the papers that I enjoyed reading in 2012 ..
- An Introduction to Programming and Proving with Dependent Types in Coq - Adam Chlipala
- Theorems for free! - Philip Wadler
- Totality - Conor McBride
- Proofs are Programs: 19th Century Logic and 21st Century Computing - Philip Wadler
- Data types à la carte - Wouter Swierstra
- Agda-curious?: an exploration of programming with dependent types - Conor McBride
- Ideal Hash Trees - Phil Bagwell
a few good books ..
This is also a different list that what I expected at the beginning of the year. It's mostly due to my focus on machine learning and AI related topics that I took up in course of my journey.
- Causality: Models, Reasoning and Inference - Judea Pearl
- Probabilistic Graphical Models: Principles and Techniques - Daphne Koller
- A World Without Time: The Forgotten Legacy of Godel and Einstein - Palle Yourgrau
- Neural Networks for Pattern Recognition - Christopher M. Bishop
- Turing (A Novel about Computation) - Christos H. Papadimitriou
- Practical Foundations for Programming Languages - Robert Harper (Read the freely available ebook)
- Haskell: The Craft of Functional Programming (3rd Edition) - Simon Thompson
3 conferences in a year - my best so far ..
This was my second consecutive PhillyETE and I spoke on functional approach to domain modeling. In case you missed it earlier, here's the presentation up on slideshare. I combined my PhillyETE trip with a trip to London to attend ScalaDays 2012. It was a great experience listening to 3 keynotes by Guy Steele, Simon Peyton Jones and Martin Odersky. I also got to meet a number of my friends on Twitter who rock the Scala community .. it was so nice getting to know the faces behind the twitter handles. Later in the year I also spoke at QCon NY on the topic of domain modeling in the functional world.
One of the conferences that I plan to attend in 2013 is The Strange Loop. It has been one of the awesomest conferences so far and I hate to be tracking it only on Twitter every year. Keeping fingers crossed ..
some plans for 2013 (Not Resolutions though!)
In no specific order ..
- Do more Haskell - Haskell is surely in for some big renaissance. I just spent a couple of hours of very productive time watching Edward Kmett explain his new lens library.
- Continue Scala - obviously .. needs no explanation ..
- Explore more of machine learning and work on at least one concrete project. I am now reading 2 solid books on ML theory - as I mentioned above I feel a bit uncomfortable learning implementations without any of the theory that drive them. While both of these books assume a solid background of mathematics and statistics (which I don't have), I am trying to crawl through them, greedily accumulating necessary math background as much as I can. Wish I could take a sabbatical leave for 1 year and finish both of them.
Guess that's all .. See you all on the other side of 2013. Happy holidays and have a gorgeous 2013.
2 comments:
If you have a bit of time I'd like to know how you use this knowledge in your evangelist job: how do you reach the masses with FP and ML in your company?
Hi Eric -
I admit it's difficult. Still I am trying with continuous evangelization and demonstration by practice how the principles of FP helps write better code. By better code, I mean with respect to readability and reasoning. The best way to start is from "tests" - writing tests using frameworks like specs2, ScalaTest, and ScalaCheck has helped a lot.
Post a Comment