I think there previously was some discussion about this, and one of the criticisms was that this order of concepts isn't necessarily fixed - you could probably take OOP developers and introduce them to algebraic data together with codata as something they've already used, or you could cover "advanced" type level functionality without ever talking about monad transformers
At the same time, I could probably tick most boxes from this list, but does it necessarily make me an "expert"? I mean, understanding of many of those concepts can have it's own range, e.g. at what point I'm actually able to apply them correctly instead of just knowing how they work, at what point am I able to explain them properly (if ever), and when may my understanding be enough to be able to help advance R&D in these areas?
That makes me wonder ... the path can be unique to each person. They start from where they are. We just need a "pedagogic function" that takes as input where the person is (and their motivations, and what they are working on), and produces an output that gives them a specific direction as to what to learn next.
I agree re: order. There can be multiple paths in the 'map' - but the 'map' itself would still be valuable.
Yeah, but really as a map instead of metric or competition - e.g. I would love to have some resource that would let you see concepts from FP as graph with connections between dependent topics, which you could then explore as you like
I agree re: order. There can be multiple paths in the 'map' - but the 'map' itself would still be valuable.
Yeah, but really as a map instead of metric or competition - e.g. I would love to have some resource that would let you see concepts from FP as graph with connections between dependent topics, which you could then explore as you like
Absolutely. We need connections (edges) in order to be able to build paths.
That makes me wonder ... the path can be unique to each person. They start from where they are. We just need a "pedagogic function" that takes as input where the person is (and their motivations, and what they are working on), and produces an output that gives them a specific direction as to what to learn next.
I think this could then be achieved by filtering topics and simply looking at available and dependent ones? :smiley:
To implement this site, what we need is a JavaScript library to do graph views, but also with support for rendering text content, plus ability to filter through it.
https://jabrena.github.io/functional-rosetta-stone/roadmap.pdf
https://twitter.com/lambda_conf/status/803695008100466688
We've released the Ladder of Functional Programming! All future LambdaConf sessions will be ranked to help you better find matching content. https://twitter.com/lambda_conf/status/803695008100466688/photo/1
- LambdaConf (@lambda_conf)image.png https://pbs.twimg.com/media/CydL5EYUsAAI-61?format=jpg&name=4096x4096
Is there a non-image version of their proposal? :thinking:
Is there a non-image version of their proposal? :thinking:
@James King https://jabrena.github.io/functional-rosetta-stone/roadmap.pdf
Reddit discussion from 5 years ago: https://www.reddit.com/r/haskell/comments/5fohat/lambdaconf_standardized_ladder_of_functional/
I wonder if the sources (and images) for this PDF is available somewhere. I'm thinking of creating a nice website based on it.
The mythical creatures in particular.
let's do it, https://ladder.haskell.page
Sridhar Ratnakumar said:
just clone the repo and run
nix run
I think there previously was some discussion about this, and one of the criticisms was that this order of concepts isn't necessarily fixed - you could probably take OOP developers and introduce them to algebraic data together with codata as something they've already used, or you could cover "advanced" type level functionality without ever talking about monad transformers
At the same time, I could probably tick most boxes from this list, but does it necessarily make me an "expert"? I mean, understanding of many of those concepts can have it's own range, e.g. at what point I'm actually able to apply them correctly instead of just knowing how they work, at what point am I able to explain them properly (if ever), and when may my understanding be enough to be able to help advance R&D in these areas?
I agree re: order. There can be multiple paths in the 'map' - but the 'map' itself would still be valuable.
That makes me wonder ... the path can be unique to each person. They start from where they are. We just need a "pedagogic function" that takes as input where the person is (and their motivations, and what they are working on), and produces an output that gives them a specific direction as to what to learn next.
Sridhar Ratnakumar said:
Yeah, but really as a map instead of metric or competition - e.g. I would love to have some resource that would let you see concepts from FP as graph with connections between dependent topics, which you could then explore as you like
re: expertise. Well, it is indeed multi-dimensional.
Let's write an Agda program to model all of this pedagogy! Just kidding ... or am I?
TheMatten said:
Absolutely. We need connections (edges) in order to be able to build paths.
Let me think about this.
Sridhar Ratnakumar said:
I think this could then be achieved by filtering topics and simply looking at available and dependent ones? :smiley:
Yea. They can also filter for "I know x, y, z" and click "show me adjacent topics"
Or, "I know x, y, z" and "I work on domains p, q, r" (eg: parsing, web apps) and click "show me adjacents"
Implementation
To implement this site, what we need is a JavaScript library to do graph views, but also with support for rendering text content, plus ability to filter through it.
Wonder what I can use for this ...
Or maybe a graph view (a la Zettelkasten/Obsidian) would be too liberal for the kind of UX we need.