Hacker Timesnew | past | comments | ask | show | jobs | submitlogin
Ask HN: 12 year old tech savvy girl – books, programs, events, advice?
81 points by forkandwait on July 25, 2016 | hide | past | favorite | 85 comments
Hi HNers,

A friend of mine's daughter is interested in tech, 12 years old, a little shy (if that matters), good grades, and a good circle of friends. Her mom wants to foster growth and confidence and all that good stuff. She has been to two two-week camps, one a co-ed disaster, one a girl only success. Anybody got any advice?

Thanks!



I'm a big fan of Processing or p5.js for teaching kids that age how to write code. The immediate visual feedback from a line or two of code creates a positive feedback loop that encourages learning. Shiffman's book Learning Processing is a great gentle introduction: https://www.amazon.com/Learning-Processing-Second-Programmin...

His Nature of Code work -- simulating nature through code -- also is really interesting but requires a little background in coding.


Scratch from MIT is worth taking a look at. Really good fun and we use it in UK schools to teach the kids programming.

There is also Kodu from Microsoft (google it and take a look at the images and video) Kodu is ACE I love love love it. But it may be a little advanced for her.

And roll play games, D&D is tricky for most kids, but there is Hero Kids and Dungeon World (try some of the one shots) these are super geeky and fun and nerdy and min/max characters teach you a lot.


Shiffman also has a "Coding Rainbow" series on YouTube that is pretty great. He has a good personality for goofy YouTube programming teacher.

https://www.youtube.com/user/shiffman


His videos are so great! I'm watching his "Introduction - p5.js" video [0] and I'm crying with laughter. His style of teaching is truly inspirational.

[0] https://youtu.be/8j0UDiN7my4?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9...


I've taught many children, and the biggest motivation for them was tangible success. Project based learning combined with a good teacher will do absolute wonders. Eventually, she can show off her projects ( for example, a M & M color sorter) to her friends. Maybe her friends are interested too and that will give them a little encouragement to pursue their interests as well! Let me know if you have any other questions.


I have two questions for you.

How would you approach that for teens? Do you have any specific advice? I'm having trouble helping them find things to continuously motivate them to keep learning.


If one of my friends at age 12 had showed me an M & M color sorter I would have considered them god.

Your advice is good.


Everyone is different, but for me at 14 (a bit different from 12, I know, and I'm male) all I needed was a compiler and tutorials online. But that was key, the internet connection paid for by my parents, something not many people on my island had access to, made all the difference in the world for me.

The best thing you can do is be available and provide access to knowledge, don't funnel her into particular frameworks, languages, whatever. If she wants to learn ASM, let her. If she wants js, let her. If she wants to learn Photoshop, let her.

Parents are not supposed to direct play. They give kids toys and the kids find their own way.


I can't recommend this enough. I've worked with a couple of youngsters in a professional capacity through work experience programmes, and the ones with a drive to do well from 16 onwards are those that are given the freedom to make their own choices in tech. They developed their tech habits in the same way that many of us did, they downloaded the same tools we use, and they started building stuff.

One thing I'd recommend, if they still have the tech bug at around 16, is to see if they can do some kind of work experience in industry at an early age, ideally over the summer holidays. A lot of kids benefit from being around those that do tech on a regular basis, and it's a great feeling for them to work on the same stuff as we do. Even if they're picking up some less important tasks, or are re-doing the company site, it's still a great experience for them.


I second the "play" approach. My second programming experience was in assembly at age ~10 and it has made a huge difference in my growth and now in my career. Leave her alone with a compiler and an internet connection. :-)


My father did this as well. Though I didn't like QBasic. So instead I focused on batch scripting--to get games running--then modding.

Key to modding seems to be start with a game they like.


I'm of two minds about co-ed. It's really important to find a safe place to learn and it can be hard to do that as a girl in a boy dominated field. She's going to have to do it some day, but it's probably best to build up some confidence in a safe environment. I'd spend some time finding girl only or mixed successfully mixed groups and programs.

As for the technical side: Make's Getting Started with Raspberry Pi book is one of the best introductions to computing I've ever seen. It starts at the beginning, uses simple language, goes deep and provides hands-on experience. https://www.amazon.com/gp/product/1457186128/ref=oh_aui_sear...

Get her that book and a Raspberry Pi, a nice case, encourage her, support her, help her connect with like-minded peers and then stand back. https://www.amazon.com/gp/product/B00ME5XUAG/ref=oh_aui_sear...


A friend of mine has a daughter who really enjoys http://girlsmakegames.com/

http://makezine.com/ and the http://makerfaire.com/ have done a great job with a community that encourages kids with a variety of interests.

http://www.meetup.com/ is great for finding people in your area who want to geek out together over something in common.

I don't have great book recommendations other than https://www.amazon.com/Manga-Guide-Databases-Mana-Takahashi/... Read the customer reviews. I'm a greybeard and I enjoyed it and lend it out to my friends. The publishers https://www.nostarch.com/ have lots of similar books.


Just showed Girls Make Games to my 14 year old daughter and all she said was how condescending...


Everything re girls in technology is condescending.


Trying to think how to correct your typo without appearing condescending ;)


Depends a lot on their interests and experience.

If she has little to no experience with coding, check out this as a start: http://code.org/

See the 'advanced' section of this handout for more coding resources for older kids: http://bit.ly/ortonacode

On the hardware side, there are projects to make programmable jewelry, clothing, and other wearables, in addition to the traditional robots, cars, drones, etc. See the Adafruit site, for example: https://www.adafruit.com/category/65

I have a 12 year old son. He's been interested in the raspberry pi and we have a PocketCHIP coming in the mail: https://getchip.com/pages/pocketchip Install RetroPIE on a Raspberry Pi for a videogame emulator: https://retropie.org.uk/ Last year we did some code.org and scratch stuff and learntomod used blocks coding to learn minecraft modding.

What I would NOT recommend is starting straight up with traditional coding that is not designed with beginners and kids in mind. Don't throw python, java, C, etc. at them. Let them follow their interests: games, wearables, etc., and learn coding in pursuit of that interest, not force them to learn coding for coding's sake. I myself was interested in creating a webform 20 years ago for my student club, and in the process learned Perl for CGI scripts. It was only years later that I learned how sucky Perl was and what a bad choice it is for beginners ;)


>What I would NOT recommend is starting straight up with traditional coding that is not designed with beginners and kids in mind. Don't throw python, java, C, etc. at them. Let them follow their interests: games, wearables, etc., and learn coding in pursuit of that interest, not force them to learn coding for coding's sake.

No, this isn't the best advice in my opinion. Don't decide for the kid what is for them or what isn't. Let them decide that. Remember, Bill Gates coded at 13 in languages "meant for adults". I personally learned C at 14 from a tutorial that came with a C++ IDE (I had no idea what programming was, I just downloaded the program from the internet). Don't underestimate the intelligence and ability of kids.


This. I learned assembly and C at 12. It can be done, because I wanted to.


Me too.

I don't disagree with these warm and fuzzy environments for kids to learn, but that existed when I was a kid - logo: https://en.wikipedia.org/wiki/Logo_(programming_language) - and I thought it was a joke. It was demotivating and condescending rather than encouraging.

I have a 18 month old, and I don't know the answer yet, but got to figure it out soon...


She should get her own computer if she doesn't have one already. How about a Raspberry Pi or two?


Or just a pre-owned system from Gumtree. You can pick up a solid ThinkPad with an i5 under £100 easy. I like ThinkPads as they are solidly built and can usually always run Linux without much hassle.


Our son is 12 also, and I've been introducing him to programming over the last year, in phases:

1. We installed Scratch, and let him learn that.

2. After he got good at Scratch, I installed Love2d and helped him write a few really tiny games in Lua.

3. Last Christmas we bought him the book "Sam's Teach Yourself Minecraft Modding in 24 hours" by which he slowly learned the basics of Java.

4. This weekend he borrowed a 9-books-in-1 book for Java which he's using to port his Pong game from Lua to Java in, using a custom JComponent.

That's the order that's working for him. He's well on his way to being able to write things like 2048. Not there yet, but soon.


Are you afraid that learning Java is going to kill any passion for programming? If you're only requirement is fun and learning, it seems like Java is not the best choice.


Might be best to focus on "tech" that your friend's daughter is already interested in. Tech is too all-encompassing a term without providing additional qualifiers.

For example, if she is interested in how apps work, start with some iOS tutorials and demonstrating a simulator. Or perhaps she has questions about how websites are made, in which case demonstrate some HTML and CSS. Maybe "tech" means a hardware focus, in which case start with the Raspberry Pi or Arduino kits.

In general, the advice would be to dig deeper into what type of technology she's interested in and go from there. Her mom may have classified "tech" as "taking things apart and putting them back together again", which may indicate a more mechanically oriented (and not necessarily electronic/computer) mindset.

I agree with many of the sibling comments that project-based learning approaches especially for hobbies are generally highly successful with inquisitive children and young adults.


I'm horrifically biased (I'm getting married to the author in a few months :)) but Adventures in Raspberry Pi seems to get great feedback https://www.amazon.com/Adventures-Raspberry-Carrie-Anne-Phil... as well as Carrie Anne's Geek Gurl Diaries https://www.youtube.com/user/GeekGurlDiaries


Hope you have a great wedding!

I've heard that "Adventures in Raspberry Pi" is awesome, but I'd also maybe throw in some additional R-Pi based hackery (for music http://www.instructables.com/id/PiMiDi-A-Raspberry-Pi-Midi-B... is pretty cool, but it all depends on what she's into!)


With girls, its all about giving them confidence. The rest I would say is normal stuff you do to encourage curiosity and learning for children.


I agree. When I was 12 year olds, boys were excited about Arduino. They were playing with the LEDs and wires, where as the girls said they didn't want to play with it because it looked "ugly". With the help of friends, we decided to help the girls design and do 3D printing. Then they got excited and slowly started to learn.


I though kids how to program and the one we would start everybody out on (unless they already had a lot of experience) was https://scratch.mit.edu/ It is basically programming, with out all the boring typing. You can go from zero to making a cat make a sound, in a loop (fully guaranteed to make any adult hate you) in a couple minutes and it scales all the way up to making Mario (https://scratch.mit.edu/projects/49905542/), but way more discoverable than any "real" language. By the time you can make Mario, you can program for real.

It includes ways to show of what she has made to her friends, but it is not directly social (unless you are sitting more than one person at a computer, which can totally work).


My "gateway drug" for getting into programming was web design. I could make this pretty, artsy website where I could share my photos, drawings, etc.

I also was big into fan fiction when I started using the internet in my youth, so it was fun for me to make a website for housing my fan fiction and that of others. The fanfic website eventually got unwieldy to style each story's page separately, so my dad pointed me at PHP: I could use `include` tags to include the same header and footer on every page. Voila, I was programming! Then came MySQL so I could offer filtering options for pairing, rating, characters involved, etc.

So if your friend's daughter is into creative stuff outside of technology, you might have traction encouraging her to combine the two.


I have a niece; her mom tried hard to get her interested in piano but made no progress. At the farm one Xmas, I was upstairs practicing the Bach 'Chaconne' on violin. The niece came up and watched. I put my violin under her left chin, showed her how to hold the bow, and she made a sound.

The next day her father asked me, "How much is a violin going to cost me?".

Lesson: Children can get more interested in activities they see adults interested in and liking.

The difference: The girl's mother didn't like piano enough to play it. I really like violin and was working hard playing and practicing it. The Bach 'Chaconne' is not a trivial piece of music, and it's possible to get really involved in it, which I did. Those are all big points.

So, for a girl and computing, first, interrupt some of your hard work at you computer, sit her down next to you, and show her how to do some things. E.g., show her how to type "Hello World" into some word processing program and print it. Show her how to use a Web browser and e-mail. See what else she is interested in, and help her with that.

Eventually get her father to buy her a computer. I suggest a desktop computer in a mid-tower case, with your help, she can assemble herself. Likely install both Windows and Linux.

Get her started on programming, say, in some interpretive language, maybe Python.

Get her a project she would like to do, maybe build her own Web site and use her computer as a Web server.

Get her well into word processing so that she can do better with school term papers and, more generally, practice her writing.

Learning to read in some data, analyze it, and plot it stands to be good for her when she gets into high school math and science.

I have a special suggestion: Get her a really good editor, one with a good macro language. I use KEdit. Except for Web browsing, I by far my most heavily used program is that text editor; I use it for a huge range of things. Good skills with a good text editor are darned good to have.

Take it from there, and, say, report back on what did/didn't work!


I volunteered to teach 12 year kids on programming. I found out that teaching through Arduino was the best method. The love seeing their product becoming alive.

I would suggest starting with particle photon and do some mini projects.


Female role models will help. So, biographies and this: http://sheroesproject.com/

You might also look for resources on the social and emotional needs of gifted. Lots of bright kids wind up "shy." Having spent a bit of time involved in the gifted community and raised two bright kids, I think this is not mere coincidence and some of it is driven by the negative social fallout that tends to come with the territory when people at school figure out you are "smart."


Specific role models that may be relevant: jeri Ellsworth, grace hopper, Hilary mason, Jessica Evans, Kira radinsky, Joanna rutkowska, Limor Fried (LadyAda). Just a random list off the top of my head.

* edit: added LadyAda


I read Amelia Earheart's bio when I was in sixth grade. It doesn't necessarily have to be women in tech per se, but it helps to be a woman not in the entertainment industry. Most of our wealthy, "successful" female role models are actresses and singers. Sex appeal is a large part of their career and how they make their money. This is very problematic if you want a business career. Looking sexy at work causes all kinds of problems in more conservative environments. I think a lot about the fact that women have basically two models for how to look successful: Pretty women who are often wives or entertainers where highlighting their femininity or sexuality is a big part of it, or trying to dress like a man. In America at least, we don't have a lot of good role models for what successful women in business or government look like.

I think about this a lot and I think this is a big source of problems for women trying to figure out how to make it in business (or government or something other than as entertainers or someone's wife).

Thanks for contributing your list.


What no Limor Fried?


Saying "tech" isn't much information. What do they want to do?

If it's electronics, buy some starter kits, a good iron, and get them a book on electronics. (Maybe also show them some people like EEVBlog)

If it's computer science, but some computers, get them an internet connection and let them have at it.

Although I always say this: no one will learn unless they have a project they need to do. This is no matter the field. If you're not interested you're not going to learn in the first place.


+1 on eevblog. I started watching when I barely learned basic physics E&M and calculus, and now I'm confident that I can tackle all sorts of electronics all thanks to him.

Though I was a highschooler back then and I had so much free time and watched 600+ videos in about 6 months, so not for everyone imo.


I'm in college so I'm using it to break from CS to EE. Far better then taking our schools EE classes since I can do it at my own pace and I learn things from someone who is currently practicing in the field (who seems to be quite good at it).


In high school, I learned top down--projects first, math second. Now in school doing EE, I do bottom up--math first, projects second. I think having that top down experience in high school was tremendously helpful because I have experience in the entire full stack -- transistors to Javascript.


No Starch has some great books for geeky kids/teens in their catalogue: https://www.nostarch.com/catalog/kids -- fun ways to learn programming Python, JavaScript, Ruby and/or Swift, programming theory, electronics and the like. Could especially be fun if she has some friends with the same interests :)


I myself started to program at the age of 11. At that time my father bought a book and learned a little Visual Basic, he then got introduced it to me and I was hooked. After that I borrowed an old book he had on HTML/CSS (creating webpages) and after that I started picking up books in the library.

I think that you should try to let her learn to create webpages with HTML & CSS, and then later she could try to learn JavaScript. It's an relatively easy place to start, and you're learning real world skills. I tend to disagree with people who want children to learn "Python Scratch" or other toys that you'll never get any use for.

Theres a lot of resources online (ex. http://www.w3schools.com/html/default.asp), and on YouTube. But I will always recommend to start with a good book, the "For Dummies" series is usually very good (ex. "Beginning HTML5 and CSS3 For Dummies").


I know that Team Treehouse (https://teamtreehouse.com/) has a student discount that reduces the cost from $25/month to $9.

I think this would be a good option because the courses cover a wide range of topics so she can explore computing/internet basics, different programming languages and other digital tools (Photoshop/Illustrator) before really committing to one technology.

Treehouse also has specific tracks for app, game and web development which provide a structured path to learning the technology which can be good for beginners that might otherwise be overwhelmed.

Safari Books/O'Reilly provides free access to all O'Reilly books and videos for K-12 students. The Head First series books are particularly good for beginners.

https://schools.safaribooksonline.com/


As a father of a two year old daughter, I think I will be trying to figure this out few years down the line :-)

I remember fondly attending a coding course when I was around ~10. It was early 2000, so we used Visual Basic for Applications embedded in Office 97 :-) 5 to 10 kids + teacher. We were writing silly text adventures, and poem generators and then moved onto writing simple games.

Interesting development later on was, that girls in my group pushed for more and more math (I remember proving irrationality of sqrt(2) was a big topic) while boys were interested more in the coding, especially if the output was something visual.

So, remember that tech might be physics or math as well, at least where I come from there were many extra curricular activities I could choose from in this area :-)


I'm surprised that only a handful comments mention encouraging game modding.

Modding is advantageous because the feedback is often immediate and tangible -- small changes can result in appreciable results to a game world.

Working with game APIs, assets, and scripting is rarely elegant or academically pure, but the reward of accomplishing a successful mod produce a good incentive to learn real-world 'ugly' APIs. These are the sorts of systems that most people in tech have to interface with every day. By being introduced to these real-world systems early on, there is no jarring transition when arriving from a more learning-based environment.


12 year olds are quite smart. Send them this page and see if anything attracts their interest. It's a bit harder these days than it was 10-20 years ago where there were many less distractions.

I'd recommend showing them "cool" things that use programming. Wearables, small automated things, computer controlled squirtguns, 3d printers, visit a local maker space, etc.

Sure there's many people that self started decades ago and taught themselves programming from scratch with minimal resources. But lets face it, those people are the exception not the rule.


I've noticed quite a few young people interested in electronics and computing programming start out with wearable electronics.

They make Arduino boards for wearable projects that run of batteries. The Adafruit blog is quite interesting.

https://www.adafruit.com/category/65

https://blog.adafruit.com/category/wearables/


https://www.girldevelopit.com/ would be a great place, it's a female centric coding club that is very welcoming. At 12, most beginner coding courses via codecademy or similar outlets are probably within her intellectual grasp. Also, I'd suggest getting your friend to set up a project related to her interests with an end "product" in mind and then seeking out advice on how to build it.


She can learn just about anything nowadays from sites like Coursera, edx, and Udacity.

Books like Realm of Racket can be fun introductions to programming that happen to teach some advanced stuff.

Books that the parent's might like are Carol Dweck's Mindset, Barbara Oakley's A Mind for Numbers, and Angela Duckworth's Grit. If she shows an interest in mathematics, the Art of Problem Solving books and forums are great.


I've been gradually teaching my daughter (7 years old) to code. I've primarily focused on slow, self directed pace (when she has an idea I help tune it to something she is capable of and we do it together). So far the best resources I've had are: 1. Code.org: The Hour of code and Tutorials using Blocky are hands down the best intro to the basics I've seen. You get through iterative programming up to loops with great tutorials. Blocky also helps when you haven't yet learned to type. 2. MIT Scratch: Also using blocky but has a great playground in which keeps it focused for lots of things my 7 year old wants to do (she animates Birthday cards, codes little games). 3. Arduino: So far we've built a few things together. This really takes more work on my part since she is still too young to get all the concepts but the main thing I'm trying to develop with her is that she can approach any of these problems and solve them. She doesn't have to be intimidated by software or hardware. So far we've built a greenhouse opener (servo activated by temp sensor) and we are working now on a programmable clock.

Things I see recommended here but which I personally wouldn't do: 1. Drop her in to a Linux/Command prompt with a book and ask her to go to town. I think this may work for some folks but I'll wager the success rate would be pretty low as a general solution. Also I disagree that letting a kid walk through man pages or technical books like K&R is the most effective for this age given how many awesome resource there are to get started. Those things can come at their own time when they have an actual problem which requires it. 2. Don't start on a language other than blocky unless she can type. The typing will come but if you want a clean start and not have her too frustrated with doing the programming while also slow typing I would handle learning these separately. 3. Let her to go on her own. I'm fortunate (and most people on this site are) to know how to code so this applies only in this case. Its much more motivating her for this to be "our" project where I can help get her unstuck when there is a challenge and its something we spend time together on. I also get to model learning and debugging for her which is hard to learn by yourself. On the flip side though you have to be patient and not be tempted to do it all yourself as the idea is that she learns it all eventually.

Remember the big picture: keep this mind and realize that knowing this is incredibly powerful but at an early age there is so much to learn that keeping it fun and engaging is the best way to have her want to continue to come back to it. Also remember that these kids want to learn and helping them pick up the right tools to help them solve their problems will enable them to do that as an adult.


> Things I see recommended here but which I personally wouldn't do

Seconded. Advice on learning tech and science tends to contain a large amount of survivorship bias. A lot of people in these fields had some unusual, unstated quirk in their background that led them to do stuff like read K&R front-to-back while all of their friends were watching TV. It worked out great for them, but it's bad bet to hope it will work for a large percentage of kids.


> Anybody got any advice?

Ask the kid and see what her interests really are? Does she want to learn how to make games or what? She should be able to voice this at 12. Can she look up free programming books with Google? There's tons of them. Does she want to mess with a R-PI? If a co-ed camp was a disaster (at the age of 12!) simply because it was co-ed, she might need therapy, not just some hippy-dippy girls-only camp.


Find the thing that excites her and encourage it. Whether that's game programming (clone Mario), web programming (clone Twitter), algorithms (implement sorting, path finding, etc), controlling Karel the Robot[0], or something else.

0. https://en.m.wikipedia.org/wiki/Guido_van_Robot


My advice to someone that age is that if the technology is too difficult to learn then just move on to something easier. I wasted too much time at that age trying to learn things that were just too difficult (assembler, etc). Back then though I didn't have access to mentors or people who could suggest more appropriate technology.

I suggest Maker Faire, arduino and raspberry by, wearables, etc.


Find ways to foster self-direction, experimentation and facilitate the experiments.

There is enough material for free on the internet. Buy her stuff if its practical though.

But she very soon will need to be self-motivated for her learning and making a living. Encourage her to work on 'real' problems or projects that interest her. Encourage her to work with others as much as possible.


Attend a local Maker Faire - There's such a broad amount of creative energy covering every interest, I'd think it sure to spark/fuel any passions. I'm a bit of an introvert myself, but I can't help but talk to folks there about what they're doing and what challenges/triumphs they've faced.


* Local Hackerspace is often a great opportunity to meet people, get resources and stuff™.

* Offer her some literature on the general topic of programming, theoretical and/or philosophical books.

* Women-focused events/communities (Lambda ladies, and many others) that will allow her to meet potential _female_ role models, which is very important.

I may forget some stuff.


If she wants to do software then Python with one of the many excellent free and non-free books for kids available. Just look them up on Amazon.

If she wants to get into hardware start with a RPi or Arduino.

Also get her running Linux. Start with something simple like Mint or Ubuntu. Teach her how it is "like Windows and OS X" but a bit different. Do some basic command line stuff like making a folder, opening a file, etc.

Setup Minecraft which I would assume she already plays if she likes tech. Show her mods, maybe even a little Java to make mods although I feel Java with its strict OOP and compile/run can be a bit daunting for even an adult so maybe wait until she understands Python a bit.

The main thing is just explore all the different things. Tech is awesome today as if you have a computer you can get so much stuff free thanks to the FOSS community from the OS to everyday software to programming languages to books etc. And little hacker hardware like the RPi is affordable by almost all with a little spare income.


Lego mindstorms is outstanding


This is a bit dated, but it's a good start:

http://www.catb.org/esr/faqs/hacker-howto.html


Just have her do a free online intro to Python course. If she has aptitude it will be trivial yet still meaningful intro to programming. For shyness/confidence, sports would be preferable.


Checkout Girls Who Code--maybe they have a summer program near her. It might be geared towards older girls but she might be able to get involved in some of their other events.


I'd help her get connected with a mentor / tutor she likes. Having a resource to bounce ideas of and help guide her through tough spots can be very helpful.


I learned Python using Codecademy, then I did some fun projects from Python Playground.

Wearable electronics are good; the Make book seems like a good intro to that area.


What's she into? If she likes games I'd just have her download Unity and learn C#. Tons of videos, tutorials, and books to choose from.


Give her a linux install disk and maybe a few pointers on how to use it as well as a copy of K&R C. I was about her age when I started!


Baby steps. Install Arch Linux. /s


I'm not specifically qualified in any way to say what's best to get a kid started on computer science/programming is but I believe it's nice to let them take the path how things evolved naturally. If this is too much, (regarding programming) maybe start with C.

I also believe it's good to read CS history. Following article is a personal favorite. http://www.defmacro.org/ramblings/fp.html


I think Python or any scripting language is better to ease someone into CS especially at that age. It is rewarding and helps to see "Hello world!" on the screen immediately in a line of code as opposed to wrangling with IDES and cryptic messages for missing semicolons.


From experience hello world is actually a terrible first thing to show someone in a scripting language since it is pretty much a dead end. Seeing "Hello world!" is not really that rewarding when compared with something like

    a = 3 + 2
    print a


Maybe if it's the only thing you show someone but most tutorials will start with hello world! and then progress to variables, string interpolation, expressions through a sequence of:

1. Try changing the statement print your name.

2. Having to type the same thing over and over is unnecessary, we can save it in a variable.

3. You can use variables inside the print statement through a process called string interpolation.

4. In addition to strings, variables can hold many types of values, including numbers.

5. Operators can be used to manipulate values. Do some math with the variables.

6. Receive input and save in variable.

From there you can go to conditional statements, loops and functions.


Yeah that is a very straight-forward sequence, however some people just seem to be more comfortable with numbers. Either approach could be taken as long as it is mapped out like you did above.


I really enjoyed the Getting Started in Electronics when I was 12. I still have a copy from Radio Shack.

There is a newer version you can buy on Amazon.


I'd be happy to donate a Raspberry Pi to the OP for the young lady to use. They are an excellent learning tool.


when I was 12 I learnt html/css by making websites based off my favourite interests (sailor moon!) and that taught me html/css and I had a blog of course. Try to relate what she learns to an existing interest.


raywenderlich.com if she into mobile. thorough tutorials for absolute beginners with quick outcomes. That will help her create games to showoff/play with her friends. Speaking from experience.


Be a resource. At that age both me and my kids used parents as a toolbox (literally), driver, someone to bounce ideas off, last but probably not least a source of cash.

I've noticed that kids do what they want to do, at best you can steer toward a general family of actions. If the adult wants electronics, and the kid wants to learn by playing with MIDI and XLR connectors and semi-pro audio stuff, trying to steer toward raspberry pi isn't going to work unless you're incredibly sneaky, but bringing home a pile of surplus audio gear from work will be pretty well received.

My dad had plenty of money but knew I'd be a better engineer and better artifex in general if I didn't have the most expensive stuff. I'm not saying buy kids junk, especially not safety related which should be top of the line, but I learned a lot more designing and making my own ham radio antennas than I'd ever have learned opening a box and assembling a kit antenna or even worse opening a box to reveal an assembled antenna. You'll never really learn how to take care of (expensive) tools until you're "forced" to use junk tools.

You can learn a shocking amount of good engineering by osmosis, especially with some "pro" guidance. Buy her a broken down motorcycle or dirtbike (if not a car) and have her tear every piece apart figuring out how each part works and where and how its worn and how to use tools and just how stuff works. Tear apart some old VCRs and DVD players (older the better... modern set top streaming boxes are mechanically boring). Take apart at least three traditional desktops and put the pieces together into at least one working, "maxed out" desktop. I disassembled my mother's oven when I was about her age, this is not some weird metaphor either, this was back in the days of mechanical timers and clocks and rube goldberg thermostats that none the less sometimes worked. Every kid should tear apart at least one vehicle transmission and one carburetor in their youth. And talk talk talk, unless the kid learns something about metal fatigue or electrochemical corrosion or how to put out cutting torch fires they're just destroying stuff. Your job is very boy scout adult, chill out other than "no you can't use my cutting torch in the garage, take it outside first" and similar safety violations. All kids like burning stuff although its only socially (semi)acceptable for boys. Notice how I can melt aluminum in that wood fire, but not steel, tell me what that means? If I get one thing across in this post its that kids need to take stuff apart almost as much as they need to build stuff.

I don't know the "tech" SV social media coding equivalent of tearing apart a broken down Honda CBR 150. When I was a kid it would have been breaking copy protection on 8 bit micros which was well within my/our ability. Maybe fun with a packet sniffer or mapping out other people's wifi access points. Maybe replicate a software exploit following the premade instructions for the exploit, then try it on similar software and see what happens.


Stay simple and buy her a POSIX-compliant C programming book.

She'll have a server running in no time.

:)


Start with Programming in C or C A Modern Approach (although the latter is expensive even second hand) and learn some basic Linux.

Then K&R just because everyone should read it.

Grab C in a Nutshell, Understanding and Using C Pointers and C A Reference Manual for reference.

Then get the Linux Programming Interface book.

Okay maybe a bit overkill for a 12 year old...


when i was 12 i spent several hours a day reading RFCs, man pages, and HOWTOs.


12 year olds should be outside playing, not coding.


12 year olds can easily do both. (I certainly did.)


Are you telling me reading technical documentation isn't enjoyable?!


If that is true why do we send them to school for 8 hours a day then give them 2 hours of homework to do in the evening? Oh right because kids also need to learn. If this kid enjoys tech then what is wrong with her learning something she enjoys?




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

Search: