Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If so, can you tell me how learning a new paradigm changed your approach for solving programming problems even if the problem is in another paradigm/language/technology?

I will really appreciated If you can tell me in a specific manner, how your X (ie: JAVA/C#/C++) programming skills improved by learning Y (ie: Scheme/Prolog/Lisp).

Also, what paradigms do you suggest helps the most to become a good programmer?

My experiences are only structured - OOP, imperative - procedural, and into some extent template meta-programming, but my goal is not to learn another language, but rather to learn different approaches for solving problems.


share|improve this question

migrated from May 8 '11 at 17:41

This question came from our site for professional and enthusiast programmers.

I believe the answers to this will be some form of a resounding yes. – R0MANARMY May 8 '11 at 17:51
up vote 7 down vote accepted

I try to learn at least 1-2 new languages every year. The most I gained was from learning a functional language (F#) which changed the way I look at solving problems - I=now I try to tell the machine what to do instead of how to do it, especially in C# where I use Linq heavily and immutable objects now that I know the benefits of using them. I also use higher order functions quite a lot (methods as parameters) an my coding style has changed (improved) as a result.

share|improve this answer
Ditto for my Python programming. I would have failed miserably at writing all that tree-munching and parser-generating code in a certain if I hadn't learned the techniques I ended up using (trees pretty much imply recursion or a hand-rolled version thereof, the parser generator consists of higher-order functions and is inspired by parser combinators, etc.) by learning Haskell. – delnan May 8 '11 at 17:51
Thanks, you reaffirmed what I was suspecting... Thanks Again! – Armando May 27 '11 at 4:11

Absolutely. Every programming language you learn will have a different way of doing certain things. Some things will drive you crazy, some things you'll love and other things will slowly grow on you.

Its never a waste of time to learn at least the basics of a new language.

share|improve this answer

Ok, here's an example I've encountered.

I've learned a relatively old language (VB6) for a project on some old code we had.
The language is very windows-oriented but there aren't as much high-level powerful classes like we have in .Net framework.

I had to do some picture manipulations, and that introduced me to the windows API functions for the picture manipulations.

After I've learned that it gave me a better understanding of .Net's GDI Classes. And the understanding that sometimes using windows API will be much faster (less function wrapping).

So that's to show that even when you learn old code, you can still learn and get another perspective.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.