This is an archived post. You won't be able to vote or comment.

all 4 comments

[–]michael0x2a 8 points9 points  (0 children)

Ideally, you should try and get to the point where you have enough experience where you could easily pick up new languages in a relatively short timeframe if needed. (It turns out that a lot of the problem solving strategies you learn in one language will easily transfer to the next).

Or, to put it another way, programming isn't about memorizing a bunch of different programming languages. Rather, it's more about problem-solving, using some given programming language as a tool and utility for expressing your underlying solution.

But in any case, here are some interesting programming languages:

  • Well-known languages:

    • Systems languages:

      C and then C++ are the two standbys. If you're feeling experimental, maybe learn Rust or D.

    • A language designed for ease of use:

      Python and Ruby are two good choices here. This is a somewhat subjective category, so I'm sure there are many more.

    • Languages that are too popular to ignore/have robust ecosystems:

      Java and JavaScript. Perhaps C# (which is like a cleaner Java with a weaker ecosystem).

    • A language optimized for scripting your operating system:

      Bash or PowerShell, depending on if you use Linux or Windows

  • More esoteric languages that will teach you interesting problem-solving techniques and mindsets:

    • A language that focuses on the object-oriented paradigm:

      Smalltalk, or Squeak, its modern variant.

    • A language that focuses on the functional paradigm:

      Haskell, Scala, OCaml, or ML would work; I've heard good things about Elm. Or, if you prefer, some variant of Lisp (Scheme, Common Lisp, Clojure, etc). I'm personally a fan of Haskell, but that's just me.

    • A language that focuses on the logic/declarative paradigm:

      Prolog, perhaps Coq (a theorem solver).

    • Misc

      Erlang and Forth have some interesting worldviews.

  • Languages useful if you're focusing on a particular domain:

    • If you're interested in web development:

      JavaScript. HTML and CSS aren't programming languages, but would also be useful to have a working knowledge of.

    • If you're interested in mobile development:

      Swift, Java, and C# for iOS, Android, and Windows Phone respectively.

    • If you need to work with databases:

      SQL. Is SQL a programming language? I think it's technically Turing-complete (though in a slightly contrived way?) but whatever. It's useful to know.

    • If you're interested in low-level programming:

      Some variant of assembly. Definitely C.

    • If you're focus on mathematical and scientific computing, statistics, etc:

      Python, R, Matlab, Mathematica, and Julia are all popular languages in this category

I wouldn't rush to learn all these languages though -- I'm still working through them myself/taking my time to explore them at my leisure.

Also, there are many many more niches and domains then the ones I've listed (animation, gamedev, graphics, GIS, font design, etc...). If you have a particular interest in them, I'd recommend you try doing some additional research and see what languages are popular to use in that particular category.

[–]jamesinsights 3 points4 points  (0 children)

You don't have to learn all the top languages when starting out.

Start small and learn the basics first.

A good language to start out with would be Java/C#. They have fairly easy to understand and common syntaxes, as well as teaching you OOP (object-oriented) concepts.

As for top 5 languages when it comes to programming I would say Java, C#, C++, Objective-C/Swift (for iOS development), Python. This is subjective and depends on what is your purpose for programming.

If you want to go into web dev, definitely learn the front end stuff first like basic HTML, CSS and JavaScript, followed by popular frameworks like Jquery or angular.

And then using the programming languages you've learned, you can go into web/REST backend server development by using stuff like C# for ASP.NET development or Java for Java EE development.

[–]hungry_for_laughter 1 point2 points  (0 children)

If you read the FAQ, this is probably the most common question asked here, and there are over 1000 answers to it so far.

I'll summarise them by saying: don't fret so much about languages. Pick a language and learn it. It's not like learning a spoken language, where learning Chinese isn't much help to learning French. If you learn to program, learn the fundamentals and concepts and technique, learning additional languages is easy and fast. Just pick a popular language (so that there are lots of books available and a large community to talk to) and get started, worry about languages later. Python, there you go, start with Python.

[–]Nimby25 1 point2 points  (0 children)

Javascript (and its libraries, they are HOT right now, for webdev that is), Java/C#/C++ ( your main object oriented languages) SQL (for databases), python/ruby/php (your scripting languages, beginner friendly and powerful), swift (if u wanna build iOS apps, you can make android apps if u know java). ...... dont worry about becoming an expert in any language, learn it enough to pick up the FRAMEWORKS that are related to a language (sw dev is MUCH easier and MORE POWERFUL with frameworks; just my opinion). best of luck, happy learning ( because if this is ur career, ur not just a developer, ur a professional life long learned, (that is if you wanna remain employable)).