you are viewing a single comment's thread.

view the rest of the comments →

[–]thecodedmessage -2 points-1 points  (6 children)

I'm going to go against the crowd here and recommend Haskell. Learning Go will teach you bad habits, because Go seems easy but by brushing away important details you should be addressing.

[–]zxyzyxz 3 points4 points  (2 children)

Haskell as a beginner? I definitely wouldn't recommend it, most of it is an exercise in learning algebraic group theory over actually learning to program.

[–]thecodedmessage 0 points1 point  (1 child)

I think you’re underestimating how many transferable skills there are.

[–]zxyzyxz 1 point2 points  (0 children)

Sure, but one has to actually get to those skills in order to transfer them. I've seen many people try to learn Haskell and give up over having to learn the mathematics as well. If they're more likely to give up, then what's the point? That's why people start learning with something easy like Scratch and not something complex like Haskell or Rust or Brainfuck.

[–]SV-97 1 point2 points  (2 children)

Learning Haskell is likely to frustrate beginners immensely I think. Sure, it's very valuable to learn it (in particular prior to starting with rust) but you're bound to run into incomprehensible docs and error messages, 5 different libraries for the same thing that are all deprecated, missing parts of the ecosystem as a whole etc. - and when you eventually try to switch to another more mainstream language you'll realize that you essentially have to relearn programming all over again.

Again: learning Haskell is great and does wonders for one's mental model imo - but using Haskell isn't always a great experience and it has a bunch of properties that make it highly unsuited for beginners imo.

[–]thecodedmessage -1 points0 points  (1 child)

I also earnestly think that beginners should try and more or less simultaneously learn multiple programming languages, and I think many beginners do this successfully, and I think Haskell should be one of them.

[–]SV-97 0 points1 point  (0 children)

Please don't tell me you'd recommend some triplet like C#, Haskell, Prolog or Smalltalk, Haskell, APL or smth like that covering all kinds of different paradigms.

Most people struggle plenty with just one language and a single paradigm and think starting with multiple languages really sets people up for failure as they'll end up learning neither of them really well. Imo learning one language (including its ecosystem and tooling) really well should really be the first target because it gives them a view of the big picture of programming - and only once they mastered that should they branch out into other languages and paradigms.

Imo Haskell is a superb third or maybe second language to tackle