Jump to content

Best way to teach a 12 yr old to code?


Nepal4me

Recommended Posts

My son is 12 and wants to learn to code....he wants to hack but I dont think he fully understands hacking.

 

Regardless he has been at the top of his class in math and reading since kindergarten and can type well and is the kind of kid you would expect to learn IT stuff quickly so I want to support him in this interest.

 

He joined Code Academy but doesnt know where to start.  Python Ruby Java???

 

Any suggestions on how I can support this interest of his?

Link to comment
Share on other sites

If you /he has an ipad, you could use the free Swift Playgrounds as a good and fun intro to programming - as starting with Swift would make C and its relatives more familiar...

 

https://www.apple.com/swift/playgrounds/

 

After that Udemy or the IOS Apprentice amongst many others to get stuck into it more in depth.

 

Maybe have a read if this or similar google about what language to learn first...

https://www.codementor.io/codementorteam/beginner-programming-language-job-salary-community-7s26wmbm6

 

 

Edited by coops
Link to comment
Share on other sites

Think about something he wants to build, be it an app or a website then go about building it, learning just enough of the necessary tech along the way - that's how I taught myself as a teenager 20 years back.

 

For a website, this would be a little bit of graphic design, then HTML, CSS and some JavaScript.

 

Personally I'd recommend JavaScript as a first language, since it is can be used on the client and the server, can be used to build native apps, and even to program IOT devices. Whilst it is disliked by many, it is somewhat of a lingua franca theses days. It also pays very well at a senior level, I know people on 200k US basic that exclusively program with JavaScript. This book is an excellent intro - http://eloquentjavascript.net/Eloquent_JavaScript.pdf

Edited by rwdrwdrwd
Link to comment
Share on other sites

22 hours ago, oldcarguy said:

Good for a few years , but will the world need all these Coders  and will there be jobs for them ?

 

Typewriter repairman  idea ......  Just wondering what will be the jog of the future in 10-20 years ?

Speculating aloud while running around in circles

Link to comment
Share on other sites

One way to support will be to check out if there are any programming/computing clubs in the area which which can provide some direction. Maybe the maths teachers can offer some suggestions as to whether there is something in the school or neighbourhood. Also have a look at https://www.fractuslearning.com/2011/12/14/programming-for-kids/

Link to comment
Share on other sites

I don't know what computing environment your kid uses now, but I would suggest Unix/Linux.  Yeah, if you use it from the command line there's a lot of commands and switches to learn, but that will lead to learning how to write shell scripts, and will introduce the use of variables and functions, among other concepts.  A good intro, IMO.  From there, onto a language.  There's no shortage of introductory material on the net.  The first lesson in any language is still "Hello World"

Java and the other object-oriented languages of that generation were great in concept but still, after 20+ years Java can be a resource hog if one were to code by the guidelines set by the O-O elders.  If you look at Android code you'll see the programmers use a lot of coding shortcuts to get around this.  Still, I'm surprised the language remains in such use.

 

On the other hand the Android world is chockers with frameworks, pre-written program bits that allow for the creation of apps without having to know much about coding.  You will have to learn some coding concepts to make use of them, but the effort will go into learning the rules of the framework(s), as opposed to learning the "guts" of the language. 

I was listening to a podcast interview with a young fellow who just learned how to put an app together ("dude, I wrote an app!").  The interviewer brought up that even though the app didn't need to communicate with the outside world (I think it was a metric-conversion calculator), it still makes network connections; app-making dude said that was being done by the framework he was using, it had nothing to do with him.  I had to replay that part to make sure I heard right.  I wonder how prevalent this kind of careless attitude is. 

 

Anyway, hope this helps, just my opinions.

 

 

Link to comment
Share on other sites

Is he interested in building things  ?

 

Maybe teaching him G-code for CNC machining would get him a great job later , 

and speaking English and Thai  will put him ahead of the Thai kids learning G-code , 

 

He can use that on a cheap 3D printer or small CNC machine and it all scales up , 

My friends kid is making Harry Potter stuff he designed himself , keeps him interested :)

Link to comment
Share on other sites

On 31/12/2017 at 5:58 AM, bendejo said:

I don't know what computing environment your kid uses now, but I would suggest Unix/Linux.  Yeah, if you use it from the command line there's a lot of commands and switches to learn, but that will lead to learning how to write shell scripts, and will introduce the use of variables and functions, among other concepts.  A good intro, IMO.  From there, onto a language.  There's no shortage of introductory material on the net.  The first lesson in any language is still "Hello World"

Java and the other object-oriented languages of that generation were great in concept but still, after 20+ years Java can be a resource hog if one were to code by the guidelines set by the O-O elders.  If you look at Android code you'll see the programmers use a lot of coding shortcuts to get around this.  Still, I'm surprised the language remains in such use.

 

On the other hand the Android world is chockers with frameworks, pre-written program bits that allow for the creation of apps without having to know much about coding.  You will have to learn some coding concepts to make use of them, but the effort will go into learning the rules of the framework(s), as opposed to learning the "guts" of the language. 

I was listening to a podcast interview with a young fellow who just learned how to put an app together ("dude, I wrote an app!").  The interviewer brought up that even though the app didn't need to communicate with the outside world (I think it was a metric-conversion calculator), it still makes network connections; app-making dude said that was being done by the framework he was using, it had nothing to do with him.  I had to replay that part to make sure I heard right.  I wonder how prevalent this kind of careless attitude is. 

 

Anyway, hope this helps, just my opinions.

 

 

Interesting post, I would tend to agree. At some point it will be libraries of exsisting code and you join it together or GUI programs, flow charts and pretty pictures, that create code in the background. You only have to look at Wordpress and websites, I have friends in Australia who have website businesses, using Wordpress etc, they have never written a line of code in their life.

 

Link to comment
Share on other sites

I might go in the first place to teach him what an algorythm is, check this page for example : https://www.tynker.com/blog/articles/ideas-and-tips/how-to-explain-algorithms-to-kids/

and then dive into code, whatever you choose, but no framework in the begining, that is not gonna help him to build good core for programming in the future.

 

This website is good to pick to best language for your kid's project : https://codakid.com/best-programming-language-kids/

 

and have fun !!

Link to comment
Share on other sites

6 hours ago, oldcarguy said:

Is he interested in building things  ?

 

Maybe teaching him G-code for CNC machining would get him a great job later , 

and speaking English and Thai  will put him ahead of the Thai kids learning G-code ,

 

He can use that on a cheap 3D printer or small CNC machine and it all scales up , 

My friends kid is making Harry Potter stuff he designed himself , keeps him interested :)

Yeah, I was thinking along the lines of one of the Arduino based hobby robots. You can see things happening (and not happening), makes stuff rather more interesting than just watching code do stuff.

Link to comment
Share on other sites

The basic of any programming is clear capacity to identify and disect a problem,
and then clarity to understand pro and cons of possible solutions.

how about a training course in logical thinking and war games (logical, not phone based) to give a sound basis.

Unfortunately, the feedback I get from the programming community is that the local schooling, vocationally or higher, is not up to scratch in this discipline..

Link to comment
Share on other sites

I am trying to learn Python by watching the youtube programming videos. Also, some free ebooks on Amazon and an Android Ap called  'Solo' that has many programming tutorials.  Do a quick google of easy/simple languages to learn.

Link to comment
Share on other sites

22 minutes ago, KKr said:

The basic of any programming is clear capacity to identify and disect a problem.....how about a training course in logical thinking and war games (logical, not phone based) to give a sound basis.

Unfortunately, the feedback I ....local schooling, vocationally or higher, is not up to scratch in this discipline..

This, although not exactly what I was looking for in this thread is something I've thought about a lot.  Why aren't there courses in our schools in critical thinking, biases and why we have them, confirmation bias, why we believe what we do....

 

This type of course would surely lead to more ethical outcomes.

Link to comment
Share on other sites

13 minutes ago, Nepal4me said:

This, although not exactly what I was looking for in this thread is something I've thought about a lot.  Why aren't there courses in our schools in critical thinking, biases and why we have them, confirmation bias, why we believe what we do....

 

This type of course would surely lead to more ethical outcomes.

At a university level there is, its called philosophy. We are usually busy learning "how", the asking why comes later, along with wisdom

Link to comment
Share on other sites

On 12/27/2017 at 10:15 AM, Nepal4me said:

He joined Code Academy but doesnt know where to start.  Python Ruby Java???

Any suggestions on how I can support this interest of his?

C++ it is, if if your son wants to learn program-code, including some level of hacking.

 

It might be more inspiring to begin with basic HTML & CSS, JavaScript (different from Java), and PHP; the latter two are both object-based programming languages, like C++ and many other high-level programming languages. For HTML & CSS, and JavaScript he'll only need a Notepad (or similar text pad on Mac) and a web-browser. For PHP, which work on the server side, he'll need to update the computers internal web-server with a PHP-engine, which can be downloaded for free.


The official World Wide Web homepage has a complete code-manual, examples, and tutorials on W3School online. W3School furthermore include XML, Extensible Markup Language: and the probably most used DataBase SQL.

 

Beginning with web programming code he can see results instantly, and he can create amazing stuff when including CSS, JavaScript, and XML.

 

There are without doubt some inspiring tutorial videos available on YouTube; and searching via Goggle (pages are coded in XML) there will be numerous instructions available.

 

Working with C++ and similar languages, for example C# or Pascal-family, he'll need a program – or app (application) in modern language – that can compile his code-script into executable program code (i.e. make the code to an .exe file). A high-level C++ programmer app will also save lots of script-writing, as numerous functions (inherit objects) are included with a click of a mouse.

 

Wish your son good luck...:smile:

Link to comment
Share on other sites

not sure how much you know about coding to help him , 

 

but I think he will do better in a group of kids that are interested in the same thing , 

 

maybe set-up a workplace and times to do some projects , attention span  on most kids working by themselves can be pretty short

 

 

Link to comment
Share on other sites

17 hours ago, Nepal4me said:

This, although not exactly what I was looking for in this thread is something I've thought about a lot.  Why aren't there courses in our schools in critical thinking, biases and why we have them, confirmation bias, why we believe what we do....

 

This type of course would surely lead to more ethical outcomes.

 

17 hours ago, Peterw42 said:

At a university level there is, its called philosophy. We are usually busy learning "how", the asking why comes later, along with wisdom

Can't say I have met too many philosophical programmers :licklips: Usually its about giving them a spec and a pizza and coke and letting them get on with it........:sorry:.    Anyway, the reason why I like raspberry pi for kid's learning is that there is also the opportunity to appreciate the interaction between hardware and software. Because of H+S restrictions students rarely get the opportunity to learn what is going on inside of a PC.

Edited by SheungWan
Link to comment
Share on other sites

I learned programming because I wanted to solve a (small) problem. At that time it was for me the macro language from AmiPro - but learning programming is about the concepts like if-then-else and not so much about the actual programming languages. Many  programming languages use similar concepts.

I would not recommend that he starts with something like Visual Studio or Android Studio or any other of the big applications. They are just too complex and it is necessary to learn a lot before it really gets started.

Maybe let him create an extra button in a ribbon in Excel. And then maybe a program which counts the lines in an Excel sheet and makes every 2nd line red or something like that. My idea is that he can play around and learn and maybe after 30 minutes or 2 hours he will see a result. And that is important for the motivation. And with any problem he will learn more and more programming skills and then he can look at bigger problems.

If he also likes hardware maybe he wants to learn programming with  Arduino. He can write a program to let some LEDs blink or things like that. When I was 12 I would have be delighted about something like that.

Link to comment
Share on other sites

8 minutes ago, OneMoreFarang said:

I learned programming because I wanted to solve a (small) problem. At that time it was for me the macro language from AmiPro - but learning programming is about the concepts like if-then-else and not so much about the actual programming languages. Many  programming languages use similar concepts.

I would not recommend that he starts with something like Visual Studio or Android Studio or any other of the big applications. They are just too complex and it is necessary to learn a lot before it really gets started.

Maybe let him create an extra button in a ribbon in Excel. And then maybe a program which counts the lines in an Excel sheet and makes every 2nd line red or something like that. My idea is that he can play around and learn and maybe after 30 minutes or 2 hours he will see a result. And that is important for the motivation. And with any problem he will learn more and more programming skills and then he can look at bigger problems.

If he also likes hardware maybe he wants to learn programming with  Arduino. He can write a program to let some LEDs blink or things like that. When I was 12 I would have be delighted about something like that.

I'm not sure a 12 year-old kid is going to get too excited about Excel or playing around with script programming colouring cells.

Edited by SheungWan
Link to comment
Share on other sites

Just now, SheungWan said:

I'm not too sure a 12 year-old kid is going to get too excited about Excel or playing around with script programming colouring cells.

It was an example! Maybe he wants to analyze lots of face-book pages who has the most friends or the most likes or something like that. He should do whatever he like to do. But it should of course be achievable for a beginner. At the beginning he won't be able to do complicated things and if he would only try complicated things and fail then I guess soon he would give up.

Link to comment
Share on other sites

Unfortunately I cant help him with programming.  He is just bogged down with code academy.  Not knowing where to start is difficult. Its also frustrating and boring.  I found a school at Paradise Park in Bang Na. Will try to get there soon to check it out. Just learning on his own isnt working.

Link to comment
Share on other sites

4 hours ago, Nepal4me said:

Unfortunately I cant help him with programming.  He is just bogged down with code academy.  Not knowing where to start is difficult. Its also frustrating and boring.  I found a school at Paradise Park in Bang Na. Will try to get there soon to check it out. Just learning on his own isnt working.

Probably there are good schools but there are for sure some very bad schools and if you let him start in a bad school then he will likely end up frustrated. Some time ago my gf wanted to learn about computer (usage in general, not programming) and I visited together with her a school which allowed the students to come as often as they want. First I thought that sounds like a good idea, until I checked our on of those classes. They had people in the room who just started and other people who visited that class already 10 times and the teacher concentrated on the people who visited already 10 times. The beginners understood almost nothing but the teachers comment was that they can just come again and again. At least for me that is not the way to learn efficient...

I think if he is really interested then he will look for resources on the internet and learn from there. And if you see he is still interested in a week or two and he needs more info then maybe think about a good school.

Link to comment
Share on other sites

7 hours ago, SheungWan said:

I'm not sure a 12 year-old kid is going to get too excited about Excel or playing around with script programming colouring cells.

 

Indeed!

 

This is exactly the reason I was suggesting hobby robots. Easy to program (if Arduino then it's C which is handy in other fields) and, importantly for kids, something interesting happens (or doesn't happen). Then solve the problem, just why has my line-follower decided that flying headlong into the wall (or spinning rapidly on the spot) is much more interesting than that nice, high-contrast, line?

 

I'm not software engineer, I'm a hardware guy, but an appreciation of software is really useful.

 

Link to comment
Share on other sites

25 minutes ago, Crossy said:

 

Indeed!

 

This is exactly the reason I was suggesting hobby robots. Easy to program (if Arduino then it's C which is handy in other fields) and, importantly for kids, something interesting happens (or doesn't happen). Then solve the problem, just why has my line-follower decided that flying headlong into the wall (or spinning rapidly on the spot) is much more interesting than that nice, high-contrast, line?

 

I'm not software engineer, I'm a hardware guy, but an appreciation of software is really useful.

 

I cant think of a better way for a kid to begin learning structured language than a good Arduino starter kit. 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.









×
×
  • Create New...