hykw_w
Last Updated: February 25, 2016
·
2.5K
· alexanderbrevig
Feb007acc38e70d57f7b4c205f7e8b26

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.

Say Thanks
Respond

4 Responses
Add your response

1092
7f5aa40b1e7a95599c7a19451f88ff3a

Metaprogramming: think c macros

OH PLEASE! :)

over 1 year ago ·
3164
9359760602e36ed0e43ff61a14f1812d

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 ·
3219
Feb007acc38e70d57f7b4c205f7e8b26

@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 ·
15254
Default profile 6 normal

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

over 1 year ago ·