exercism / ocaml

Exercism exercises in OCaml.
https://exercism.org/tracks/ocaml
MIT License
93 stars 50 forks source link

What was it like to learn OCaml? #369

Closed ErikSchierboom closed 3 years ago

ErikSchierboom commented 4 years ago

We’ve recently started a project to find the best way to design our tracks, in order to optimize the learning experience of students.

As a first step, we’ll be examining the ways in which languages are unique and the ways in which they are similar. For this, we’d really like to use the knowledge of everyone involved in the Exercism community (students, mentors, maintainers) to answer the following questions:

  1. How was your experience learning OCaml? What was helpful while learning OCaml? What did you struggle with? How did you tackle problems?
  2. In what ways did OCaml differ from other languages you knew at the time? What was hard to learn? What did you have to unlearn? What syntax did you have to remap? What concepts carried over nicely?

Could you spare 5 minutes to help us by answering these questions? It would greatly help us improve the experience students have learning OCaml :)

Note: this issue is not meant as a discussion, just as a place for people to post their own, personal experiences.

Want to keep your thoughts private but still help? Feel free to email me at erik@exercism.io

Thank you!

marionebl commented 4 years ago
  1. How was your experience learning OCaml? What was helpful while learning OCaml? What did you struggle with? How did you tackle problems?

Coming from a JavaScript based background I found OCaml generally approachable. What helped most with learning was the book "OCaml from the very Beginning", especially for the very first steps. After getting somewhat comfortable with the basics I got a lot of value and insights out of reading the example implementations in this repository and the community solutions on the site. I struggled quite a lot with wrapping my head around the build tooling available to OCaml programmers. To be honest I am still not confident I pick appropriate/idiomatic solutions although I feel I dug deep into building things with learning how to improve the OCaml track itself

  1. In what ways did OCaml differ from other languages you knew at the time? What was hard to learn? What did you have to unlearn? What syntax did you have to remap? What concepts carried over nicely?

To me OCaml falls into a special spot - it combines a stringent philosophy regarding typing with being lax about functional purity as imperative escape hatches are readily available and object oriented programming is on the table. On a conceptual level that helped me porting over approaches from the murky waters of JavaScript world. Syntax (infix operators, placement and role of semicolon, named parameters) was alien at first but that subsided after about a month playing with the lang.

ErikSchierboom commented 3 years ago

We're closing this issue as it was part of our research for the v3 version of Exercism which has just been released.

Thanks everyone for chipping in! It has been greatly appreciated.