Settings

Theme

Best first programming language for a teenager to learn

7 points by medinism 15 years ago · 21 comments · 1 min read


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 15 years ago

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.

zephyrfalcon 15 years ago

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 15 years ago

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 15 years ago

    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.

saiko-chriskun 15 years ago

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 15 years ago

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 15 years ago

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 15 years ago

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 15 years ago

In my mind python is the best choice.

  • medinismOP 15 years ago

    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?

    • powatom 15 years ago

      Although languages like Python are arguably 'easier' to learn than others, I think there is actually a strong argument for beginners to learn more classic languages first:

      1: More established languages tend to have far more documentation, tutorials and example code.

      2: More people use more established languages, so asking for help tends to be a lot easier.

      3: Programmers can be a prickly bunch, and it is quite likely that beginners will realise this as soon as they try to explain why they're writing an RPG in Python rather than <insert somebody's favourite language here>.

      4: A lot of the attraction of 'easier' languages like Python is that they take the boiler-plate code that other languages require and hide it behind a nice friendly syntax. This is very useful for programmers who already understand the concepts that are being glossed over by the shiny syntax, but beginners may struggle to comprehend their own bugs / problems, or even explain them to others if they do not understand exactly how their language of choice is helping them by cutting out the boiler-plate.

      All that being said - there are much worse places to start than Python. I would just recommend that learning a 'harder' language in tandem may be very useful to beginners.

      If we're talking web-app specific stuff here - Ruby on Rails is quick and easy to get something nice up and running quickly. Ruby is somewhat similar to Python, too.

    • saiko-chriskun 15 years ago

      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 15 years ago

        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.

  • jemeshsu 15 years ago

    +1. Agree.

pdelgallego 15 years ago

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 15 years ago

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 15 years ago

    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 15 years ago

Scheme

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection