views:

261

answers:

13

I want to be capable or have knowledge of each type of programming paradigms. Right now I know asm, c/c++ (and meta programming with templates). I touched upon functional programming. I have done python for a taste of a dynamic language and duck typing. Visual basic for event-driven programing along as friendly basic syntax. Now i am reading up on objective C which is very interesting. What else should I learn? I think I should read up on generics from C# and possibly learn it for job purposes. I am pretty surprised how few days it takes to understand the major of a language after learning how to program well. (note that know nothing of API)

What other paradigms and programming concepts should I learn? I haven't mention but I also know a bit of javascript and java.

I found this question which is somewhat similar http://stackoverflow.com/questions/193053/what-are-all-the-programming-paradigms but as marcus said http://stackoverflow.com/questions/193053/what-are-all-the-programming-paradigms/193085#193085, some languages are 'procedural' but are totally different. I would like to know more about those different languages. (also that question is asking for a list then different types of languages)

+1  A: 

Grails is an open source web application framework which leverages the Groovy programming language.You can do this.It will really help when you handle projects,.

Warrior
+5  A: 

I've heard good things about Prolog and Haskell.

Devin Jeanpierre
+2  A: 

Prolog and R.

Lee B
A: 

C# is a great language to learn. Generics are kind of like templates in C++ but I like there syntax better. Another cool feature is attributes. If you really get interested in .NET the you'll probably want to read CLR via C#.

Lucas McCoy
+1  A: 

Lisp. Oh, and why not Brainfuck or Piet, if only for the fun of it.

RegDwight
A: 

Also, the database query language SQL is good to know about.

+1  A: 

You seem to have a great base here and given your breadth of knowledge, you should not have any problem picking up other languages.

At this point, I would suggest you focus on architectural and design principles. I feel that it what distinguish a coder from a developer. It is great to know a language but you need to be able to put it to good use through the understanding of design patterns, design principles, abstraction through layers, etc.

Don't forget expanding your horizons by understandting and evaluating the different programming methodologies that are suitable for the task at hand: Scrum, Waterfall, XP, etc.

I found that SE-Radio is a good way to introduce oneself to different paradigms and ways to combine existing knowledge to build fully functional applications.

David Segonds
A: 

I learned OCaml. It's a functional language with object-oriented additions.

+1  A: 

You might also want to look into multi-paradigm languages like

Fabian Steeg
A: 

It's somtimes hard to define what a "programming paradigm" actually is. One view might be that there are as many different programming paradigms as there are programming languages. Each programming language represents some part of the views of the language designer(s), which may be wildly different from mainstream languages (eg. Prolog), or similar yet different (eg. Objective-C).

It sounds like you're experimenting with a number of different languages, which is good. One of the problems that you might run into, though, is as you branch out into more unusual languages such as Prolog, you may find that it's harder and harder to get actual work done in those languages due to lack of tools or environments. Fortunately, there is plenty of work being done today in new language development which should keep you busy for quite some time.

Greg Hewgill
A: 

I want to let you know that learning many languages doesn't mean that you'll become more efficient programmer. It is about mastering a specific language, a language that you like and love then using that language as your most powerful weapon.

Raymond G.
I am a master of C. I picked up a new language in days. I just built a decent python app (lots of google and using python reference page) in a week. Most of what i listed were taught in school which i hard to learn. I choose C#, obj-c, python + breif look on hashel on my own and spent maybe 2.5weeks
acidzombie24
A: 

I occasionally recommend TCL as a 2nd or 3rd langauge. It's a great example of how not to do things, and why sometimes worse can still be better.

TokenMacGuy
+1  A: 

One very different kind of language is a stack-based language. Forth is an older one and Joy and Factor are newer ones. I have only used Factor.

The creator of Factor wrote jEdit, a text editor, over 7 years in high school and college. He wrote it in Java using Swing, but then started looking at other languages. He turned very anti-Java and created his own language, which he has been working on for years. I have programmed some in it, and it is very interesting, although I don't have the patience to get good at a stack-based language. But I still use jEdit for most of my programming.

Examples:

3 5 + 2 * print

-Puts 3 and 5 on the stack
-Calls + that replaces the top two items on the stack with their sum
-Puts 2 on the stack
-Calls * that replaces the 8 and 2 on the stack with their product
-Writes the top item on the stack to stdout

"factor" reverse print

-Writes "rotcaf" to stdout

Jordan Miner