summaryrefslogtreecommitdiff
path: root/content/post/2017-08-16-tapl.md
blob: 59b3fa79dbe7b2dc126d59f3d78e5491bb460c6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---
date: '2017-08-16T00:00:00Z'
tags:
- tapl
- rust
title: Types and Programming Languages
---
February 2016, as a birthday present to myself I bought a copy of [Types and Programming Languages](https://www.cis.upenn.edu/~bcpierce/tapl/).  At the time the only thing I did with it was to take a photo of it, sharing it on Twitter and congratulating myself.  To be fair, I did try reading it, but it was so intimidating that I gave up very early in the book. One and a half years later I’m going to give it another go because a few things have changed.

First of all, I should say that I've no academic background in computer science—I've studied Zoology.  I easily get frightened by any text with more than a few lines of maths in it especially when it's heavy on symbols which I don't know, and Google doesn't help.  I've had many attempts at learning maths—watching YouTube videos, reading books—but I always gave up mostly due to lack of discipline in doing the exercises.  A year ago I decided to do something about it and enrolled into DIT's [B.Sc. in Information Systems and Information Technology](http://www.dt249.ie/). I thought if I'm paying a substantial amount of money for a class in a relatively well-established institute it might help. To my unwelcome surprise, the course isn't heavy on maths, but it was an immense help, discipline-wise, nonetheless.

The second thing was that due to some unforeseen circumstances, all of a sudden I found myself with plenty of free time and I didn't want to waste this once in a lifetime opportunity.

After deciding that I want to read the book and be rigorous in doing the exercises, I had to choose a programming language to do the exercises in, and I found it a good excuse to give Rust a try.

I also decided to publish my progress both as in [code](https://github.com/amir/tapl.rs) as well as in a series of blog posts, as suggested by a wise man, [Iain](http://iainhull.github.io/). Hence this blog.