Last Updated: September 09, 2019
· alexanderbrevig

Become a polyglot

Try to gain experience in as many programming paradigms that you can.

In my opinion you should at least understand the following paradigms:

  • Imperative paradigm, most common languages
  • Logic paradigm, such as prolog/datalog
  • Functional paradigm, think haskell/f#/clojure
  • Object-oriented paradigm, think c++/c#/java etc
  • Metaprogramming, think c++ templates, c macros etc

If you have dabbled in all those paradigms I think you have the best toolkit for solving problems in your mind - and for making the computer solve it for you.

4 Responses
Add your response

Metaprogramming: think c macros


over 1 year ago ·

For functional programming I would say "haskell/f#/clojure", not "lisp/f#/clojure", because clojure is already lisp. You won't gain much learning different flavours of lisp (at least, comparing to some really different functional language, like o-caml or, as I said haskell, which enforce you to think in pure and lazy manner).

over 1 year ago ·

@om-nom-nom although I selected the examples I did because I thought they might reach the most people with a feeling of "I've head about that" you make an embarrassingly good point. I updated the protip to reflect your comment. Thank you!

over 1 year ago ·

Metaprogramming, think c++ templates, M4, Ruby monkey patching etc
Fixed you.

over 1 year ago ·