Learning F#
2014-01-04 19:16:39My main programming language when I was studying was, as for many other developers, Java. There were other languages too, but Java was the main tool for learning basic software development. Later in my work I came in contact with C#, and since then I have come to prefer it over Java due to its features and ability to quickly evolve, and the extensive .NET API.
The basic aspect of C# is the object orientation which works similarly as in Java, although there are subtle differences. However, what makes it a bit more exciting are other features such as dynamic, async/await and functional. The latter is something that has gained quite a lot of popularity, although it's not a new paradigm. It was this aspect of C#, and in practice LINQ, that got me curious about functional programming in general.
I decided to take a closer look at F#, partly because it's a member of the .NET platform but also because it seems to be developed from a pragmatic point of view. It is also very exciting that it is open source, seems to have a friendly community, and has support on several different platforms. Also noteworthy, at the time of writing F# has risen from position 45 to 16 in the TIOBE index.
I am still very much a beginner, but in the spirit of recording things here are the resources I have used so far.
General
- fsharp.org - A hub for information about F# and the first place you should look.
- tryfsharp.org - This site is amazing, it has a tutorial including an editor (with intellisense!) that works by using Silverlight to host the F# compiler in the browser.
- fsharpforfunandprofit.com - A general site for learning F# that contains a lot of information in the form of tutorials and posts.
- F# Language Reference - F# on MSDN.
- Learn X in Y minutes, where X = F# - To the point information about F# in the form of code examples.
Blogs
These are blogs, related to F#, that I try to read as often as possible, in no particular order.
- Rachel Reese
- Devjoy
- Visual Studio F# Team
- Tomas Petricek
- Sergey Tihon
- Michael Newton
- Kit Eason
- Don Syme
Books
There are several book suggestions on fsharp.org, and the one I got and am reading is Functional Programming using F#.
Videos
When I was at Öredev I attended a couple of sessions on F#.
F# for C# developers by Phil Trelford
Discovering Type Providers in F# 3.0 by Rachel Reese
Podcasts
The .NET Rocks show has several shows where they talk about F#.
Practicing
Project Euler is a good resource to use for practicing problem solving using programming. Other than that I have used F# to solve a problem that interested me, and there will be a separate blog post about it later. I will keep using F# wherever it feels like a good fit, because for me personally trying things out is what works best when learning something.