Change of mind. Learning F#

Why? Also, where to start with functional programming?

Update on goals

If you read any of my previous posts they were about starting to learn Go. This is still a goal of mine but after some chats with co-workers I decided that learning a new type of development beyond Oject Orientated so I am putting a pause on my Go education and learning a Functional language as I think this will improve my ability to solve problems as I can reason with them from a different angle.

I had debated deleting my old Go posts and starting fresh but I feel like this gives a good insight into how goals can change frequently and you have to constantly revisit them, be open to change and be able to adapt quickly.

Where to start with F#?

Luckily the F# website has links for where to start with learning. So I picked the link that said F# for C# devs as I feel I fit the criteria there.

The first thing to learn is how to “think functionally” which I think will be interesting, F# will just be a tool that enabled me to do so, so that’s the real objective. In doing so it will allow me to write effective F# code to solve problems.

Step one is to get me up and running with F# development. There is an installation guide on their website which is helpful.

I installed Ionide-fsharp extension within VS-Code in order to do my development and installed the other tools required for development on windows.

Next was why use F#?. This is just me working down the “Getting stared” section of the F# Website linked above.

Next steps

I created a repository here where I have added in some Interactive Examples.

The next steps according to the https://fsharpforfunandprofit.com website is to follow through the whole of the “Why use F#” documentation of which there are 30 pages. So it seems like I will be doing a lot of research before I get to develop any code. This is alongside other programming reading I have set myself. There is plenty out there to learn, I just need to be sensible in what I choose.

My goals are currently;

  1. Learn C# in depth
  2. Begin learning F#
  3. Learn Go

Concerns

I wanted to check if it would be possible to use F# with dotnet core and it is!. This makes it more appealing as I can write cross platform applications with it!

What if I want to use this language to solve a problem and then somebody else comes along who doesn’t know F# and can’t understand it? So even though this might be the correct tool it might make it less appealing. There will have to be a strong argument to use this to execute logic over regular C# and the barrier to entry of learning F# will have to be quite low, or at least easy enough to understand what might be going wrong

Written on August 26, 2018