
Ask HN: Best Second Language after Python - hacjjjjjjjj
It has been already decided that Python is the best first programming language. After months of learning Python, now I am a fully competent Python programmer. I can write command line python apps, cross platform GUI apps using PyQt, I can make web apps using Django and learn other many Python tools. Now, which language should I learn as second language ?
======
limmeau
I recommend C because it will improve your understanding of what happens below
the hood.

(I'm not against learning a functional language, but that direction has been
recommended enough by now)

~~~
smokey221
I second this. Although it does not have immediate practical payoff as
learning something like Javascript or even Java would have. But spend a month
of two manipulating memory at the low level and playing around with pointers
in C and you'll be a better programmer for it.

------
madhouse
Either Javascript, since it's the language of the web on the client side, and
it's fairly easy to get started with, or a very different language, like
Haskell or Erlang.

The advantage of learning something very different is that it will give you a
much better overview, and if you ever need or want to learn yet another
language, it will be that much easier.

------
A1kmm
Haskell (or another functional language). It may not yet be as widely used
industrially as some other languages, but it will improve the way you think
about programming, and it is also of great practical utility. I find it the
easiest of the many languages I've tried over my lifetime to get a working
program in a short space of time.

~~~
dagw
Even though I've never used Haskell for anything other than playing around
with toy examples, I'm really glad I learnt it. If nothing else I became a far
better python programmer after having learned Haskell.

------
mathgladiator
JavaScript

It can help your web apps on the UI side, but it is going to be a major
language/player in the next couple of years on the server side due to projects
like node.js.

~~~
nailer
Why is node going to be major? I know it gets a lot of press, but AFAICT it
seems to be from front end people who want to do backend programming, or from
people who don't realize that there are simple COMET frameworks for other
languages (eg, Tornado for Python, I;m sure one exists for Ruby).

~~~
hasenj
I didn't realize what Node.js was about until I watched this video:

<http://www.yuiblog.com/blog/2010/05/20/video-dahl/>

------
clyfe
I am a Ruby convert coming from Python, perhaps if you learn Ruby you'll come
the same path. You also might enjoy CoffeeScript since it borrows some aspects
from python (indenting).

Beyond that c (for when you _must_ go to the bottom of things) and JavaScript
(the web language).

------
metachris
Java. Lower level language, performant cpu-bound multithreading, deep object
orientation, platform independent runnables, lots of libraries, Android. Java
has numerous downsides too, of course, but I'd definitely suggest to consider
it as a very useful secondary language.

------
2mur
I'm picking up Java after self-learning Python for the past couple of years as
a hobbyist. Why? Because of Android. I want to do cool things to my phone now.

------
xi
Try C.

Hacking the Python interpreter or making a Python wrapper for a library
written in C is a good way to learn C for a Python programmer.

------
andrewtbham
i think the language you learn should depends on what you want to build.

