
Ask HN: How do I develop polyglot thinking? - gigatexal
I am self taught for the most part when it comes to programming. The first thing I learned to write in C++ was a for loop. for (int i = 0; i &lt;10; i++) { ... }. That&#x27;s imperative. Now I write SQL for a living and still find myself not thinking in a very relational way. I have desires to learn what I can from the functional languages but have a hard time wrapping my head around the concepts to gain anything of value from it. My question: how do I enhance the way I think to be able to think in different domains and become a better engineer?
======
PaulHoule
I think the best way to internalize the "magic" that is possible w/
programming paradigms such as functional, logical, relational, etc. is to
learn enough about how compilers and interpreters work that you can see how
these things are implemented (what is really going on) and being able to use
those kind of tools to create either internal or external DSLs that use those
ideas to solve your problems.

Learning "yet another" programming language will probably teach you less than
learning how to implement a programming language.

------
pitb0ss
In my experience it really just comes down to doing work in them. I started
programming with Java and initially found it difficult to break the OO style
when moving into functional languages. What I ended up doing is just finding a
personal project and committing to doing it in a new language. Years later, I
find that my thoughts are tailored to the problem rather than the language.
You can't really _learn_ a language from a book or the docs, you have to
actually do it.

