2 ms·
I had pretty much the same experience when learning functional programming. However, I don't think it was functional programming per se that caused a jump in my
by sergiosgc 12y ago
I had pretty much the same experience when learning functional programming. However, I don't think it was functional programming per se that caused a jump in my ability to design software. It was the exposure to a dual perspective.
The difference is subtle but important. You need to master imperative programming for the exposure to functional to produce a evolution. You can probably get the same effect in the reverse path (functional first, imperative next) but it's quite uncommon as a learning path.
The same reasoning leads me to advise exposure to logic languages (prolog and the like), to compiler design (a complex state machine) and to a complete algebraic abstraction (relational algebra is probably the best candidate). Each will bring into your toolbox an important top level tool, no matter which paradigm you use at any moment in your life.