F#rst Post

This article made me learn my second language when I hadn’t even gained confidence in my first. And I ended up trying to use the new one more- slowing down both for awhile and affecting my CSC135 grade. By the time I touched my third, I ended up gaining more confidence on the first two; the fourth one had me cross pollinating patterns and practices.

Languages that taught me newer ways to think, sported interesting “super powers”, and/or were just plain fun kept being used/enjoyed/talked about; others didn’t go beyond syntaxes. I Hello Worlded F# last week followed by some gratifying *REPL*ing. It let me enjoy some new syntax, platform, and paradigm experiences. I will be writing about those experiences here.

I have type system envy. I always wanted to know an enjoyable (I did work with Java and Golang) statically typed language. I was mostly busy all of last year and most part of this one, and when I finally had some time, I started language shopping. Elm felt too limiting and ReasonML’s JavaScript resemblance wasn’t for me, though that led me to OCaml. But I got distracted and later on refocused on an Elixir project I was working on. It was during that time I was browsing Pragmatic Programmer books and Domain Modeling gone Functional caught my eyes. My intentions behind getting that book was to mentally convert the F# codes therein to Elixir and it worked wonders; then I got curious about the language, followed the author’s website, and speed read some of his posts. The syntax seemed clean and expressive, .NET was a never before explored territory, and I could see the possibility of learning some new tricks. I got hooked.

When learning a new programming language, I write numerous notes, draw lots of circles, triangles and squares and wavy arrows connecting them. I have a set of questions, combining answers to which creates an overview of the syntax that matches the way I think. I often end up checking back those notes when I start using the language seriously. This time around, I’d like to try out publishing those thoughts and experiences. With the great community F# has, probably my mistakes would be corrected, best practices pointed out and questions answered- ensuring a more interactive and smoother learning experience for me.

I just finished speed reading some tutorials and examples, scanning tweets, checking out book summaries, articles, posts etc. Looks like I survived step 0. Step 1 usually involves a more disciplined approach and clearer short-term intents. Along with that comes implementing algorithms, solving challenges, modeling real-life scenarios and mining books and guides. And this site exists for me to vent out all my experiences during that step onwards.

tl;dr: I have decided to seriously learn F# and I will keep a log of all my experience and opinions here.

comments powered by Disqus