Hacker News new | ask | show | jobs
by w3pm 4691 days ago
I agree that simply "counting" is a useless metric. I believe what's useful is exposure to different ways of thinking about programming and problem solving. In my personal experience, exposure to imperative, functional, logic, actor, and meta-programming have all enabled me to learn more about problem solving and to think about programming at a higher level. Can you gain exposure to all of those concepts, and more, in just 3 or 4 languages? Absolutely. Does the potential for learning and growing as a programmer end there? I'd hope not!

As a related note, learning new syntax is by far the least useful aspect of learning a new language. Coincidentally, it's also the easiest element to pick up and takes little time at all. Incorporating new paradigms into your way of thinking takes far longer.

1 comments

I was lucky enough at UW when I was an undergrad for our PL course to be of the buffet variety: LISP, ML, Prolog, Smalltalk. These days, most PL courses tend to focus on PL semantics, while we were taught the languages in the environments and contexts that they were meant to be used in (quite important for Smalltalk, but even for LISP).

I've also designed and implemented a few procedural, object-oriented, data-flow declarative, and logic meta-programming languages over the years. It is quite easy to get carried away with any of these paradigms, which is why I try to ground myself to working mostly with procedural imperative languages with aspects of other paradigms sprinkled in.