Mi experiencia provino de lenguajes imperativos, principalmente C, C ++ y Python. Recogí Scala, Erlang y un poco de Haskell unos años más tarde y desde entonces me he interesado mucho en la programación funcional y los formalismos detrás de ella.
También estoy interesado en la programación concurrente y distribuida y he estado buscando formalismos detrás de eso, especialmente aquellos que han visto al menos un poquito de la "luz del día" (por ejemplo, uso en el mundo real, o al menos una implementación en alguna parte). Hasta ahora sé acerca de los procesos secuenciales de comunicación, el modelo de actor, el álgebra de los procesos de comunicación y el cálculo de los sistemas de comunicación. Entre estos, sé que el modelo de actor se ha realizado en idiomas como Erlang, Scala y Haskell.
Me pregunto si hay fundamentos que debería aprender y practicar antes de abordar estos campos, si hay uno "clásico" que debería estudiar primero, y si hay otros populares que me haya perdido.