Skip to content

Learning F# – Part 1

About 2 months ago Peter Keše introduced me to the world of F# via a crash course in the language and some of its benefits. It got me interested and here are some of my notes and points of frustration at this point.

Good things

JetBrains Rider is great IDE and since I already have it as part of license I decided to go with it.

GitHub CoPilot and CoPilot chat sometime give useful suggestions. They also to tend to hallucinate a lot. Since I’m mostly in learning phase I’m turning off auto-suggestions to force myself to think.

F# Discord community is amazing. The amount of discussions and how quickly I could get answers is amazing. It’s also full of people asking very detailed and expert question which makes it poor choice for passive learning at my beginner stage.

Friction points and mixed successes

Online teaching of F# isn’t really beginner friendly. I watched through the F# Community promoted tutorial “F# for Beginners” and it mostly a tech demo and not so much a ramp up to be successful with the language.

One of the side-quests I made is that to read Domain Modeling Made Functional as a way to learn more F#. I did learn more about architecture but I still struggle with writing code. I don’t mind as it will help me create better Python and TypeScript apps.

Overall I’m having quite a bit of problems with fully understanding difference between collection types and how to deal with strings and characters. I’m looking for a better resource about it to grok it better.

I’m enjoying Exercism platform to practice writing smaller apps. While lacks good intro to language itself it makes it up with nice problems that come with tests. I really enjoy seeing different community solutions.

Standard library is highly confusing. There are concat functions – System.String.Concat and String.concat . I’m still looking for a good tutorial on how to navigate things like this.

Unexpected successes

Reading Grokking Simplicity as part of learning process helped me gain new vocabulary for concepts and terms that I learning through teamwork before.

Learning much more about Microsoft’s .NET ecosystem and different UI toolkits that exist. I’m now more aware disconnected different technology bubbles are.

Next steps

At the moment I’m working through Grokking Functional Programming. I think it won’t help me with writing more F# but should provide useful knowledge for later.

Do more Exercism exercises.

Read Essential F#.

Leave a Reply

Your email address will not be published. Required fields are marked *