Ask HN: What language do you recommend I learn?
Hello,
I'm looking for a new language to learn and don't know what to choose. I've been looking at Ruby, Haskell, Lisp and Go. I'm interested in a language that will increase my skills at programming, that will be fun to learn, challenging and will result in nice looking code.
Thanks :)
17 comments
[ 4.9 ms ] story [ 56.1 ms ] threadAlso Ruby or Python.
That aside, most of the languages you seem to know are - by and large - imperative. I'd recommend you learn a functional language like Haskell or Lisp because that's a different way of looking at things. It will teach you about functional abstraction which is a really good way to get to the heart of a problem and avoid doing the same pattern over and over again in different bits of code. Some of the things you can do in functional languages are incredibly beautiful.
Ruby ought to make you really familiar with learning how to use other people's code and has an incredibly friendly community, at least as programming goes =p Learning to use other people's code is a big thing in programming - as a general rule, never program your own version of something unless you think you can do it better in some way, their interface is awful, or you want to know how it works.
But if you want to increase your skills as a programmer I think that learning algorithms and data structures that you don't know is better for your development than learning new programming language ( this book is a good one: http://en.wikipedia.org/wiki/Introduction_to_Algorithms ) .
While learning hard algorithms and data structures you will also learn how to think in a new ways. Also I recommend reading about concurrency and parallel programming ( general texts, nothing language specific ).
This will help you in writing better code in any language and also in understanding code written by others.
Recently i've been playing with the HTML5 canvas, drawing sequence diagrams and network diagrams programmatically - and can't remember when i last had so much fun programming - took me back to my teenage years and my first programs, drawing "graphics" on those cathode ray tubes ;)
Being a biased Java developer, i would otherwise recommend Groovy.