Tuesday 11 February 2020

Starting a blog and learning Haskell again.

For a while now, I've had it in the back of my mind, that I should learn Haskell again. By 'again', I mean that, in theory at least, I've already learnt Haskell once before since it was taught in the first year of my Computer Science degree. But that was back in 2005 which feels like a dim and distant memory now. I just about recollect muddling through some coursework assignments and I still have my copy of the textbook we used - Haskell: the craft of functional programming by Simon Thompson. That course was interesting because object-oriented and functional programming styles were taught in parallel and each assignment was to be completed in both Java and Haskell. For some reason, at the time, Java didn't make any sense to me and I recall solving the exercises relatively easily in Haskell and struggling or even failing completely to achieve the same results in Java. This was odd since the programming course from the preceding semester had been taught in C, which I got on with fine, and Java is supposed to follow on quite naturally from C. Java did eventually click though. Over a summer holiday I read a copy of Java Concepts by Cay Horstmann, which I thoroughly enjoyed, after which object-oriented programming finally made sense. So much so that it eventually led to my first software development job which was as a Java programmer.

Since that course at University I haven't really touched Haskell at all. Around 2008 it seemed to me that Haskell was still perceived as quite academic and not widely used in industry. Today however there seems to be a huge interest in functional programming and lots of companies are using it to greater or lesser extent. So it feels like there is no better time to dust of the textbooks at get stuck in again. I remember with fondness how different Haskell felt to the C family of languages. I liked how clean the syntax was and I liked how it made me think differently. I also remember that I don't think I ever really felt like I fully understood Haskell as a language - I was never proficient in it - and that is something I'd like to change with this second attempt at learning it.

I thought following some kind of online course would be a good idea and there seem to be online courses for everything these days. Strangely for Haskell they are in short supply. The best I could find was a MOOC on Functional Programming. This course is archived but the content is all still available so I have chosen to follow this as best I can given it appears to be the only available option. Fortunately this course is based on a textbook, which by coincidence, I happen to have a copy of - Programming in Haskell by Graham Hutton. Along side this I also thought it would be good idea to get some experience of a web-frame work so I also plan to read Developing Web Apps with Haskell and Yesod at the same time.

It also seems to be a good idea to keeps notes on how I'm doing - hence the blog. These will probably be very boring and may only be of any interest to myself but perhaps someone might find my experience useful.

Books

Resources

No comments:

Post a Comment

Installing LaTeX

I wanted to use LaTeX today and since I'm using a new laptop and I don't have it installed. So here are my notes from how I went abo...