Bright 10yr old wants to learn computer programming... Any suggestions?

Discussion in 'NZ Computing' started by Bob, Aug 11, 2004.

  1. Bob

    Bob Guest

    As I said in the Subject, I have a friend with a 10yr old son who is
    interested in learning to program. I thought VB might be a good choice.
    There used to be a Learning Edition available with a book.

    Perhaps there are courses that kids can attend (North Shore, Auckland)?

    Can anyone with kids perhaps give me a bit of guidance.

    Thx
     
    Bob, Aug 11, 2004
    #1
    1. Advertisements

  2. I don't have kids, but have done some tutoring in programming with older
    students (VB and C). My opinion, coming from a computer science
    background, is that it is best to start with a language that teaches the
    basics properly. Understanding how the computer works and represents
    data structures is more important to me than being able to throw a few
    controls on a form and have an application written in 100 lines of code.
    If you want to do that, it is easy to make the change later. I have
    serious doubts about the ability of VB programmers coming out of
    tertiary institutions to make good C programmers.

    Start with a language that forces you to learn how the loops and
    conditions work, and how to get from A to B by following a series of
    small logical steps, rather than one that does everything for you. Not
    necessarily C, but something in between. BASIC (Not Visual Basic) is a
    good starting point in my opinion, you can't do a lot with the language,
    but it hides some of the details from you initially, and supports the
    types of loops available in other languages.

    Once you are comfortable with BASIC, then it is time to move on to
    something like C. C is my favourite language, but certainly not for
    everyone. But I would suggest avoiding VB, Delphi, or anything else that
    gives you a pretty GUI without coding, and encapsulates simple
    functionality in classes.

    The Other Guy
     
    The Other Guy, Aug 11, 2004
    #2
    1. Advertisements

  3. Bob

    Disco Stu Guest

    The Other Guy wrote:

    BASIC (Not Visual Basic) is a
    10 print "Disco Stu rules the world"
    20 goto 10

    run

    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
    Disco Stu rules the world
     
    Disco Stu, Aug 11, 2004
    #3
  4. Bob

    Dogg Guest

    Oh no! He's doomed to a life of living in his parents basement,
    watching Star Trek and existing on Pizza's and McDonalds.
     
    Dogg, Aug 11, 2004
    #4
  5. Bob

    Tim Guest

    Bob,

    In the next 10 years - when the boy finishes a degree and is ready to enter
    the workforce, whatever he learns now will have been superceeded or changed
    to the point of being very different from what is chosen now. The computing
    landscape will be very different to today...

    The skills, confidence, interest, and knowledge gained will be invaluable.
    The first programming language is the most "difficult" to learn - it only
    gets easier after that, so learning any language now is a good investment
    although it would Not be wise to learn a language that is at its peak or on
    its way out as the language specific knowledge would be relegated to history
    too quickly.

    Personally, I would not waiste my time with C. I'll explain why later.

    VB 6 - an excellent langauge (6 is the version number of the compiler /
    IDE). It is very easy to learn and create Windows GUI applications. It has
    its failings in terms of what programmers can do that fall into the Bad
    Habits category, and as "The Other Guy" sort of pointed out, anyone (almost)
    can learn [programming] VB6, but just because they can program in VB6 does
    not make them a good programmer. Once one learns VB6 one needs to then spend
    2-3 years learning technique to become a good programmer. (This is true of
    all languages, but one can know 100% about VB6 language and be a crudy
    programmer). VB6 is an excellent language, but the days of major new
    projects in VB6 starting are numbered due to VB.Net and C#.

    VB.Net enforces better programming technique and is an upcoming language.
    You can download the full repertoire of learning edition .Net development
    products from Microsoft. VB.Net is a substantially different language from
    VB6 and its predecessors. You cannot normally use VB on Linux.

    Delphi - those that use it swear by it. Free learning editions of Delphi are
    often available on computer magazine cover CD's. I'll let someone else point
    out its strengths as I have never really used it. I believe Delphi is
    available on Linux.

    C++ - A substantially powerful language that was architected to overcome the
    many failings of C. C++ is the reason not to learn C. By the time one has
    learnt C++, one has also learnt C++ and will be a better C programmer than a
    person that only learns C - because you learn about the failings of C, what
    C++ does to overcome these failings and so what you can expect. The C++
    compilers also push aside many of the failings that exist in the C
    compilers. At this point although C++ is my favourite language, given the
    choice I would probably err on learning the next language. Most major
    applications, operating systems and server systems are written in C++. It is
    not for the faint hearted or the wishful thinker. In VB6 you can write and
    start learning in minutes, in C++ to really get started takes a few weeks of
    study. (C+ is available on an extremely wide range of computing hardware and
    the smallest of systems - right down to the chips used to control your
    washing machine. Any operating system or hardware that does not support C++
    should not be contemplated). C++ is common on Linux.

    C# (C Sharp). This is the New Microsoft language. It is aimed at first time
    programmers for professional use. It embodies the best points of C++ and VB6
    / VB.Net and overcomes many of the shortfalls of VB6. C# is an enormously
    powerful language suitable for whipping up the smallest / simplest programs
    through to the largest of programs with enterprise level facilities. No
    Linux I am afraid. C# is similar in many ways to C++ - in fact the
    differences are not huge. If one learns C#, then learning C++ is easy (and
    vice versa).

    Jade. Jade is an object oriented database and embodies a programming
    language similar to Delphi. I have included it for the sake of completeness
    as a learning edition is available for free, but there are restrictions on
    the size of database one can create with it (10,000 nodes last time I
    looked). There are also restrictions on the style of application one can
    create with Jade - someone correct me if I am wrong here. Linux? Dunno?

    It is important to learn the fundamentals of programming - some people learn
    these implicitly without any help. So a well run training course would be a
    good investment. It is important to concentrate on a) Programming and b) the
    Language before embarking on c) what you can do with it. With a GUI system
    such as VB6 one can go straight into writing programs that are shockingly
    structured, impossible to maintain and fragile.

    At the end of the day, one needs to ask about the motivation of the 10 year
    old - is it the parent or is it the child? If one learns how to hack out a
    program at 10 years old then this may destroy any ability and motivation to
    properly learn a language in later years. While my nephew achieved this
    without assistance on an Acorn, he maintained a balanced life style and in
    later years has proven to be a brilliant programmer.

    Everything here has been covered from the perspective of Windows
    programming. Comments for Linux are there to show what alternatives /
    portabililty the knowledge has. C++ has the greatest practical portability
    (of knowledge and programming investment).

    My recommendation would be C#, and a good book with training. Don't go to a
    book store and ask, ask the people that really know - those that lurk in the
    microsoft.public.languages.csharp news group would be the best by far to
    ask, and some language specific training would be excellent. If the kid is
    really smart then bung him on a professional 1 week training course that
    concentrates on C# (EG Aldhouse) once he has grasped enough of what is going
    on to be able to push out some simple programs.

    Many (everyone) regards their child as bright. If he is really bright, a
    computer, good book and a learning edition of say C# will be enough for him
    to get started. Its not a competition and a balanced life style is
    important.

    - Tim
     
    Tim, Aug 12, 2004
    #5
  6. Bob

    Daniel Guest

    Two things that really help develop someone's programming ability:
    1. Motivation
    2. Time (lots of it)

    If he enjoys VB, then let him play with VB. Feed his interest by making it fun. If he keeps at
    it, sooner or later he'll learn other languages - because he _wants_ to.

    Make it too hard, and he might turn off.

    Don't worry too much if VB is considered a "toy" language. In fact, I think VBA is a standard
    part of MS applications.


    Cheers.
     
    Daniel, Aug 12, 2004
    #6
  7. Bob

    JedMeister Guest

    Sorry not answering the question, but...

    Reasons not to get into programming (as a career)...

    1. Technologies change can requiring complete retraining and back to
    beginner salaries 1/2 way through your career - this can't happen to an
    accountant.

    2. The 'Geek' perception.

    3. Cash isn't so good as it used to be. Some major work has shifted to the
    3rd world.

    4. Training will often be required at own expense these days. If there is
    demand for certain skills, companies will import skills rather than train
    locals.

    These days, builders seem to make more money.
     
    JedMeister, Aug 12, 2004
    #7
  8. I have to disagree here. Hows does knowing C++ programming make you a
    better C programmer?

    C++ does not actually address the small number of changes I would like
    to see in C, and the limitations are easy to work around.

    Unless you value object oriented code, a coding method I am not at all
    interested in, C++ really offers nothing that C doesn't.
    The limitations in C compilers exist mainly for historical reasons. C++
    does address these, but C retains more strict compiler requirements.
    C++ compilers exist for some embedded systems, but the majority of the
    code is still written in assembly language or C. FreeBSD is written in
    C, not C++... the only C++ files are those in the crypto and contrib
    directories of the main source tree. I expect Linux would be similar.
    C++ has much wider use in applications programming however.

    The Other Guy
     
    The Other Guy, Aug 12, 2004
    #8
  9. whats wrong with being a geek?
     
    Dave - Dave.net.nz, Aug 12, 2004
    #9
  10. Bob

    JedMeister Guest

    True, I remember Revenge of the Nerds. OK point 2 retracted.
     
    JedMeister, Aug 12, 2004
    #10
  11. Bob

    frederick Guest

    There are "free" versions of Delphi available from time to time. There
    are limitations on distributing applications compiled with the free
    version - in particular, for non-commercial use only. "Time limited"
    trial versions might also produce "time limited" executables - not a
    good idea IMO.
    Kylix is the delphi (turbo pascal or C++) compiler for Linux, with a
    near identical IDE to the windows delphi. The theory is that you can
    "simply" port an application between OS. The "simply" part from my
    experience, applies only in some circumstances - if you are doing things
    beyond the "basic" then it may not be simple at all to "port" between OS
    at all.

    The Borland USA site does not seem to have any free Delphi "personal"
    versions for download right now.
    A free "Open" version of Kylix is available for download.
    Kylix (Open) was on PC Authority Jan 2003 cover disk.
    Delphi 7 (personal) was on NZ PC World Dec 2002 / Jan 2003 cover disk.
    A nice email to them might encourage them to check the back room.
    Registration keys for those are available from:
    http://www.borland.com/products/downloads/download_delphi.html#

    There seems to be a good "community" for delphi progammers.
    comp.lang.pascal.delphi.misc and other newsgroups are quite active.
    Plenty of code examples and free visual (and non visual) components are
    available from sites like Torry's delphi pages
    http://swiss.torry.net

    Comments on Delphi vs VB at:
    http://www.delphizine.com/opinion/2000/01/di200001fn_o/di200001fn_o.asp

    I just had a quick glimpse at the above article, which makes some
    comparisons between VB and Delphi. If any VB users want to argue, then
    please leave me out of the argument. I have used both, and I am not
    impartial any more. There is plenty of bandwidth wasted on these
    arguments already.

    The Other Guy's post stresses the desirability of understanding the
    fundamentals of programming before leaping into something that makes
    things too easy. I agree - but I will say that there seem to be a lot
    of applications that may be nicely coded from an "art of computer
    progamming" POV, but either from ignorance of real world user skill
    levels, poor understanding of how users expect objects to behave, or
    just buggered-up thought processes in general - they are horrible
    ungainly unsightly disasters and the source of user frustration. I have
    been evaluating a program that is a technical achievement in some areas.
    But for some crazy reason the programmer decided to reinvent the wheel,
    and create his own file save and file open dialogs - and they seriously
    suck. I do not want to read documentation to find out how to open and
    save a file. I hate applications that stuff up the simple stuff so
    badly - and they seem to be the rule rather than the exception lately.
     
    frederick, Aug 12, 2004
    #11
  12. Bob

    Nik Coughin Guest

    I started programming at about that age, using Qbasic. In terms of
    languages, I've worked with BASIC, Pascal, C, Cobol, C++, VB and Delphi,
    roughly in that order. I now use Delphi pretty much exclusively (aside from
    PHP for web stuff) but of all those languages I think QBasic is the best
    tool for beginners. I can't stand VB, it's an abomination, but VB.net looks
    OK.
     
    Nik Coughin, Aug 12, 2004
    #12
  13. Bob

    Chris Hope Guest

    I started a little younger using the Basic that came with Commodores and
    then progressed to Microsoft's GWBasic and QBasic at about that age. Since
    then I've programmed in Pascal, Delphi, C, Javascript, Perl, VBScript, PHP,
    VB6, VB.NET, C#. I prefer really only developing for the web and then with
    PHP. I haven't really done a lot of Windows stuff and then it was only in
    Delphi (about 7 years ago) and VB6 (last year).

    It's all been pretty much self taught. Initially from opening up the basic
    files and hacking them to cheat in the games and then from copying stuff
    from books. Then moving forward and creating my own games.

    When I decided to get serious about doing computing as a career (previously
    had done an arts degree and Auckland uni), I did a programming course at
    AIT/AUT about 7 or 8 years ago which is when I did my first formal
    training, but that was only about the fundamentals of structure
    programming, where we used QBasic as a learning tool.

    I thought the course was pretty good and it taught me excellent fundamental
    skills (I had for example been using sub routines in QBasic before this but
    didn't fully understand how functions worked and how they could return
    values). The rest of the languages (with the exception of a C course I also
    did at AIT) I learned from text books and trial and error.

    Anyway, been waffling on a bit... once you understand the fundamentals of
    structured programming (and then object oriented programming) and
    understand how one language works really well, it's easy to learn other
    languages and gets easier the more you know. There's only so many ways to
    loop, apply conditions and call functions so it ends up becoming more of
    understanding what functions and objects the language has built in support
    for.

    I agree with one of the other posters that it's almost better to start with
    something like QBasic where you have to write all the stuff and understand
    it before progressing onto VB or Delphi where it writes a lot of code for
    you. Although the other side of the coin is that you can then read the code
    it creates to understand what's being done and extend and enhance.
     
    Chris Hope, Aug 12, 2004
    #13
  14. Bob

    Nik Coughin Guest

    Oh yeah, I forgot VBScript and Javascript, have done a lot of that. Also
    VBA, and "WordBasic" which is what Word had before VBA. Have actually used
    a ton of different scripting languages come to think of it. Some *ix shell
    scripting too. I also prefer web development! PHP is a great language.
    Have also been getting into writing strict HTML with CSS for presentation...
    CSS is very powerful once you get the hang of it.
    That's exactly the path I followed, minus the books. I knew a few other
    people who programmed in BASIC, so I learned from them instead.
    I also did programming at AUT, but probably more like six years ago. Hated
    it and left after six months (straight out of school, which I left early,
    and with a pretty immature mindset at that time). Ended up finishing the
    diploma at Spherion instead.
    Yeah, most languages are fundamentally the same. The only exception I've
    found was when I had to learn COBOL. Yuck, COBOL.
     
    Nik Coughin, Aug 12, 2004
    #14
  15. But there are free versions of Turbo Pascal. Pascal is very suitable for
    teaching programming, as it was originally designed for this purpose.

    Strange as it may sound to you, CLI compilers are still used to teach
    programming these days. A gui isn't needed when it writes half the code
    for you automatically.

    --
    "Marriage is a lifelong covenant commitment between
    a man and a woman.

    This foundation provides the best possible
    environment to raise our children."

    See http://www.maxim.org.nz/civilunions.html
     
    Patrick Dunford, Aug 12, 2004
    #15
  16. Bob

    Brett Guest

    I would say Flash MX, it's got action script, does lots of flashy gfx and
    sound things very easy. There are lots of tutorials and it's modern.

    Brett
     
    Brett, Aug 12, 2004
    #16
  17. Bob

    David Preece Guest

    Logo. Taught me just fine.

    http://www.softronix.com/logo.html

    Dave
     
    David Preece, Aug 12, 2004
    #17
  18. Bob

    David Preece Guest

    I've recently got into RealBasic - http://www.realbasic.com/

    Sure it's basic, but it's OO and comes with *the* *best* IDE ever. The
    pro version can cross compile (and cross debug) onto Windows, Linux
    (GTK), Mac classic and OSX.

    Not free, not especially cheap, but bloody good. Lots of "community" too.
    I've used it for a few projects before. It is great. RealBasic is a lot
    like an easier Delphi.
    It's called Kylix when it's on Linux.
    Most applications, yes. But almost all OS's are written in C, actually.
    No it is not.

    At this point in the game there's really no point in learning C++. It
    only truly excels in a few narrow niches.
    Debatable, there is the Mono project
    http://www.mono-project.com/about/index.html
    Not *that* many ways. C# is in many ways identical to Java would be a
    bit more like it.
    Ummm, yes they are. I'm not getting involved in this one.
    Ummm, no. If one learns C# then learning C++ is going to be damn near
    impossible. If one learns C++ then learning C# is going to be easy. A
    bit weird, perhaps, but easy.

    Look, I hate Microsoft too, but from the two choices a beginner would be
    much better off learning C#.
    Yes. Especially since there is a very real danger that none of the above
    will be in use any more when said tyke hits the workforce.
    I disagree. If one learns to hack out a program at 10 then it becomes
    clear nice and early that this can be fun. I sure as shit wouldn't try
    to force C++ down a 10 year old.
    Logo. Or RealBasic. But for a 10 year old, Logo.

    Cheers,
    Dave
     
    David Preece, Aug 12, 2004
    #18
  19. Bob

    David Preece Guest

    Oh yeah? I'm listening.
    Bollocks. It's not like there's a loud bang and all computers start
    working totally differently. No, the latest shiny thing is a slowly
    moving target pushed by trends and marketing budgets. People get paid
    *very* well for chasing the latest shiny thing backed with a few years
    of more of the same.
    New legislation? Happens all the time.
    Increasingly a perception rather than a reality. Partially at least because:
    Yup. This has had some very positive side effects in terms of keeping
    the cowboys out.

    You!! Wanna be on $150k+? Go be a property developer.

    The "top" developers are still *very* well paid for what they do. Which
    is fundamentally chanting out the currently fashionable corporate mantra
    in a lot of ways.
    Some major work is shifting here.
    Nah, someone with a few years Java can bullshit themselves into a C#
    role with their eyes shut. Get enough in your head to pass the interview
    and gain experience at the company's expense.

    Not my company, mind.
    Yes. Yes they do. Nothing wrong with that.

    Dave
     
    David Preece, Aug 12, 2004
    #19
  20. Bob

    mankind Guest

    Much as I hate to say so, consider this...
    in such environments as Excel and Access, Visual Basic, or at least a
    basic understanding of it's implementation is invaluable. It is use for scripting
    and functions within these apps is the key to their versatility.
    For this alone it is worth taking the time to get familiar with it.
    KT
     
    mankind, Aug 12, 2004
    #20
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.