

Ask HN: Language/project for teenager beginning programming? - kyriakos

I&#x27;m trying to help a computer literate 13 year old but with no programming knowledge to start learning how to write code.<p>What do you think is a good programming language to start with? I&#x27;m concerned that if there are no immediate &quot;results&quot; for him then he won&#x27;t be motivated to learn more so I&#x27;m trying to come up with a project that would be ideal for him.
======
trcollinson
One method I have been using to teach my son is Project Euler. The language he
uses has switched a few times (he keeps picking different languages, you'll
see why in a minute).

Project Euler isn't a programming tutorial, it's a math problem site. This
works out well because it has interesting and challenging problems which pay
off quickly. I generally read over the problem with my son and then he starts
to work it out. At first he would show me what he wanted to do on paper ("I
want to be able to take a number and add another number to it over and over
again, quickly because I have to do it like 1000 times", he would say, for
example). We would then sit down with a language and I would tell him how to
make the language handle that ("Try creating a variable, which is like a box
to put something in, put in your first number. Now lets loop and add things to
it. See how that works?") He would type it out and get the logic rather
quickly and solve the problem and feel great about getting the right answer.

Here's the fun part about Project Euler. When you answer the question you are
given access to a question specific forum where others post how they solved
the answer. He would then read through the other answers and see if he could
assess whether his method was better or worth than others (he's competitive).
This gave him exposure to a lot of languages and techniques. He asks me
millions of questions about this language or that. Then he tries them. Then he
moves to the next problem.

Over all, for an 11 year old, it has been a great experience. He's learned a
lot about both math and programming. We also get to spend some good time
together.

------
christudor
Languages:

Either Python or Rails would be a good start, since (I believe) they are most
widely-used languages/frameworks for web development, and there are a lot of
really good introductions out there. I'd suggest either Codecademy or
Treehouse, both of which I have used and have really accessible introductions
to both languages.

Another option might be to start with Swift, which is the language used to
create iPhone and iPad apps. It might be a bit 'cooler' to show someone an app
you have made rather than a website you have built, which may help with
motivation?

Projects:

Most tutorial sites come with in-built projects, as it's probably the best way
to get your head round concepts. On Treehouse, for exmaple, after learning
some basic Swift, your first 'project' is to build a one-page 'FunFacts' app,
where you press a button and it cycles through ten 'fun facts'. Other sites
will have you recreate Tinder, though that may be a bit inappropriate for a
thirteen year old!

The reason I started with Rails was because of Michael Hartl's tutorial, which
has you create Twitter from scratch. Looking back at it now, Twitter is
actually a relatively straightforward app. At the time, however, I thought it
was amazing that you could go from nothing to 'creating' Twitter in no time at
all.

Disclaimer: This is all just my opinion based on having decided to learn some
of this three years ago. There are no doubt plenty of 'proper' programmers
here who might tell you something different!

------
brudgers
Processing:

1\. The subject matter is inherently interesting.

2\. Running on the JVM means it works on Windows/OSX/Android.

3\. Compiling to JavaScript easily means that programs can be made accessible
via the web for iOS.

4\. It's easy to write simple expressive programs where "expressive" is not
some technical term bandied about by programmers.

5\. It provides fast visual feedback.

Good luck and have fun.

[https://processing.org/](https://processing.org/)

------
akg_67
What does interest a computer literate 13 year old? You want to pick something
that interest the kid and quick to learn and see results.

Games - I don't have any interest in Games so can't recommend one. Coursera's
Interactive Python might be of interest.

Writing - Blog. PHP and WordPress.

Arts, design - UI/UX based language. Javascript.

Numbers and Data - Python, MySQL.

Old stuff - BASIC

------
panamafrank
Golang is small enough to learn easily and it's geared towards usability. But
also try c# and visual studio there's the xna framework for writing games and
the debugger is the best.

------
monroepe
Ruby on Rails is a good place to start. Ruby is a very human readable language
and you can do some pretty cool things quickly using Rails.

------
mc_hammer
php is a good starter and jquery

