Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the most important programming languages to know for concepts? [closed]

In your opinion, what are the most important languages for a programmer to know? I'm talking about concepts, not about how practical the language is.

List the languages and a reason. For example, Lisp for functional programming, JavaScript for prototype-based OOP, etc.


2 Answers

Must know:

1) C (system programming, understanding of machine architecture)

2) Perl or Python or Ruby (practical day-to-day tasks)

3) Java or C# or C++ (OOP, and quite important to get a job these days)

Really important:

1) Haskell or ML (functional programming; changes the way you think)

2) Lisp or Scheme (power of macros)

Nice additionals:

1) Forth (very low-level, explicit stack operation + joy to write your own interpreter)

2) Assembly languages (know how your CPU works)

3) Erlang (parallel processing)

4) Prolog (logic programming)

5) Smalltalk (true OOP and true interactive developent)

like image 54
Igor Krivokon Avatar answered Sep 14 '25 05:09

Igor Krivokon


  • The assembly languages of as many chips as you can learn for low-level knowledge.
  • C to learn more practical knowledge of low-level workings, since almost all languages are implemented in C.
  • C++ for object-oriented programming on top of the low-level goodness of C.
  • Pascal to learn how to work with strong typing.
  • Java to see how you can shield yourself from low-level concerns.
  • Perl to learn regular expressions, weak/dynamic typing, and other good things.
  • Python to see strong/dynamic/duck typing.
  • Ruby to see how object-orientedness works on top of Perl-esque weak/dynamic typing.
  • Common Lisp for that functional enlightenment.
  • Scheme for the emphasis on recursion.
  • Emacs Lisp so you can extend Emacs.
  • Haskell to see pure functional programming done right.
  • APL so you learn how not to write code.
  • COBOL so you can make mad money maintaining legacy code.
  • Erlang to really learn about concurrency. (Thanks to Pete Kirkham for correcting me.)
  • Scala for functional programming on the JVM.
  • Clojure for a Lisp-like functional language on the JVM.
  • Prolog to understand logic programming.
  • D so you can see why all the D fanatics are always so pro-D.
  • C# so you can program for .NET (and Mono).
  • F# so you can do functional programming on .NET.
  • Forth for stack-based languages.
  • PHP so you can see how not to create a language. (Just kidding. Learn PHP beacause it's really useful for web development.)
  • JavaScript because it's basically the language for client-side web scripting.
  • bash for a good, general-purpose scripting language.
  • Visual Basic so you can read the code your boss wrote. =)
  • INTERCAL for "fun."
  • brainfuck so you can torture your friends.
  • LOLCODE so you can convince them to still be your friends after you subject them to brainfuck.

...And so on.

like image 34
2 revsChris Lutz Avatar answered Sep 14 '25 05:09

2 revsChris Lutz



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!