# My 14 year old wants to be a code monkey. Advice?

**URL:** <https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180>\
**Category:** In My Humble Opinion\
**Created:** [January 27, 2009, 3:26am UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180 "2009-01-27T03:26:44Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![DSeid](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/dseid/32/20194_2.png) [@DSeid](https://boards.straightdope.com/u/DSeid)\
**Post date:** [January 27, 2009, 3:26am UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/1 "2009-01-27T03:26:44Z")

</div>

My 14 year old has learned Logo in school, knows a little Java script, and some HTML. Now he wants to really learn some programming - beginning with ActionScript 3 and more Java script … he thinks.

Me, I can barely manage formatting my posts on these boards, so I’m of no help.

What books or other resources would you suggest for the baby code monkey who has the ambition to learn? Are his first choices wise?

Thanks!

---

<div class="post-metadata">

**Author:** ![Shagnasty](https://avatars.discourse-cdn.com/v4/letter/s/9dc877/32.png) [@Shagnasty](https://boards.straightdope.com/u/Shagnasty)\
**Post date:** [January 27, 2009, 3:35am UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/2 "2009-01-27T03:35:13Z")

</div>

I am an IT manager but also a code monkey in a way. I would suggest the language Python first and foremost. It is a good learning language but also a very real and important one and he can produce elegant solutions using it but it also teaches very useful and transportable skills. Fourteen should be old enough if he is talented but it will still challenge him for a while. The O’Reilly series of books, found at most large bookstores, is about the best and Python compilers are free online. I started programming when I was nine years old but Python is way beyond what I had.

Logo is a child’s language and plenty of people don’t like Javascript for plenty of reasons. HTML isn’t a true programming language although it can be useful. Real programming is about concepts and that should last for a lifetime.

---

<div class="post-metadata">

**Author:** ![Mr.Excellent](https://avatars.discourse-cdn.com/v4/letter/m/f19dbf/32.png) [@Mr.Excellent](https://boards.straightdope.com/u/Mr.Excellent)\
**Post date:** [January 27, 2009, 3:36am UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/3 "2009-01-27T03:36:48Z")

</div>

At 14, it really doesn’t matter which languages he learns, so long as he’s studying _something_. The most important skill he can learn is how to think like a programmer - break problems into small, precisely described chunks, think through those chunks logically, and so on. Javascript isn’t exactly heavy-hitting stuff, but it’ll certainly work as an introduction.

When I was in high school, the introductory programming class was in Pascal - that’s widely regarded as a good first programming language. (Or at least it was, back in 2000). It’s powerful, easy to learn, and rewards good program structure. Of course, C and C++ are always good things to learn, as well.

But, the take-away is: let him learn whatever he wants. Having good basic skills, especially at his age, is more important than knowing any particular language.

(I am not a programmer, but I have many programmer friends.)

ETA: Nevermind, listen to the guy who knows what he’s talking about.

---

<div class="post-metadata">

**Author:** ![Robot\_Arm](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/robot_arm/32/18280_2.png) [@Robot\_Arm](https://boards.straightdope.com/u/Robot_Arm)\
**Post date:** [January 27, 2009, 3:43am UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/4 "2009-01-27T03:43:58Z")

</div>

Python is an excellent recommendation. The O’Reilly books are great as references, but aren’t super friendly when you’re learning something new. I can’t think of anything better, though, and they’re easy to find; look for black-and-white animal illustrations on the cover.

You have heard the song, right **DSeid**? The life of the Code Monkey is not always a happy one.

---

<div class="post-metadata">

**Author:** ![Stealth\_Potato](https://avatars.discourse-cdn.com/v4/letter/s/d78d45/32.png) [@Stealth\_Potato](https://boards.straightdope.com/u/Stealth_Potato)\
**Post date:** [January 27, 2009, 3:52am UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/5 "2009-01-27T03:52:15Z")

</div>

> [@Mr.Excellent](#):
>
> Of course, C and C++ are always good things to learn, as well.

C and C++ _are_ great languages to learn (mainly because of their near universal ubiquity), but they’re not very forgiving to beginners. C++ in particular takes a long time and a lot of effort to really master, since it’s a very complex language. I’ve been using C++ for ten years and I still learn new things about it all the time. :o

I’d definitely second the suggestion of Python as a great language to start with.

---

<div class="post-metadata">

**Author:** ![suranyi](https://avatars.discourse-cdn.com/v4/letter/s/e36b37/32.png) [@suranyi](https://boards.straightdope.com/u/suranyi)\
**Post date:** [January 27, 2009, 4:03am UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/6 "2009-01-27T04:03:32Z")

</div>

Python is not just a great language to start with – it’s actually useful in industry. I’m a professional programmer and half the code I write nowadays is in Python. (The other half is in C, so eventually you probably need to learn that too.)

Ed

---

<div class="post-metadata">

**Author:** ![Robot\_Arm](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/robot_arm/32/18280_2.png) [@Robot\_Arm](https://boards.straightdope.com/u/Robot_Arm)\
**Post date:** [January 27, 2009, 4:08am UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/7 "2009-01-27T04:08:40Z")

</div>

Oh, do be careful with which O’Reilly book you get. Just for Python there’s [Learning Python](http://www.amazon.com/Learning-Python-3rd-Mark-Lutz/dp/0596513984/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1233028623&sr=8-1), [Programming Python](http://www.amazon.com/Programming-Python-Mark-Lutz/dp/0596009259/ref=pd_bbs_sr_2?ie=UTF8&s=books&qid=1233028623&sr=8-2), [Python in a Nutshell](http://www.amazon.com/Python-Nutshell-Second-OReilly/dp/0596100469/ref=pd_bbs_sr_4?ie=UTF8&s=books&qid=1233028623&sr=8-4) (definitely more of a reference), and [Python Cookbook](http://www.amazon.com/Python-Cookbook-Alex-Martelli/dp/0596007973/ref=pd_bbs_sr_5?ie=UTF8&s=books&qid=1233028623&sr=8-5) (examples of how to code particular problems in Python).

I’m not sure which of the first two would be better for someone in your son’s situation. Try to find out which one is geared to someone who is new to programming, not someone just learning a new language.

**suranyi** , Python and C, is your company hiring?

---

<div class="post-metadata">

**Author:** ![Algorithm](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/algorithm/32/12204_2.png) [@Algorithm](https://boards.straightdope.com/u/Algorithm)\
**Post date:** [January 27, 2009, 4:20am UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/8 "2009-01-27T04:20:55Z")

</div>

> [@Mr.Excellent](#):
>
> Having good basic skills, especially at his age, is more important than knowing any particular language.

I cannot emphasize this enough. Great to hear he is starting early. Many try to learn these skills later in life and it is very difficult for them.

---

<div class="post-metadata">

**Author:** ![DSeid](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/dseid/32/20194_2.png) [@DSeid](https://boards.straightdope.com/u/DSeid)\
**Post date:** [January 27, 2009, 6:17am UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/9 "2009-01-27T06:17:49Z")

</div>

Thanks for the advice so far. The O’Reilly books seem to presume some extant programming knowledge though … any thoughts about any of these:

[Dawson’s](http://www.amazon.com/Python-Programming-Absolute-Beginner-Michael/dp/1592000738) Python Programming for the Absolute Beginner.

[Zelle’s](http://www.amazon.com/Python-Programming-Introduction-Computer-Science/dp/1887902996/ref=pd_sim_b_1) Python Programming: An Introduction to Computer Science.

I very much appreciate the idea that learning the concepts and the basic approaches are the highest priority and also appreciate that it is only fun if you can actually do something with the skills as you learn them. (My own last programming experience was back in college over 30 years ago and was with Fortran Watfive … never could do anything useful with it.)

---

<div class="post-metadata">

**Author:** ![ivan\_astikov](https://avatars.discourse-cdn.com/v4/letter/i/58f4c7/32.png) [@ivan\_astikov](https://boards.straightdope.com/u/ivan_astikov)\
**Post date:** [January 27, 2009, 12:43pm UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/10 "2009-01-27T12:43:43Z")

</div>

A quick hijack, gang. What is the language used in the Command Prompt on Windows? My only experience with programming was on a Psion XP, where I did stuff like simple games and databases( copied from books, I add!), but I’ve forgot it all now. Is there any basic things you can do to illustrate the value of the Command Prompt?

---

<div class="post-metadata">

**Author:** ![don\_t\_ask](https://avatars.discourse-cdn.com/v4/letter/d/e68b1a/32.png) [@don\_t\_ask](https://boards.straightdope.com/u/don_t_ask)\
**Post date:** [January 27, 2009, 12:55pm UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/11 "2009-01-27T12:55:32Z")

</div>

To save on costs head straight to [Dive into Python](http://www.diveintopython.org/) it’s all free.

---

<div class="post-metadata">

**Author:** ![Sunspace](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/sunspace/32/1250_2.png) [@Sunspace](https://boards.straightdope.com/u/Sunspace)\
**Post date:** [January 27, 2009, 1:15pm UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/12 "2009-01-27T13:15:23Z")

</div>

Eric S Raymond [in his essay _How to Become a Hacker_](http://catb.org/~esr/faqs/hacker-howto.html) recommends Python to start, but also mentions C, Perl and Lisp. He says that the most important thing, though, is a more general attitude towards problem-solving:

> [@](#):
>
> …be aware that you won’t reach the skill level of a hacker or even merely a programmer simply by accumulating languages — you need to learn how to think about programming problems in a general way, independent of any one language. …[Y]ou should learn several very different languages.
> 
> I can’t give complete instructions on how to learn to program here — it’s a complex skill. But I can tell you that books and courses won’t do it — many, maybe most of the best hackers are self-taught. You can learn language features — bits of knowledge — from books, but the mind-set that makes that knowledge into living skill can be learned only by practice and apprenticeship. What will do it is (a) reading code and (b) writing code.

Edit: I highly recommend this whole essay. Check out the links from it as well. which include Robert L Read’s [_How to Be a Programmer_](http://samizdat.mines.edu/howto/HowToBeAProgrammer.html).

---

<div class="post-metadata">

**Author:** ![HMS\_Irruncible](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/hms_irruncible/32/7394_2.png) [@HMS\_Irruncible](https://boards.straightdope.com/u/HMS_Irruncible)\
**Post date:** [January 27, 2009, 1:22pm UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/13 "2009-01-27T13:22:15Z")

</div>

> [@DSeid](#):
>
> My 14 year old has learned Logo in school, knows a little Java script, and some HTML. Now he wants to really learn some programming - beginning with ActionScript 3 and more Java script … he thinks.
> 
> Me, I can barely manage formatting my posts on these boards, so I’m of no help.
> 
> What books or other resources would you suggest for the baby code monkey who has the ambition to learn? Are his first choices wise?

There are better choices if you want to learn to become a “true programmer”, but it is probably better to leverage the typical 14-year-old’s motivation to create something cool that he can show off to his friends. Sticking with web-related stuff is probably the best way to do this. ActionScript 3 would probably be a good choice. It is a fun tool for creating web-friendly shiny things, and it’s also an employable skill since many companies are preferring it over Java for GUI development now.

I would point out that there are many wealthy web developers who use horrible tools like JavaScript and are not considered “true programmers”. It depends on what sort of developer he wants to be, really.

---

<div class="post-metadata">

**Author:** ![Dervorin](https://avatars.discourse-cdn.com/v4/letter/d/eb8c5e/32.png) [@Dervorin](https://boards.straightdope.com/u/Dervorin)\
**Post date:** [January 27, 2009, 1:23pm UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/14 "2009-01-27T13:23:56Z")

</div>

> [@ivan\_astikov](#):
>
> A quick hijack, gang. What is the language used in the Command Prompt on Windows? My only experience with programming was on a Psion XP, where I did stuff like simple games and databases( copied from books, I add!), but I’ve forgot it all now. Is there any basic things you can do to illustrate the value of the Command Prompt?

Those are primarily MS-DOS commands, adapted for a more technologically advanced age. I’m not aware that there’s any specific name for the language, but you can find a list of commands here: [An A-Z Index of Windows CMD commands - SS64](http://www.ss64.com/nt/)

It’s very, very useful when you want to repeat a series of actions - I used to have separate batch files to compile and run all my code in my early days of programming Java. The new command line interface for Windows Server 2008 (and Vista, I believe; and it can be downloaded for XP) is called [PowerShell](http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx) and is much more capable. Again, though, this is primarily for administration and computer management than programming.

---

<div class="post-metadata">

**Author:** ![HMS\_Irruncible](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/hms_irruncible/32/7394_2.png) [@HMS\_Irruncible](https://boards.straightdope.com/u/HMS_Irruncible)\
**Post date:** [January 27, 2009, 1:24pm UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/15 "2009-01-27T13:24:22Z")

</div>

> [@ivan\_astikov](#):
>
> A quick hijack, gang. What is the language used in the Command Prompt on Windows? My only experience with programming was on a Psion XP, where I did stuff like simple games and databases( copied from books, I add!), but I’ve forgot it all now. Is there any basic things you can do to illustrate the value of the Command Prompt?

There are a few interpreters you can run from the windows command prompt. The default language is DOS batch, which isn’t worth a bag of turds, but you can also run VBScript and JavaScript as well.

---

<div class="post-metadata">

**Author:** ![ivan\_astikov](https://avatars.discourse-cdn.com/v4/letter/i/58f4c7/32.png) [@ivan\_astikov](https://boards.straightdope.com/u/ivan_astikov)\
**Post date:** [January 27, 2009, 2:01pm UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/16 "2009-01-27T14:01:58Z")

</div>

Cheers, **CR** and **Dervorin**.

---

<div class="post-metadata">

**Author:** ![CandidGamera](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/candidgamera/32/2878_2.png) [@CandidGamera](https://boards.straightdope.com/u/CandidGamera)\
**Post date:** [January 27, 2009, 4:19pm UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/17 "2009-01-27T16:19:08Z")

</div>

I was hooked when I got my first fully programmable calculator…

---

<div class="post-metadata">

**Author:** ![Marienee](https://avatars.discourse-cdn.com/v4/letter/m/73ab20/32.png) [@Marienee](https://boards.straightdope.com/u/Marienee)\
**Post date:** [January 27, 2009, 4:36pm UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/18 "2009-01-27T16:36:19Z")

</div>

I would look at Alice and at Scratch. Accumulating languages is one thing; learning how to approach it is something else and much harder – and more easily scuttled. Alice is designed for just this kind of situation.

---

<div class="post-metadata">

**Author:** ![sugar\_and\_spice](https://avatars.discourse-cdn.com/v4/letter/s/e8c25b/32.png) [@sugar\_and\_spice](https://boards.straightdope.com/u/sugar_and_spice)\
**Post date:** [January 27, 2009, 4:43pm UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/19 "2009-01-27T16:43:18Z")

</div>

If he’s more interested in making cools web-pages then go with the web-stuff, and if he likes logic puzzles and wants to learn what this “programming” thing is then I would go with Python. But I’m inclined to agree with **Cosmic Relief** , by default go with the web tools, it will keep his interest and he has plenty of time to learn ‘real programming’. One skill a self-taught programmer needs is the ability to just _look stuff up_ and figure out problems on their own and not get discouraged when something breaks, these are skills you start to pick up just puttering with HTML. I’m a CS teaching assistant, I have very bright college students who still don’t know how to JFGI.

---

<div class="post-metadata">

**Author:** ![Randy\_Seltzer](https://avatars.discourse-cdn.com/v4/letter/r/ee7513/32.png) [@Randy\_Seltzer](https://boards.straightdope.com/u/Randy_Seltzer)\
**Post date:** [January 27, 2009, 4:56pm UTC](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180/20 "2009-01-27T16:56:18Z")

</div>

> [@Mr.Excellent](#):
>
> Having good basic skills, especially at his age, is more important than knowing any particular language.

Well if you’re going to worry about basic skills, you might as well do Qbasic.

yuk yuk yuk

[Next page](https://boards.straightdope.com/t/my-14-year-old-wants-to-be-a-code-monkey-advice/483180.md?page=2)
