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;
- Learn C# in depth
- Begin learning F#
- 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