Programming Languages and Technologies to Learn

Started by
16 comments, last by d000hg 16 years, 1 month ago
What do you mean by learning? Do you mean read about them, remember some keywords, and know where to look at documentation? Or do you mean be proficient in them? You could use just few of them actively.

At your question if it's possible to know too many languages, the answer is simple. No. However, you could just suck in too many languages.


BTW HTML isn't programming language, and neither is CSS. Quite a lot of programmers would say this even on that thing that is at the third position in the desktop column.
Advertisement
Flex could be a great choice. It's within the browser but you can do a lot with it. And with Flex 3 you can use AIR to develop desktop Flex applications. In the same area, Silverlight is looking exciting but you need to learn a .NET language to use it... preferably C#.

If I was learning something new for fun which could actually be useful, I;d do C#/Silverlight because you get the best of both worlds - and established, widely used language AND cutting-edge brand new exciting technology.
Learning new languages should only function as a method to learn a new paradigm. Don't think about learning PHP to learn how to program websites -- learn a new language that will open your mind to new programming paradigms.

I would recommend learning a procedural (c/c++/java), a functional (sml, ocaml, haskell, erlang), a vector based (j), a stack based (cat?), an object oriented (c++/java/ruby), and a low level language (assembly) (to teach you the underlying principles the higher levels abstract). Which languages to learn are up to you ... it really doesn't matter in the long run.

A list of programming language paradigms can be found here.

After paradigms, languages simply become syntax.
A programming language is simply a programming language and nothing more, unless it introduces you to a new school of thought, but even then it's not the language that matters but rather the school of thought that you've been introduced to. Put another way, a programming language is not the goal; it's a means to a goal: the mentality.

I personally prefer to excel at programming paradigms, accepted patterns and software engineering best practices, all in a language-agnostic way rather than a language per se. It's what I call the mentality of a programmer; an abstract level of thinking beyond what languages can offer. As I always find myself saying, how many keywords and structs does a new language have? That's not horribly hard to learn. The mentality of a proficient programmer on the other hand is.
"A language that doesn't affect the way you think about programming, is not worth knowing." -Alan Perlis
Quote:Original post by Ashkan
A programming language is simply a programming language and nothing more, unless it introduces you to a new school of thought, but even then it's not the language that matters but rather the school of thought that you've been introduced to. Put another way, a programming language is not the goal; it's a means to a goal: the mentality.

I personally prefer to excel at programming paradigms, accepted patterns and software engineering best practices, all in a language-agnostic way rather than a language per se. It's what I call the mentality of a programmer; an abstract level of thinking beyond what languages can offer. As I always find myself saying, how many keywords and structs does a new language have? That's not horribly hard to learn. The mentality of a proficient programmer on the other hand is.


I couldn't agree more; the fact that I know C++ means I know Java and C#(minus a few syntactical differences; they use the same paradigms, though C# incorporates "reflection"). At the fundamental level, it's basically learning programming paradigms and then learning the syntax surrounding them per language.

Well, thanks a lot for helping me out, you guys are great!
Learn to understand the true value of Lisp, even if you never write a line of Lisp code. It will make your journey with other languages unfathomably better.

You may have heard that line before, so read my full explanation before dismissing it out of hand.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Quote:Original post by Chad Seibert
Quote:Original post by Ashkan
A programming language is simply a programming language and nothing more, unless it introduces you to a new school of thought, but even then it's not the language that matters but rather the school of thought that you've been introduced to. Put another way, a programming language is not the goal; it's a means to a goal: the mentality.

I personally prefer to excel at programming paradigms, accepted patterns and software engineering best practices, all in a language-agnostic way rather than a language per se. It's what I call the mentality of a programmer; an abstract level of thinking beyond what languages can offer. As I always find myself saying, how many keywords and structs does a new language have? That's not horribly hard to learn. The mentality of a proficient programmer on the other hand is.


I couldn't agree more; the fact that I know C++ means I know Java and C#(minus a few syntactical differences; they use the same paradigms, though C# incorporates "reflection"). At the fundamental level, it's basically learning programming paradigms and then learning the syntax surrounding them per language.

Well, thanks a lot for helping me out, you guys are great!
Knowing C++ DOESN'T mean you know Java/C#. It means you have a reasonable grasp of the syntax. Java is a lot more than just the core language... it is a huge set of standard libraries and knowing them is crucial to knowing Java. Similarly for C#, except now you have the entire .NET framework... which apart from standard libraries includes WPF, WCF, remoting, LINQ, and so on. IMO, until you have a reasonable overview of the standard libraries, you don't know those languages. Plus C# has a few extra features like partial classes, delegates and so on with don't exist in C++.

This topic is closed to new replies.

Advertisement