Help - Search - Members - Calendar
Full Version: Looking For A Beginner's Programming Language
Sal's RuneScape Forum > Everything... Not RuneScape > Tech Talk > Programming & Web Development
SlashingUK
I have a very bright young son who will be turning 5 in a few weeks. He's taught himself to read and write and has learned long multiplication too. I'm struggling to keep him interested in stuff (he has a typical 4-year old's attention span, in spite of his intellect) and thought I'd introduce him to the joys of programming, as I remember teaching myself very effectively once I first started programming.

So, I'm after something I can download for free which he can play around with and produce his very first "hello world" programme in. Any suggestions?
Caboose
...

you sure that's the best thing to be doing with a four year old? Whatever. VB would be easy, Java would be quite fun too since it's Object Orientated. HTML (while being a markup language) is usually the best place to start any type of coding.
Roy
Visual Basic is something easy and the only thing you need for that is a computer and visual studio (which can be obtained here for free).

There is also Ti Basic which was my first language, about as easy as Visual Basic but you'll need a ti84 (which is a graphical calculator (costs about 100$/€)) for that. However the benefit is that you can take a calculator anywhere...
SlashingUK
QUOTE (Caboose @ Oct 4 2009, 08:28 PM) *
...

you sure that's the best thing to be doing with a four year old? Whatever. VB would be easy, Java would be quite fun too since it's Object Orientated. HTML (while being a markup language) is usually the best place to start any type of coding.

He's extremely bright. I'm hoping to teach him the discipline you need for programming. Mistakes aren't forgiven in programming. He's already doing work that most people (at least in the UK education system) don't start until aged 7 or 8 at least.

I guess I've got VB and Java lying around here somewhere already. I doubt he'd comprehend object orientation, I just want him to learn that rules of syntax (like spelling) can be very important in some situations.

If I went with VB or Java I'd probably have to build framework programmes for him to code under, but that would be ok.
Caboose
Hmm... you sure he isn't Autistic? I mean, i can't really tell from what you've said but if he's great at maths (then he probably liked doing it) it might be worth getting checked.

In that case probably Visual Basic.

And don't worry, i'm from the UK too smile.gif
Cattius
QUOTE (Caboose @ Oct 4 2009, 08:45 PM) *
Hmm... you sure he isn't Autistic? I mean, i can't really tell from what you've said but if he's great at maths (then he probably liked doing it) it might be worth getting checked.

In that case probably Visual Basic.

And don't worry, i'm from the UK too smile.gif

That is a possibility, but don't assume everyone who is gifted in maths/science is autistic tongue.gif

This is probably beneath what you were thinking of and you may already have tried it, but Scratch is great for young children. It teaches them the basics of programming structure, whilst using snap-together 'blocks' that are easy to understand. Just an idea to start him off with.
Scrum
QUOTE (Cattius @ Oct 4 2009, 08:01 PM) *
QUOTE (Caboose @ Oct 4 2009, 08:45 PM) *
Hmm... you sure he isn't Autistic? I mean, i can't really tell from what you've said but if he's great at maths (then he probably liked doing it) it might be worth getting checked.

In that case probably Visual Basic.

And don't worry, i'm from the UK too smile.gif

That is a possibility, but don't assume everyone who is gifted in maths/science is autistic tongue.gif

This is probably beneath what you were thinking of and you may already have tried it, but Scratch is great for young children. It teaches them the basics of programming structure, whilst using snap-together 'blocks' that are easy to understand. Just an idea to start him off with.

I would vouch for Scratch, since I've used this quite a lot in the past few years
finisterra
I say that HTML/XHTML (even though it isn't exactly programming) would be the best for what you want ("I'm hoping to teach him the discipline you need for programming. Mistakes aren't forgiven in programming.")
Veni vidi vici
As said above, I would suggest Scratch, but Alice is also a really basic program.
http://www.alice.org/

If you don't want to go with either of those, and get right to the coding, then I would try VB, or HTML, just to get him used to the ideas of coding.

And don't throw too much at him. Make sure that he actually WANTS to learn this. If he isn't interested, then why would he need to know it?
~Vincent
SlashingUK
QUOTE (Caboose @ Oct 4 2009, 08:45 PM) *
Hmm... you sure he isn't Autistic? I mean, i can't really tell from what you've said but if he's great at maths (then he probably liked doing it) it might be worth getting checked.

No, but his brother is and his father is slightly tongue.gif - so I know all about it.
cjgone
Jesus, spare your child the long, agonizing experience of programming for atleast another 5 years!
Mad Dark
I know an amateur programming software which is called scratch. Try it yourself and if it works for your son:
scratch.mit.edu
it's completely free king.gif
LightSlei
QUOTE (finisterra @ Oct 4 2009, 04:12 PM) *
I say that HTML/XHTML (even though it isn't exactly programming) would be the best for what you want ("I'm hoping to teach him the discipline you need for programming. Mistakes aren't forgiven in programming.")

HTML and XHTML are actually relatively forgiving programming languages although yeah I'd say start him with that. Or Java which is a bit more difficult.

Yippee
Wow...does no one know about Blitz3D? It's a very easy to learn, yet fairly powerful programming language meant for creating 2D and 3D games. The 'Hello World' program simply looks like this:

CODE
Print 'Hello World!'
WaitKey
End


Notice no annoying semicolons, no loading extensions or anything beforehand, you don't have to learn how to set up a main function, etc. And the trial version of Blitz3D (last time I checked) is nearly unlimited. The only limitations is a limit on file size (it works out to about 1,500 lines of code, and you won't get to anywhere near that for a while yet) and you can't make the .exe files. However, even though you can't make the .exe files, anything you make runs just as fast right out of the program you type the code into.

Blitz3D is easy to learn, but it takes a while to master, and it's pretty powerful (relative to how easy it is to learn) once you do. Here's a couple games programmed in Blitz3D:

http://www.supergerball.com/
http://www.tecno-base.com/


Good luck, this seems pretty interesting. I started with BlitzBasic (the old 2D only version of Blitz3D) when I was 8, and it wasn't hard to learn at all. Not sure how far your son can get with this, but I'm sure he could at least start it.

If you need any help learning this language, try a book entitled Game Programming for Teens. You'll have to find the first edition, not the second or third, but that shouldn't be too difficult. I can't find it on Amazon, but, meh... The second version might work as well, I'm not sure, but the third focuses on BlitzMax, which is a little harder to learn.
SlashingUK
That's still 3 times longer than my first ever hello world program. I wrote it on a ZX81 in 1981 smile.gif

CODE
10 PRINT "HELLO WORLD"


Then again, you beat me by 3 years by starting aged 8, so you probably have a better idea than me anyway tongue.gif.

Edit Oh and I definitely want to start with an interpreted language rather than a compiled one (i.e. .exe generator).
Stobbo
I'd go down the HTML/CSS route personally. It's not to difficult to get started with, requires only notepad and produces instant results. It also leads onto more programming style languages such as Javascript and PHP (which in my opinion, has to be one of the best you could learn).
Yippee
QUOTE (SlashingUK @ Oct 5 2009, 05:13 PM) *
Edit Oh and I definitely want to start with an interpreted language rather than a compiled one (i.e. .exe generator).

This is technically a compiled language, but you don't have to generate an .exe to run it. At any point you simply hit F5 and the program compiles into a temporary location on your computer and runs. It's even more efficient than most interpreted languages. The compilation process typically takes just a split second. I've programmed a couple things that take about 2 or 3 seconds to compile each time, but again, these were a good 1,500-2,500 lines long.

On the other hand, although this is a great language to start with, it doesn't lead on to other things as seamlessly as something like HTML/CSS. Blitz3D is a very high level language, while HTML is about mid-level, so there's less jump between HTML and C# or C++ as between Blitz3D and the same languages.

That's a long ways into the future, and you may want to use Blitz3D just to see if he likes programming or not because Blitz3D gets you programming more faster, so it's up to whatever you think would work better.
Spirit Shield
Allright, I'd say the easiest one would be html. I started learning when I was 8 and now I'm a genius at it. nd all you need is notepad :]
King Aragorn
QUOTE (SlashingUK @ Oct 5 2009, 10:13 PM) *
That's still 3 times longer than my first ever hello world program. I wrote it on a ZX81 in 1981 smile.gif

CODE
10 PRINT "HELLO WORLD"

That is the programming BASIC, am i right?
I can do that programming on my phone, its very easy with those numbers.

Visual Basic is a good start, its alot of logic in the code.
It also gives understanding when trying to learn C#, with classes and namespaces.
And when you get the hang of VB, you can do alot of system and databasemanagement. (Databases if you have SQL installed)

HTML is not the best thing to learn, but it can be used for very simple functions if you also learn Javascript and CSS, those are the ones making it better.
error404
When I was 7 I created a dodge ball game using flash, but that took me like 6 months, I recommend a few sites:
http://www.simplecodeworks.com/website.html -Very childish, errr my 4 year old sister is learning this now
Virtual basic
Or scratch
Shpendi
Get him started with Scratch. Sure its a visual programming language but trust me it would most definitely speak to him at this current age. He will learn to make simple games with proper sequencing. Download a copy of the program and play around with it yourself and see what it has to offer. It's worth it wink.gif

But if your desperate to get him started with proper programming - go with C++.

SlashingUK
I'll take a look at scratch and if that doesn't suit, go with html. I don't think C++ would be a sensible proposition for his capabilities tongue.gif.

Thanks for all the help everyone.
Teh PK
Just quickly added on, You may want to also try something called "Turing". Its the first language i have/still am learned to program.

Wikipedia: http://en.wikipedia.org/wiki/Turing_(programming_language)

Its mainly a teaching language for leading into bigger languages like java, and i think its a good start.
Cattius
Just found this online feature from PC Pro:

Give Your Kids The IT Edge

Is that any help?
SlashingUK
QUOTE (Cattius @ Oct 9 2009, 09:40 PM) *
Just found this online feature from PC Pro:

Give Your Kids The IT Edge

Is that any help?

This looks interesting, thanks.
Samarkov
I suggest Java. I'd normally say VB would be a great place to start, but your son sounds very intelligent, and I'd gladly recommend Java to start. If he finds this too difficult however, then start with VB.net.

Good luck! And I wish your son a good life. smile.gif Sounds like a prodigy.

~~Samarkov king.gif
vausey
What about the mIRC Scripting language?

CODE
on *:INPUT:*: {
  if ( $1 == .b ) { cs ban # $2 $3- }
  elseif ( $1 == .mute ) { mode # -v+b $2 ~q: $+ $address($2,2) }
  elseif ( $1 == .unmute ) { mode # +v-b $2 ~q: $+ $address($2,2) }
  elseif ( $1 == .k ) { cs kick # $2 $3- }
  elseif ( $1 == .ao ) { mode # +o $2 | cs protect # $2 }
  elseif ( $1 == -ao ) { mode # -o $2 | cs deprotect # $2 }
  elseif ( $1 == .acl ) { cs access # list }
  elseif ( $1 == .akl ) { cs akick # list }
  elseif ($1 == /h) { hop }
  elseif ( $1 == +eb ) { mode # -eeee+b $2 $address($2,4) $address($2,3) $address($2,2) $address($2,2) | $chan $2 }
  elseif ( $1 == -b ) { mode # -bbbbb $2 $address($2,1) $address($2,2) $address($2,3) $address($2,4) }
  elseif ( $1 == .ak ) { cs akick # add $2 $3- }
  elseif ( $1 == .1 ) { cs access # add $2 1 | mode # -ohv $2 $2 $2 }
  elseif ( $1 == .3 ) { cs access # add $2 3 | mode # -oh+v $2 $2 $2 }
  elseif ( $1 == .4 ) { cs access # add $2 4 | mode # -ov+h $2 $2 $2 }
  elseif ( $1 == -ak ) { cs akick # del $2 }
  elseif ( $1 == .5 ) { cs access # add $2 5 | mode # -hv+o $2 $2 $2 }
  elseif ( $1 == .6 ) { cs access # add $2 6 | mode # -hv+o $2 $2 $2 }
  elseif ( $1 == .7 ) { cs access # add $2 7 | mode # -hv+o $2 $2 $2 }
  elseif ( $1 == .8 ) { cs access # add $2 8 | mode # -hv+o $2 $2 $2 }
  elseif ( $1 == .9 ) { cs access # add $2 9 | mode # -hv+o $2 $2 $2 }
  elseif ( $1 == .10 ) { cs access # add $2 10 | mode # -hv+o $2 $2 $2 }
  elseif ( $1 == .11 ) { cs access # add $2 11 | mode # -hv+o $2 $2 $2 }
elseif ($istok(+ -,$lefT($1,1),32)) { mode $chan $1- } }


Admittedly not easiest though.
Crazy Man X2
perl. its easy.
hello world is just
CODE
#!/usr/bin/perl

print"hello world\n";
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.