Languages a well-rounded programmer ought to know
4 comments
My take on the list would be to merge LISP with the other functional languages (even though I realize LISP in not a pure functional language, but then neither is Erlang, OCaml, ML, or Scala), and add a list of prototype-based language, like JavaScript, ActionScript, and Io. However, I do recognize LISP's significant cultural impact on hacker culture, so I'm torn about not requiring it.
Cool list, though. Will probably inspire me to go back and try to further my understanding of Haskell, which hands down has had the most disproportionate effect on my understanding of programming.
Cool list, though. Will probably inspire me to go back and try to further my understanding of Haskell, which hands down has had the most disproportionate effect on my understanding of programming.
my list is pretty different. i'm gonna totally exclude the functional language category. functional languages can do some really cool things and some people swear by them, but none of them are things that you should know for professional purposes.
a low level language - C is the most important one by a million miles
a high level enterprise oriented language - Java or C#
a high level scripting language - Python, Ruby, Perl
Unix Shell Scripting (bash is the most popular i guess)
the frontend web stack - HTML/CSS/JavaScript
obviously people will have widely varying degrees of proficiency between those categories, but everyone should be at least familiar with those categories if not an expert in all of them. you probably should be an expert in one of them though. having a "native tongue" is a useful thing.
a low level language - C is the most important one by a million miles
a high level enterprise oriented language - Java or C#
a high level scripting language - Python, Ruby, Perl
Unix Shell Scripting (bash is the most popular i guess)
the frontend web stack - HTML/CSS/JavaScript
obviously people will have widely varying degrees of proficiency between those categories, but everyone should be at least familiar with those categories if not an expert in all of them. you probably should be an expert in one of them though. having a "native tongue" is a useful thing.
functional languages can do some really cool things and some people swear by them, but none of them are things that you should know for professional purposes.
Thinking "functionally" has tons of holistic benefits for a programmer. It can also shrink your code base significantly.
Why ignore these gains if they can make you a better professional coder?
Thinking "functionally" has tons of holistic benefits for a programmer. It can also shrink your code base significantly.
Why ignore these gains if they can make you a better professional coder?
C, C++, Java, C#, F#, some good version of BASIC. Anyone who discounts BASIC out of hand is a wanna be.
I don't believe C++, Java, and C# do anything positive to affect the ways a programmer thinks. That's really the purpose of this list.
I could add F# to the functional languages since, from what I understand, it almost exactly is to Scala what C# is to Java. But I don't view Microsoft-specific languages as languages a hacker needs to know. XD But what mental growth would BASIC facilitate?
I could add F# to the functional languages since, from what I understand, it almost exactly is to Scala what C# is to Java. But I don't view Microsoft-specific languages as languages a hacker needs to know. XD But what mental growth would BASIC facilitate?
Java and C# do facilitate the way a programmer thinks, but maybe not in the way you're thinking of. they won't make you a more genius hacker that comes up with the cleverest code. they'll make you think longer and harder about your engineering decisions and the ramifications they have on a large project.
C?
Whoops, was in the original before I discovered a single newline doesn't provide any whitespace on HN. Thanks!
However, this post isn't about those things. This post is just a very subjective sampling of very useful languages that are either useful for the ways of thinking they help you acquire or for the application domains in which they excel or for both. I consider these the bare minimum of languages that a hacker should know.
Here they are (with double newlines because I couldn't figure out how to do single newlines on HN):
A LISP dialect (preferably either Clojure, Common Lisp, or Racket)
Python, Ruby, or Scala
Haskell, ML, OCaml, Erlang, or Scala (don't pick Scala twice)
C
A Bourne-derived UNIX shell (Bourne, ksh93, or Bash)
HTML/CSS/JavaScript (at least basic proficiency)
Optional: Any logic programming language
Agree? Want to rip my eyes out? Let me know!