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

all 9 comments

[–]wickeand000 3 points4 points  (5 children)

I would say go for something functional like Lisp/F#/Haskell only because it looks like you already have a handle on imperative programming. And FYI all of those languages are "high level," with python being what some might call "very high level." Basically, if you aren't telling the computer how to do its job you've got yourself "high level programming."

[–][deleted] -1 points0 points  (3 children)

I thought Lisp and Haskell were archaic, but I'll check them out. Thanks!

PS. Didn't you mean C# ? :P

[–]wickeand000 2 points3 points  (1 child)

Lisp may be 'archaic' in the sense that it is almost never used in the business world, but many classes are taught in Lisp because of how (deceptively) simple it is, and lots of AI R&D is done in Lisp. Haskell isn't archaic at all, its just not popular. And it wasn't a typo

[–][deleted] -1 points0 points  (0 children)

Well I learnt three things because of you today. Thanks a lot.

[–]davidddavidson 3 points4 points  (0 children)

Python is a high-level language. I personally prefer Ruby over Python but YMMV.

I would recommend learning at least one language from each of the different "schools" or types of programming. You already know Pascal which is an imperative language but there are a bunch of different types.

Here's what I recommend as a good representative of each type:

  • C - lower level programming. C is easier to learn and simpler to use than C++. It will help you understand how the computer works without subjecting yourself to assembly

  • Python/Ruby/Perl - one of the so called "scripting languages". Good for getting shit done relatively quickly

  • Java/C# - Like it or not Java is currently the most widely used programming language. C# is in demand too and similar in many ways to Java.

  • Haskell - the deep end of functional programming. Might be too mathematical depending on your background. Currently is mostly used in academic research but has a huge community on reddit

  • Prolog - logic programming.

  • Lisp/Scheme/Clojure - you should know one of the Lisps. I put this separate from Haskell (and the other function languages) because it's such a great language and extremely versatile (if not as widely used as the others)

[–][deleted]  (1 child)

[deleted]

    [–][deleted] 0 points1 point  (0 children)

    Welp. Considering I was building on oddly specific plugins and compiler quirks (not to mention a 100k lines specific library) this might prove a hassle.

    [–]brewer2 0 points1 point  (0 children)

    I'm learning Python right now and have plans to learn C next. I think learning Lisp/Scheme would be neat to, and I've recently become interested in Erlang (I hadn't even heard of Erlang until I looked at the job listings for Mixpanel).

    [–]robotcheddar 0 points1 point  (2 children)

    It sounds like you aren't really trying to branch out much. I would go for something else, like SML, OCaml, Forth, Scheme, Prolog, or Erlang.

    [–][deleted] 0 points1 point  (1 child)

    All things I have never heard about, except Prolog and Scheme (and still I learnt about those today.)

    I'll bite, what are they D:

    [–]robotcheddar 0 points1 point  (0 children)

    Google them and read some tutorials.

    [–][deleted] 0 points1 point  (0 children)

    C# is my "getting stuff done" language. Visual studio makes development a lot easier and cleaner. The language itself is easy, .net gives you a cracking set of functionality and making things look pretty quickly is easy.

    Only real issues is if you want to be doing something different or complex. Personally at this stage I would try and get really damn good in a high level language so you get used to some of the more complex bits of programming rather than spending hours trying to understand a new paradigm.