Hi! My name is David Savoie, former professional mechanical engineer converted to software engineer only a year ago.
TL;DR
(def David
(let [startAs "Mechanical Engineer"
topics ["HTML" "JS" "Meteor" "React" "Ramda" "Haskell" "Scala" "Clojure"]
learn (fn [knowledge subj] (str knowledge " > " subj))]
(reduce learn startAs topics)))
Story
I started learning Web development from the ground up about a year ago (HTML, JS, CSS, MeteorJS, React, etc.). I’m still a beginner at all of this, but I’m deeply obsessed by it all… even more so since I discovered functional programming!
I stumbled upon Ramda.js while looking at utility libraries for my Javascript projects, like Underscore or Lodash. At first, it looked way too different than anything else, but eventually, I came to love it! I used Ramda extensively for one project in particular and it got me hooked into FP.
I studied Haskell for a while, trying to grasp the basic concepts. Eventually however, I felt it was too much to handle: monads, functors, applicative functors, declaring types all over the place and on and on… I’m sure it’s brilliant, but it was too much for me at the time.
I searched some more to try to find a more accessible FP language to play with and maybe use in production. I looked into Scala for a while, really enthusiastic about the multi-paradigm approach, until I tried to build something with it. I became frustrated with the complexity and boilerplate associated with it. Again, maybe I didn’t get it, but I looked some more since I deeply wanted an FP language I could use as a foundation.
Then I’ve found Clojure and I’m beginning to fiddle with it. This language really resonates with me, I do feel at home with it. I really hope to make it work right this time so I can actually work with FP paradigm day-in, day-out. Glad to join this community!
By the way, I’m in Quebec, Canada, and French is my first language!