Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Language/project for teenager beginning programming?
4 points by kyriakos on June 15, 2015 | hide | past | favorite | 7 comments
I'm trying to help a computer literate 13 year old but with no programming knowledge to start learning how to write code.

What do you think is a good programming language to start with? I'm concerned that if there are no immediate "results" for him then he won't be motivated to learn more so I'm trying to come up with a project that would be ideal for him.



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!


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.


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/


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


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.


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.


php is a good starter and jquery




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: