

Best first programming language for a teenager to learn - medinism

My son (14) wants to start writing web applications for fun and is debating what program to learn (Ruby, Python, PHP, LISP, etc.) Which one should I steer him towards and why?
======
Joeboy
I'm inclined to say javascript, simply because pretty much any web application
is going to need at least some JS. And it's not bad choice of language anyway.
Maybe not so ideal for the server side but node.js seems to be gaining some
traction. Being a node.js adept might even be quite a cunning choice at this
point career-wise.

~~~
powatom
But it's JAVASCRIPT. On the SERVER. /s

------
zephyrfalcon
Ruby or Python seem to be the best choices. Easy to get started, mature
libraries and web development frameworks, powerful enough to get things done,
encourage decent programming practices, etc. You'll probably want Javascript
too...

------
willvarfar
He wants to write web applications.

If you put aside 'web', I imagine Python to be the best training language -
its the new Pascal. I say that as one of the European Turbo Pascal generation
that used TP as a stepping stone to assembler. Python offers that same clarity
without the dumbing down. Python is as close to pseudo-code as I've seen. Its
what I imagine myself introducing my children too just as soon as a I dare let
them borrow my computers...

But if he really means web, Haxe might be a good choice. Its javascript-esque,
it runs in browsers, and you can do fancy graphics and games and such. I
imgaine making flash applets to be far closer to what he might enjoy rather
than text-based stuff that more classic web development generates.

The whole making web pages and equating that to programming - sure its a job
and all, but is it fun and inspiring?

~~~
Joeboy
I like the look of Haxe, but the downside is that it's pretty obscure and
won't have the same kind of community support or employment prospects as more
mainstream options.

~~~
willvarfar
learning has to be fun.

it doesn't have to be about community.

------
saiko-chriskun
In terms of ease of use I would definitely go Rails, it pretty much has the
largest ecosystem in terms of web development.

In terms of more academically interesting languages, I might recommend Haskell
or Clojure.

------
technogeek00
I am going to throw my hat into the ring for a combination of Javascript and
PHP or Ruby. This way he can learn both the front and back-end coding
structures and be well on his way to making web-applications. Deciding between
PHP and Ruby is a peronal choice really, but I would go with PHP, but thats my
own inclination because I work far faster and better in PHP than I do in Ruby.
That and I feel Ruby is easier to pick up if you have a background in Java
while PHP can be easily learned on the fly.

------
mahcode
From my experience, I think Rails would be a good option. I myself am new to
programming (been doing it for less than 3 months) and have found Rails to be
relatively easy/ straight forward. Plus there is are so many ressources out
there in case he would like to learn more.

Rails for Zombie could be a good starting point.

Side note, when I say I am new to programming, 3 months ago I barely knew what
css ment - and have never taken a cs class.

------
joshontheweb
Javascript in my opinion. It isn't hard to learn and it has a lot of diverse
applications now that node.js is going strong. A couple of easy ways to learn
are:

* the basics - <http://www.codecademy.com/#!/exercise/0>

* more advanced - <http://ejohn.org/apps/learn/>

------
TMK
In my mind python is the best choice.

~~~
medinism
Thank you TMK. Is there a particular reason? Is there an argument to be made
that the structure of Python programs makes you a better programmer?

~~~
saiko-chriskun
I don't really think there's any particular language out there that makes you
'better', although I would suggest learning a variety of different types of
languages (i.e. functional vs. imperative, static vs. dynamic, etc.)

~~~
zura
Well, maybe not the basic syntax elements of a language, but there are idioms
and techniques, some of which are quite language specific (or, are native or
naturally expressed in some languages) and learning them will actually make
you better.

------
pdelgallego
The most important part of the learning process is to have access to a good
mentor. So I recommend you the HtDP book[1], and just use whatever language
you are good at.

Happy hacking.

[1] <http://www.htdp.org/>

------
maratd
I disagree with everyone. The best language to learn first is BASIC. You can
probably find some emulator that's web based. After that, you can learn
whatever floats your boat.

~~~
technogeek00
Ah I had forgotten about that one, that is a good starter language. Though I
would recommend that more if he wanted to write more OS-based applications
rather than web-based.

------
abbasmehdi
Scheme

