3 ms·
Same, on my course the introductory module was C for intro to programming principles and then Haskell (!) to introduce the functional paradigm. Starting out by
by orobinson 7y ago
Same, on my course the introductory module was C for intro to programming principles and then Haskell (!) to introduce the functional paradigm. Starting out by learning a language that doesn't abstract anything away from you is certainly the way to go I think, helps you to realise there's no "magic" happening.
My one criticism of the blog post here is that it settles on Scala as a good introductory language. Although I love Scala, it has so many features (many of which are "magic") that it's very easy to lose sight of what's going on under the hood without going into very deep technical theory well beyond the scope of an introductory course. C seems like a much better intro as it can be used to teach the basics of control flow while, as you say, introducing lots of fundamental concepts, without layers upon layers of abstraction getting in the way.