39

How could I help a smart preteen child (pre-teen) learn programming? He does well in school, and he has skipped 2 grades and is an introverted stereotypical nerd. He is very interested in web development and has mastered the fundamentals of HTML, CSS, and JS, which I don't know anything about (I'm not a programmer). He built a personal website from his knowledge. He's learned this from the internet on various tutorial sites and Stack Overflow.

How can I encourage him in developing these skills? Is there a way to help with his learning given that I don't know programming myself? I don't think I can learn all that he has learned, since he spends so much time on it and is so devoted.

I think the greatest danger is losing his motivation and quitting. Debugging can be frustrating sometimes, and I don't want him to stop because of it. In other subjects, I could help him work thru it, but with programming, I can't since I don't have any domain knowledge.

What should I do to keep his motivation to code so that he won't likely get discouraged when faced with difficulties given that I can't overcome those difficulties myself?

(not a parent myself)

  • 41
    Hmm, just forbid it, and they will be immensely interested in the topic. – Per Alexandersson Jan 1 '15 at 11:15
  • A friend of mine wrote a blog post (davidketcheson.info/2014/12/09/teaching_kids_to_program.html) about how he is teaching his kids to program that might be useful to you. – Jeff Jan 2 '15 at 5:36
  • 3
    I learned programming by myself at a very early age. My dad bought me the tools (today, you can get a free version of visual studio) and books. He doesn't need to program like a pro yet, just to have fun doing it. I had fun by making games, started with a text-based adventure, then a 2D shooter game. Also with visual studio, he can increase the complexity of this website by making it dynamic. – the_lotus Jan 2 '15 at 13:39
  • Learn to code with him. Fun activity for u to do together. That way u can do the frustrating parts for him in the beginning. – Evorlor Jan 3 '15 at 14:24
  • 9
    the fundamentals of HTML, CSS, and JS, which I don't know anything about (I'm not a programmer) says the person with 4k SO reputation and whose top tags happen to be HTML, CSS, and JS – Santa Claus Jan 21 '15 at 22:47

20 Answers 20

25

First off, in terms of helping the child learn:

  1. Many/most schools have computer clubs. Encourage the child to inquire from other students, or ask the school professionals yourself. This will place the child with his peers developmentally, which is the biggest encouragement you can give.

  2. Talk to a computer teacher in the school if one exists. They may agree to help the child, or give advice.

  3. Similar to #1/#2, advertise for a tutor if you can afford one. A poor but brilliant CS college major may truly enjoy teaching a smart pre-teen, a lot more than less smart age peers they usually tutor. I know I did. The challenge (aside from the fact that you have to pay) is finding someone who's good at teaching - prior teaching or tutoring experience should be asked for, as well as ability to work with younger kids.

  4. Online courses (Coursera, etc...) can be great, especially for an interverted nerd (me looks in the mirror)

  5. To challenge them point them to Rosetta Code and the Code Review Stackexchange sites.

Second, if you feel they could use motivation for next steps:

  1. If the child is mature (likely is), show them average pay rates for various professions, and that software engineers are way up compared to most professions. This will make sure that he can look past the usual geek-bullying he is likely to encounter and has reasons to stick to coding.

  2. Point out that there are plenty kids like this (as you can see from personal testimonials on almost all answers here :) - he will likely be more encouraged if he doesn't feel like a freak even if he is introverted by nature.

  • 3
    Many/most schools have computer clubs I beg to disagree. – Santa Claus Jan 21 '15 at 23:30
  • I have to agree with @SantaClaus on this one. Especially in Texas, there aren't that many programming groups. I was extremely displeased when I found out that my local highschool didn't have a club. We tried talking them into it and they denied it because of funding. Yet they have 20+ sports clubs. This is apparently true with most of the schools in Texas, except with the inner-city ones. – Damien Bochkarev Mar 13 '16 at 12:32
12

A couple of things to add to user3143's excellent answer:

Tools. Tools are not a substitute for experience or knowledge, but every craftsman/woman appreciates good tools, and they are something that you as a non-programming parent can help with. Some of the best are free, but if the kid wants an IDE, library, program, etc that costs any reasonable amount of money strongly consider getting it. I find Photoshop for example to be invaluable for web development (my job). Get the kid some mobile tech to develop for. It doesn't have to be expensive, and you don't need to hook it up to a data plan, a used 2-year old phone & tablet will do.

Encourage the child to contribute to open source, learn how github works (if he/she doesn't already). Encourage the child to attempt to get school credit for personal projects (best grift ever). Encourage the child to write programs as gifts (I'm making a website for my 5 year old daughter currently). It helps in learning how to anticipate and deliver on other people's wishes and requirements, which will be important if you want the child to pursue a career in programming. Speaking of which...

I'm assuming (possibly wrongly) that you are encouraging with hopes of this possibly becoming the child's career. If that is the case, there are a number of things a professional programmer needs to know that a hobbyist arguably doesn't. If your not at that point yet (the kid's pretty young) don't worry about the following list of pro prereqs: source code version control, teamwork, dealing with clients (whether they're bosses or customers), documentation (programs are for other people to read and only incidentally for computers to run), and work-life balance (our industry isn't the worst, but its a problem).

Last but not least is RSI. Your child will be typing. A lot. I took a summer in grad school to learn to touch-type in the colemak keyboard layout, and I'm very glad I did. Worth checking out.

  • 2
  • 1
    I'll bite. Hobbiests need an SCM (Git is the best, IMO) if they ever want to be sane. – Undo Jan 1 '15 at 16:58
  • 2
    That's why I said 'arguably'. I've certainly cowboyed myself into a corner a couple of times on personal projects by thinking 'I won't bother with source control on this little throwaway program' :) – Jared Smith Jan 1 '15 at 18:33
11

The other answers here are fine, but I'm worried there is one important fact that everyone overlooks :

an introverted stereotypical nerd

I'm myself this kind of person and you can't imagine how hard life is when you're shy and literally afraid of talking to others (this seems to be called social anxiety), so if possible you should take care of this before anything else, if not I'm afraid he would use programming as a "refuge" from real life (like I did for a few years) and that would give him trouble in the future.

  • 1
    This is a very good point to keep in mind. Looking for a programming club, or extracurriculars that incorporate programming (e.g. FIRST LEGO leagues), can help him develop both his obvious interests and his socialization skills. – Acire Jan 2 '15 at 13:35
  • 2
    Agreed. I probably got more out of one year of theatre in high school than any other classes outside of computer-related stuff. It taught me how to deal with stage fright, how to improvise in a stressful social situation, and all sorts of "soft skills" that come in handy all the time. And "drama geeks" are, well, another sub-species of geek, so interacting with classmates and and relating to them won't be as hard on the kid as it would be with some of the other alien life forms that roam the hallways of a typical high school. You should definitely encourage (but not push) him to take drama. – Mason Wheeler Jan 2 '15 at 19:35
6

As a programmer and to some extent being 'that kid' myself I'd say that things like (cheap) embedded hardware kits such as the Raspberry Pi or Arduino are the way to go. These kits are usually quite cheap (the Pi is around $30 and is powered by a phone charger).

Young programmers are not interested in getting a proper grasp of programming concepts like writing secure / high-quality code. Until it becomes a habit it gets in the way of just making things work. I liken it to chemistry in that knowing the intricate details of why Mentos and Diet Coke make a big fountain is far less interesting than messily experimenting in the yard with soda and sweets.

Young programmers learn many bad habits from online courses and code samples. They are usually poorly engineered and built to work only under optimal conditions. Good programmers build for all those odd little 'edge cases' where things aren't quite what was expected. At some point they will have to unlearn all the bad behaviour and avoiding the 'professional' environment until they're ready is a good way to help stop bad habits from forming.

They're motivated to play and they may as well play while they're still a child and while they want to do it.

Taking hardware / circuit boards and actually making something encourages creative skills which are frequently (stereotypically) lacking in children with those kinds of interests. As a young programmer, there is a good deal more satisfaction in the 'I made THIS' and of a bug in the code having the potential to actually break something. Plus when you've finished building it you can play with it for a while.

Most importantly - for the non-programmer it is much easier to praise something physical whose purpose is readily understood. That in turn leads to higher praise and more constructive conversations than code/programs on a screen which end up turning into 'bug hunts' or that need an explanation which is longer than the demonstration.

5

I was once in a similar position. I was a pre-teen who was eager to learn about programming and I was exhilarated by watching a computer execute commands as I instructed. I wasn't interested in web development, rather I was initially interested in quite the opposite: hacking/exploiting. Nonetheless, I believe my experience with learning to program will be relevant.

I believe the key to teaching a youth how to program is encouragement. This is something I wish I would have had more of. My parents are not exactly tech-savvy nor is anyone in my family, and because of that, I did not receive a lot of encouragement or support in learning/honing my programming skills. You have taken the right step by asking others for their thoughts and that shows you are supportive of his interests. The best advice I can give to the parent/guardian/mentor of a child who's interested in programming is simple: do not let them become discouraged or overwhelmed. A child can easily feel discouraged or overwhelmed when working on a large problem. It is your job to make sure that doesn't happen.

As for how you can encourage him, that's a little more complicated. Every child is different. My parents started being supportive and encouraging when I was in my final years of high school. I found the most encouragement when they would come into my room, sit down with me, ask about what I was working on, listen to me explain it in detail, watch me run it for them, and appear to be interested. Today I no longer believe my parents harbored much interest in my explanations or details, but at the time I was convinced they did and it helped me feel satisfied and accomplished with my work. Take the time to sit down with him, look at what he has built, discuss it with him, ask questions, and seem enthused. It will make him feel special and it will provide positive reinforcement. You may not be able to offer him help or show him how to do something, but your interest will give him the fuel he needs to find the solution for himself.

One of the best ways to learn programming is to find a difficult goal and make that a focal point of development. In my case, I focused on one particular goal when I was 16. I was focused on developing a program to exploit a very popular android/iphone game at that time. I became fixated on that goal and worked toward it for months. Finally I was able to build an application for it and then my goal became more broad. After I reached that goal, I then worked towards expanding the program and adding more features to it. Over the next year and a half, I made multiple programs which accomplished that goal and housed features I never once thought I could achieve. I will say, my motivation to expand further was money. I created an online business that sold the game-exploit software I wrote. However, his motivation can be anything. It does not have to be money or selling what he creates. He can simply find motivation in the satisfaction of achieving an end goal. It does not matter what motivates him, what matters is that he is motivated.


Here are some of the best resources I have found for learning to program:

  1. YouTube: This may seem like a poor suggestion, but let me explain. Search for "[Whatever language he wants to learn] tutorial" and choose a playlist. There are many great tutorials for a lot of languages on YouTube ranging from beginner to advanced.
  2. Khan Academy: I did not find this until a year ago, but Khan Academy has a free programming course. I skimmed through the course and it does seem to be a very good course for a beginner programmer. It covers the basic concepts and it is very understandable. It could be a good resource for him.
  3. "TeachMeComputer": TeachMeComputer is the YouTube name of a man who was created great tutorials for Visual Basic .NET and PHP. He has organized all of them and provided additional content on www.HowToStartProgramming.com. With the child's interest in web development, this could be a valuable asset for learning PHP. I believe VB.NET is a great beginner programming language, so that set of tutorials might be very useful to him as well.

Edit: My apologies for assuming you were the parent. I did not notice the last line of your post which says you are not. Despite that, I believe my answer might still be helpful.

4

Having learned software development myself in much the same way (although in the early 90s there was a lot less useful material readily available online and so I found/bought books as my primary source of info), I can say that the most important thing the kid needs he already seems to have: Motivation to learn.

The other answers here offer good suggestions, including elements such as involvement with like-minded peers, helping gain familiarity with tools and as simple as it sounds, learning to type efficiently is key (otherwise entering any sort of information into the computer tends to be so arduous that you can hardly confront the idea of solving major problems with code).

I would also add: Encourage this young person to select a goal/project of his/her own choosing and stick with it to completion. This may take several attempts, and the first one(s) may be left incomplete, be too ambitious, eventually become boring, etc. But learning to get through this and actually produce something of quality that someone uses (could be an open source project, or something used at school or by friends, etc.) - that's an important point and a vital step.

I learned a lot about programming around that same age (10-12), but when I was thirteen someone actually offered me money to program something for them, and it had a deadline associated with it. That was a different experience. While it had some stress associated with it, it also made me responsible. I had loads of incomplete projects and brainy ideas, but it wasn't until someone helped coach me into the discipline of delivering whatever software I was writing (and have it be decent enough and workable, not an overly buggy pile of crap), that I actually consider that I "became a real developer".

That's my two cents.

3

Start with Scratch: http://scratch.mit.edu/

"Scratch is a free desktop and online multimedia authoring tool that can be used by students, scholars, teachers, and parents to easily create games and provide a stepping stone to the more advanced world of computer programming or even be used for a range of educational and entertainment constructivist purposes from math and science projects, including simulations and visualizations of experiments, recording lectures with animated presentations, to social sciences animated stories, and interactive art and music." WP

  • 5
    Ew. I was forced to use Scratch in a "computer literacy" course in 6th grade, and it was terrible. why are you forcing me to use the mouse so much just let me tyyyyype – Doorknob Jan 1 '15 at 15:21
  • 1
    If the only thing you learned from working with Scratch is that you don't like the mouse, then you missed the point. It's an excellent tool for learning basic programming concepts. And it's a lot of fun to experiment with. Both of my kids loved it, and they've gone on to learn real programming. The key is not whether or not it uses a mouse; the key is that it's a fun way to get started, which might pull them into further learning. – james.garriss Jan 1 '15 at 15:37
  • 5
    Scratch is a pretty good starting point for introducing the fundamentals of programming logic, but may be a little bit on the young side for a pre-teen who's already started. It's also a good way to get them used to visual programming languages, which can be used in a career (e.g. LabVIEW). – Acire Jan 1 '15 at 15:39
3

Folks have already added some great suggestions. The only thing I can add would be to find something that he already likes doing, that programming would give him a competitive advantage in. For example, if he likes video games and knowing how to code means he could mod his system or software (yes I know this could lead to cheating) to give him an advantage, then perhaps that is a way to get him hacking away at the code and learning how to bend the behavior of an application to meet his needs. It might be silly things that he starts hacking away at; but with time, his skills would grow naturally without becoming a chore. When people enjoy what they do, they learn faster and continue to evolve.

3

Never forget that there are two goals, which may sometimes conflict.

  • Have fun programming
  • Become a great software developer

Keep those two in mind, because if you make decisions without being conscious about which of the two you are prioritizing, you may not get the right balance. Always prioritizing the same over the other won't turn out well.

Somebody who is teaching themselves how to program without guidance from more experienced programmers may teach themselves some bad habits, which they will have to unlearn later.

If getting a tutor for the kid is an option for you, then it could be very helpful.

Encourage the kid to get involved in open source projects, as that can provide multiple benefits:

  • You learn to work together with other people on a project, which is crucial if you hope to one day do programming for a living.
  • More experienced people participating in the project can provide some guidance on the way.
  • If you manage to contribute something nice to the project, it means there is something to put on a CV if you will some day be doing a career as a developer.

There are lots of open source projects, so it is quite likely there is one that would interest the kid.

Even if you don't have any technical skills, you can still guide the kid in that process. Some of what is needed to get involved in such a project is about good people skills, where you could probably provide some guidance.

Some online communities can come across as a bit hostile to newcomers. A few pieces of advice which are relevant in most cases are:

  • Be just a little bit humble at first. Newcomers are occasionally (sometimes for good reasons) seen as arrogant persons with higher self-esteem than justified.
  • Show that you are willing to learn.
  • Show that you can make valuable contributions.

Many open source projects are discussing developments on open mailing lists, so you'll have to decide whether you are going to be paying attention to those to see how the kid is getting along in the community.

2

I am currently at a young age and have been programming for several years.

I was first introduced into C when I was around eight, although I haven't touched the language much. I focus more on web development and design, although I have fundamental knowledge of Java for the Bukkit API and I will soon be expanding onto either Objective C or Swift.

In my current experience, it's best to learn via yourself. I find it more difficult at a younger age to learn from other people, but rather trial and error. I know that many schools offer computer clubs and such, as to which I was asked to attend but denied, although I don't feel as these suffice for me. Being a younger age, people generalize that us children are not capable of what they expect. I know that I'm more knowledgeable with various programming and scripting languages with many adults that assume my level of knowledge on the subject.

When I first started with programming I would watch many online tutorials, although only visual tutorials would help me. Reading and interactive resources wouldn't help me at all, although videos also limited me.

I would copy code from videos and explore how it worked. I would research certain functions and experiment with the language until I had intermediate knowledge of it.

I feel as though being a child, I'm limited to what I can achieve. Theoretically, I could be classified as a 'Nerd' or such for having such a broadened range of knowledge for computing and programming, although it isn't much help for me. I'm unable to focus my full time on computing and programming for barriers such as school, family and friends. If I were an adult, I believe that I could expand on my knowledge quicker and learn more, although it's different per person.

Anyway, if you don't want to read my cluttered text, I just recommend letting the child learn by himself. He's most probably in the same position as me feeling limited, although if you leave him be I'm sure he will find resources that help him rather than being given resources that won't help him.

I apologize for any grammatical errors for I am still a child myself and am not capable of writing in detail or in the structured way an adult with more experience and knowledge would be able to.

I hope my information helps however, even though it's quite broadened information.

Edit: I would not recommend using tools such as scratch or auto-completion or automatically generated code tools as these would defeat the purpose of programming. Scratch consists of common sense rather than programming - this isn't how one should view programming.

  • 2
    +1 to your edit. This is my biggest complaint against using some IDE's when learning. If the IDE writes most of your code for you, then what are you learning? I am cautious when recommending Visual Basic .NET because of this issue. Visual Studios for VB.NET often auto-writes a lot of the key code and suggests what to write for the rest. This is fine if the user learns what the auto-generated/completed code actually does, but if the user does not seek this knowledge on their own, then they will not properly learn. So +1 to your advisement against these types of things. – Spencer D Jan 1 '15 at 19:01
  • 1
    Thankyou for agreeing with me. As I have knowledge in a variety of languages, I will use IDEs that auto complete. This is only for time management, and even though I would recommend this for more experienced developers, people still need to learn how to program. It's like knowing how to speak a language without knowing how to write it in a way. – Profile Jan 1 '15 at 19:05
  • Good analogy for it. If I may, I would say it's like knowing a few words in a foreign language and then using google translate to translate the rest of what you want to say. Yes, it gets the point across and it works, but you did not write it yourself and thus you did not learn what each individual word means. However, as you said, once you understand the languages and the code, using auto-completion and auto-generated code can usually be a major time saver. – Spencer D Jan 1 '15 at 19:14
  • Heh, yes. Completely agree with that. – Profile Jan 1 '15 at 19:14
2

I would like to add one point to the answers given here. If you can do so while still maintaining their interest, try to encourage studying of how the languages work (theory of computing, language paradigms, etc), maybe from reading textbooks and not just language syntax and documentation. Trial and error is great for learning what works, but understanding the why behind what does or doesn´t work in programming is vital to becoming a software developer instead of someone who is just interested in getting the task accomplished without regard to how well the code is written. Just my two cents as a software engineer who has seen the difference between the ¨it works, so it must be perfect¨ mentality and the idea of writing clean code that works well, is scalable, adaptable, etc. Studying the theory can really help this.

1

The kid already knows how to learn and has demonstrated he wants to. Many of the other answers focus on showing the kid materials, which isn't helpful, since the kid can ask questions about materials himself anywhere on the web. Shoving materials and expectations on the kid can even be discouraging and kill of any interest in the topic.

I think there's merely 2 things to look out for: Loss of interest due to lack of a challenge, or being overwhelmed by a challenge.

To combat being overwhelmed, show interest in what he did so he can be proud in his progress (or at least realize there was progress, if things are going slowly). And if there's a lack of a challenge mention some more things he could do (e.g. work on a mod for a game he likes, buy a Raspberry PI, etc), but don't push work onto him - let him be the one who decides if he wants to do them.

1

He needs personal projects to be interested in. Open source is great. Making a game is great - but definitely the tallest order to fill.

Finishing things that have clear use, either to him or someone else, is the most flexible, self-reliable, solution. I recommend games, because I love games. But again, I love games, and games require the widest range of skills to complete.

But if he's a nerd, he will love games too. Games are also profitable. Ahaha.

1

I think, most of the suggestions here lead into the wrong direction.

Given the fact that he seems to be able to obtain the relevant knowledge or skills for a project himself, I would recommend the two following:

Suggest to him to give an after-school teaching class or a few talks about programming to his fellow students. The best way to learn is to teach anyway. This may also improve his social skills.

Give him some "real" projects. Ask him to program a website for the school class or some web-applet for a math or physics project. Or a little database thing, or a wiki. This way he will see an actual relevance in his skills. He will understand that he is the expert and that other people need him. And he will learn early to market himself.

1

Congratulations to this young mind for already having an incredibly marketable skill at the early age of 14! How cool is this kid. (Im a programmer so pardon me while he geeks out).

  1. First of call encourage this its a great skill to have!

    An entry level programmer can start at $30,000-50,000 a year depending on the area. Advanced programmers (usually titled as Engineers) can make six figures easy.

  2. All of the resources that he needs to learn, have fun and continue to improve are free online, Ill post some links below.
  3. Even though programming is fun, keyboards and desks take a rough toll on the body. The young padawan has started at a very early age, he needs to consider some physical activities to make sure hes not getting carpel tunnel at 16.

    I STRONGLY suggest yoga, and in its simplest form just do a YouTube search and do 15 min of stretches every day that hes not at school or some other activity.

    He may think I'm joking (especially as a 14 year old) but the industry is very.... heavy... mainly because a programmer sits in one position and types. Build good habits now.

Link Love:

There are many MANY more resources out there but once he looks at these he will be able to find more from links etc.

0

If he is good at HTML CSS and JS without prompting he already has a knack for it. If he wants to sharpen his skills why not point him to CodeEval? By completing these challenges, he will get a feel for whatever language he picks up, and if he picks up multiple all the better (coding languages are like human languages after all, the more you know, the easier it is to learn the next one).

If he's the extensive reading type, you might grab some required readings from a CS101 class at your nearest university. If he can already program then these won't be over his head and may even interest him.

  • Sorry, -1. As professional developer, there's nothing worse that someone who thinks golfing is a positive thing; and as someone who taught programming, golfing is way beyond what a beginner should be exposed to. – user3143 Jan 1 '15 at 14:49
  • @user3143 Point, golf link removed. CodeEval (at least the beginner challenges) are a great way to pick up tricks and work through basic algorithms. – Sidney Jan 1 '15 at 15:41
0

All above suggestions are useful, but if you are in one of the areas listed below, you can go along to the Coderdojo there. If not and you can find some like minded kids and parents, you might consider starting one in your own area. See details at https://zen.coderdojo.com/dojo

I run one in my area of Sallins, Naas (in Co Kildare. Ireland) and from 4 kids two years ago, we now have 50+ kids each week, from 6 to 17, all working away at different languages and tools, from Scratch and MineCraft, to Python and PyGame, to Java, Blender, Unity, Eclipse, etc.

I hope you manage to hook up with a group, as it really adds to the experience, to be able to share the excitement of our constant learning experiences and to show off each new project :-) JK

0

I started programming in high school with the book Game Programming for Teens. It teaches the programming language BlitzMax. I think this is a good beginner's programming language because it has english-like syntax and a simple set of commands for drawing on the screen. Many other languages like Java have a huge API which is an asset to professional programmers but can be overwhelming for a beginner. Once you learn one programming language, it's much easier to learn another, so he can move on to another language like Java or C# when he's ready.

0

I can't say I read all of the responses, but the first few saddened me greatly. VIRTUALLY NONE of the modern computing greats (think Gates, Jobs etc.) cut their teeth at such a high-level of abstraction (i.e. web based technologies). They all got down and dirty with the hardware. The go-to gurus in any team are almost always the ones who have the deepest low-level knowledge.

If you want to him to learn REAL computing and get him excited about it, get him the necessary toys (good quality multimeter and a CRO (a nice 2nd hand 50 MHz Tektronix unit will do nicely), a nifty development board (Raspberry PI, Intel Edison etc.), and brainstorm some cool projects for him to do. Something like possibly connecting a motion sensor and emailing him a photo of his bedroom when there is any motion detected. Completely pointless, but great fun and cool to show off to your mates.

Once he gets the bug and has the tools, his skills will develop naturally. The most important thing is to set him challenges that are commensurate with his level of skill. He'll need some hand holding initially, but once he develops the basic skills of hardware I/O, program architecture, and how to get the necessary info to solve the next problem, there will be no stopping him.

  • Sparkfun is a good place to get started with this sort of stuff. Lots of pre-rolled robotics projects. I was thinking about recommending robotics/embedded stuff myself. – Tyler Jan 5 '15 at 12:37
0

from my OWN expierience i can say that you need to just make it learn himself like i did, i started from seeing what have other people done, reading wikis, watching tutorials and trying to understand their mechanics then started trying to do it myself and here i am. i have also learned some stuff from codeacademy.com it was my foundnation for html, css, javascript, php and ruby. Most importantly of all you need to give him a computer, internet, a lot of time, understanding, and of course he needs inspiration(like his own project or something important to him) and NEVER say him how to do it if he says he KNOWS how to do it, as he needs to find everythink out himself to learn it also he can get free sub-domain and hosting at http://api.hostinger.co.uk/redir/3586817(<-- im using that one) and he doesnt need any special tools for coding as its easier to learn when you do it in plain file editor But,actually you know, don't do anything that he doesn't ask for

Not the answer you're looking for? Browse other questions tagged or ask your own question.