back to article Gates, Zuckerberg to deliver free coding lesson

Code.org, the organisation that believes “every student in every school should have the opportunity to learn computer programming” has signed up Microsoft Bill Gates and Facebook supremo Mark Zuckerberg to teach programming. The pair will each participate in an “Hour of Code”, 60-minute programming tutorials that are one one …

COMMENTS

This topic is closed for new posts.
  1. jake Silver badge

    One hopes ...

    ... it'll be a Lisp/Scheme-based language (preferably Smalltalk), instead of BASIC. But I wouldn't hold my breath ... I would bet a wooden nickle that 90+% of all that's wrong with TehIntraWebTubes can be placed on kids being inflicted with BASIC as their "first programming language".

    1. IAmTheMillipede

      Re: One hopes ...

      BASIC interpreters, unlike Clippy, are something Gates did personally write for several microcomputers.

      1. jake Silver badge
        Pint

        @ IAmTheMillipede (was: Re: One hopes ...)

        Was there a point to that reply? If so, I honestly don't see it.

        During the meanwhile, relax & have a homebrew :-)

        1. Metrognome

          Re: @ Jake

          While you can engage in pedantry and endlessly argue about the minutiae the fact of the matter is that coding (yes, even for basic) can teach valuable lessons about problem solving, logic, architecture and mapping.

          Languages are just tools. The skills of programmers though are in good efficient problem mapping and solving.

          Master that and you have all your life ahead to refine your output further.

          So even basic is better than nothing. The shallower the learning curve the better for getting people hooked on coding and *problem solving*!

          1. jake Silver badge

            @ Metrognome (was: Re: @ Jake)

            My point, Metrognome, is that there are much better solutions for first programming languages than BASIC.

            1. Anonymous Coward
              Anonymous Coward

              Re: @ Metrognome (was: @ Jake)

              Yes and no. It is the API that is important, with a good BASIC you could draw and make sounds. Other languages may be better but too many of them require a lot of work to do anything interesting.

              1. jake Silver badge

                #AC06:41 (was: Re: @ Metrognome (was: @ Jake))

                OH KNOWS!

                You have to actually LEARN SOMETHING to do anything useful? How awful!!!!!!one!!eleven!! Pobrecito, I am sad for you.

            2. rcorrect

              Re: @ Metrognome (was: @ Jake)

              My point, Metrognome, is that there are much better solutions for first programming languages than BASIC.

              Not sure that I agree. I started with HyperCard then was given a copy of FutureBASIC. In 1995, at the age of 16, I had no internet or someone to ask for assistance, just a bunch of examples, a handbook and reference manual. Even so I managed to release my first game a year later. No, I don't think C or Java would have been good. It was difficult enough figuring out what arrays were. So down the road I learned c and don't see how BASIC origins tainted me. Sure I had to figure out malloc and pointers but learning new things is what programming is about.

            3. This post has been deleted by its author

      2. Chemist

        Re: One hopes ...

        "BASIC interpreters, unlike Clippy, are something Gates did personally write....."

        First one I built - 6502 with MS BASIC - 8KB ROM, 4KB RAM- you've guessed already, massive bug in the interpreter - garbage collection screwed.

    2. Eponymous Cowherd

      Re: One hopes ...

      Even BASIC would be an improvement over the language most kids learn in UK schools' "ICT" lessons, i.e. none at all.

      The problem with "TehIntraWebTubes" isn't down to any particular language, you can write robust and well structured code in any almost any language, but in the instruction, or rather lack of it, that the programmers receive in software engineering principles.

      The weapon of choice of these wannabe web coders is usually PHP, not BASIC. Nothing particularly awful about the language itself, however.

      1. jake Silver badge

        Re: One hopes ...

        The problem, Eponymous Cowherd, is that teaching kids BASIC as a first language teaches habits that are really, really hard to break later down the road. Trust me. I've seen it. For decades.

        1. Anonymous Coward
          Anonymous Coward

          Re: One hopes ...

          Yeah, when I'm writing Java code I still start with 10 PRINT "HELLO".

        2. Eponymous Cowherd

          Re: One hopes ...

          No, Jake.

          While BASIC certainly permits bad habits, and in its earlier incarnations could be said to facilitate them, modern BASICs like VB.Net, are really rather good and certainly no worse than any other mainstream language.

          It is the teaching that is important. You could even argue that a language that permits bad habits is a better teaching language as it allows poor and good styles to be compared.

          Another issue is that most students will be learning to program for employment purposes. There is little point teaching Lisp if they are going to be spending most of their time coding Java (etc)

    3. WhoaWhoa

      Re: One hopes ...

      '... it'll be a Lisp/Scheme-based language (preferably Smalltalk), instead of BASIC. But I wouldn't hold my breath ... I would bet a wooden nickle that 90+% of all that's wrong with TehIntraWebTubes can be placed on kids being inflicted with BASIC as their "first programming language".'

      And some of the other 10% inflicted by people who think that object-oriented Smalltalk is, in any way, a Lisp / Scheme based functional programming language?

      Or have I misunderstood your intent?

      1. jake Silver badge

        @WhoaWhoa (was: Re: One hopes ...)

        Smalltalk was/is heavily influenced by Lisp. Intent understood?

        1. WhoaWhoa

          Re: @WhoaWhoa (was: One hopes ...)

          "Smalltalk was/is heavily influenced by Lisp."

          Really?

          How?

          Intent understood and now quite sure you're not on top of the two types of language.

          (I'd previously thought you might have omitted an "or, alternatively" before your parenthesised "preferably Smalltalk").

          1. jake Silver badge

            Re: @WhoaWhoa (was: One hopes ...)

            "Really?

            How?"

            Serious questions? I can only assume that further conversation is pointless.

          2. Tim Parker

            @jake Re: @WhoaWhoa (was: One hopes ...)

            > [WhoaWhoa]

            >> [jake]

            >> "Smalltalk was/is heavily influenced by Lisp."

            > Really?

            > How?

            > Intent understood and now quite sure you're not on top of the two types of language.

            > (I'd previously thought you might have omitted an "or, alternatively" before your parenthesised "preferably Smalltalk").

            I have to agree with WhoaWhoa - aside from one instance of co-incidental sequence syntax, the only influence of Lisp on Smalltalk i'm aware of is that of code as data. Certainly syntax-wise they are almost completely unrelated - which I feel is to Smalltalks credit, as Lisp is an abomination of a language to use for general algorithmic computation (in my opinion, obviously) and even closer to being a 'write-only' language than un-commented code from Perl mongers who should know better [0].

            The thought of trying to get kids to use Lisp as an introduction to coding, I find utterly terrifying.

            [0] Nothing against Perl per se - I used to use it a fair bit, it's very powerful and comes with huge library support - it's just that i've seen more than enough code from some 'experts', who were apparently more keen on (ab)using every last nuance of it's syntax than writing readable and maintainable code.

            1. Michael H.F. Wilkinson Silver badge
              Joke

              Re: @jake @WhoaWhoa (was: One hopes ...)

              Old git 1: What's all this talk about newfangled ideas such as programming languages?

              Old git 2: When I was a lad, all we had was assembly

              Old git 1: Luxury! All we had was machine code, and we loved it!

              Old git 3: Machine code! We would have loved to have access to machine code! We had to wire up our computer correctly to get anything done!

      2. WhoaWhoa

        Re: One hopes ...

        P.S.

        "I would bet a wooden nickle"

        You probably meant that you /wouldn't/ bet a wooden nickel, otherwise you'd be saying that you don't place much value on the opinion you expressed.

        (cf. "I give a damn" when the intent is "I don't give a damn").

        Gotta get to grips with using negations correctly if you want to advise people about programming...

        1. jake Silver badge

          @WhoaWhoa (was: Re: One hopes ...)

          Nonsense, WhoaWhoa.

          A wooden nickle is valueless ... and I'm not prone to wager.

          It's a null/null argument, and part of the vernacular 'round these here parts..

    4. Dan 55 Silver badge
      Facepalm

      Re: One hopes ...

      Because all Basics are terrible including e.g. BBC Basic, JavaScript and PHP are the most popular variants of Basic used on TehIntraWebTubes, and the most important thing about programming is the language itself instead of the principles expressed using the language.

      1. Dan 55 Silver badge

        Re: One hopes ...

        Seems like I should have put the Joke Alert icon...

    5. Tom 7

      Re: One hopes ...

      Smalltalk - that's the one they use to make bit rockets explode just after takeoff?

      1. David Dawson

        Re: One hopes ...

        I'm currently helping to teach the new Computer Science GCSE that is replacing the ICT qualifications.

        I'm also a programmer with 10 years exp in a variety of languages running a UK wide software consultancy doing work in big and small companies on system structure and design </appeal_to_authority>

        The course is good, very good in fact. There are a couple of rough edges (notably the software life cycle bit), but overall its excellent. The kids are engaged and excited about making the computer do things they didn't know were even an option for them.

        This is a tremendous success story for UK and everyone who pushed for it over the years, including the government, deserves a big pat on the back.

        We have adopted python 3, as thats what the other schools in the area are using and resources are available for. The kids are amused by me teaching myself python in front of them, and they learn it all the better.

        It will have replaced ICT at the GCSE level totally within another year, and across the region within another couple, as far as I can see, and is being pushed further down in the curriculum.

        Just a few years from now, every child coming through school will have been exposed to programming and have seen and used imperative languages, mobile apps, declarative (HTML essentially) and made web pages from the bottom up.

        This year 10 GCSE group is learning python and making simple programmes already, and they will each have made a game, with graphics and sound, by the end of the academic year, and understand how and why it works.

        Now, you may say, there is a shortage of teachers, however there is not. There is a shortage of skills, certainly, and a big push is in progress to give the needed skills to teachers and provide them with help. Guess why I'm there? I provide the technical assistance until the teacher is confident enough to do things alone.

        So, you cynics, get off your arses, stop complaining about ICT, and go and change things. The possibilities are there now --> See http://www.computingatschool.org.uk/

        Run by Simon Peyton Jones aka, Mr Haskell (a very very clever chap, and all round nice guy).

        Schools need programmers to go and help. (Reg staff, fancy promoting this more?)

    6. This post has been deleted by its author

  2. jake Silver badge

    Oh, how cute.

    My boo-birds are out in force this evening :-)

    1. Anonymous Coward
      Anonymous Coward

      Re: Oh, how cute.

      Yes, jakey boy.

      That would be because you are being an unmitigated arse (again).

      1. JDX Gold badge

        Re: Oh, how cute.

        If you spout ill-informed and badly argued rubbish, what do you expect?

  3. Sealand
    Boffin

    They should focus on two things ...

    1) Understanding the hardware

    2) Usability

    1) Knowing what it means to execute code on hardware will make you a better coder. I'm not saying you should write machine code, but in the math world, dividing by zero yields infinity, which is a perfectly acceptable result. When you're programming, dividing by zero yields a crash. Or an exception. If you don't know what's going on in the hardware, you probably don't even know what an exception is.

    2) In even the best of all programming languages, you can make something that completely fails to do the job intended, and even in the crappiest programming language, you can make something that gets the job done. Usability is hard work, and it has nothing to do with programming or the langauge used.

    1. Raumkraut
      Headmaster

      Re: They should focus on two things ...

      "in the math world, dividing by zero yields infinity, which is a perfectly acceptable result. When you're programming, dividing by zero yields a crash. Or an exception. If you don't know what's going on in the hardware, you probably don't even know what an exception is."

      $ node

      > 1 / 0

      Infinity

      > "blah" / 0

      NaN

      > ^D

      With modern programming languages, especially interpreted ones, for 99% of programming tasks the hardware is irrelevant - you program to the virtual machine, not the electronic one.

      That's not to say that knowing how the hardware works and performs is never helpful, but the number of real-world projects where that need even be a consideration is comparatively minute.

      1. annodomini2
        FAIL

        Re: They should focus on two things ...

        @Raumkraut, how many devices do you have in your home with a microchip, more than you're prepared to admit.

        99% of these have no operating system and bare metal is the only way to go.

        Where does all this code come from I wonder?

        Just because you personally are not exposed to Embedded, doesn't justify rarity,

    2. Roland6 Silver badge

      Re: They should focus on two things ...

      1) The real focus is to understand what it is the overall program is trying to achieve and what part the particular element currently being worked on plays in that whole.

      2) Programming languages are called 'languages' for a reason, it takes effort and time to become fluent in them. However, many poor writers have had successful books.

      3) Whilst an appreciation of the hardware is useful, it is not a necessary precursor to writing quality programs.

    3. stratofish

      Re: They should focus on two things ...

      "When you're programming, dividing by zero yields a crash. Or an exception. If you don't know what's going on in the hardware, you probably don't even know what an exception is."

      An exception is a high level construct not hardware. Divide by zero still yields an interrupt 0 on x86 architectures, even 64-bit ones, nothing more. The language runtime may catch it and generate an exception, or the software itself may hook into it to handle it directly if it has permission. If neither do, the OS watchdog timers will probably flag it as crashed eventually and terminate the process, hopefully telling you at the same time.

  4. Anonymous Coward
    Anonymous Coward

    Scratch

    It's great for teaching kids the basics of programming before they go on to a proper programming language.

  5. Arisia

    Blockly

    Crazy idea I know but I went to the web site and looked.

    The demo tutorial is a maze navigator using Blockly which seems to be web based scratch.

    http://blockly-demo.appspot.com/static/apps/index.html

    For teaching basic logic this is ideal.

    1. Gordon Pryra

      Re: Blockly

      When I were a kid we had actual robot turtles attached to our Acorns

      And it were up hill both ways to Watford Electronics to get our ribbon cables

      1. Anonymous Coward
        Anonymous Coward

        Re: Blockly

        Watford!

        Luxury. In my day I had to send smoke signals to Maplin and weave ribbon cables out of me Dad's Arran sweater.

  6. RyokuMas
    Stop

    As long as it's not javascript...

    1. Tom 7

      Re As long as it's not javascript..

      A bad workman always blames his tools.

  7. Anonymous Coward
    Anonymous Coward

    mmm...

    Wouldn't it be better to be taught by people who at least regard security to have some importance?

  8. Wolfclaw

    No Way Billy Boy

    Just don't let Billy do the maths with Excel !

    1. Tom 7

      Re: No Way Billy Boy

      Make him show us how to do that on RT!

  9. Faye B

    This brings it all back

    - "Old git 1: Luxury! All we had was machine code, and we loved it!

    Old git 3: Machine code! We would have loved to have access to machine code! We had to wire up our computer correctly to get anything done!"

    Ah yes this crusty old dame remembers having to enter program code using hardware switches on the control panel of the mainframe and having to use hollerith machines to punch cards with instructions and data. It was such a relief when we could just sit at a terminal and enter assembly language, then run the program and see the results on the screen (in ascii of course). So having had to learn the hard way I see no point in making life hard again by picking some obscure language with some arcane syntax just to avoid BASIC. Especially as BASIC was originally designed to teach programming (Beginner's All-Purpose Symbolic Instruction Code) and if it allows poor style and encourages bad habits, it should surely fall to the INSTRUCTOR to point out these problems and rectify them.

    There could be an arguement for using a more natural language based programming language, like Python, but half of the programming paradigm is understanding how syntax is used to convey program structure, such as looping, decision blocks, function extents etc. Learning Python in school would not prepare you for the nightmare that is c programming or worse still Lisp (And don't get me started on Prolog).

    Let's stick with Basic and make sure it gets taught well, with proper regard to good program structure, clearly named variables and functions, good style and a good grounding in logic. Learning programming in schools should be the foundation of a skill and knowledge, not a short cut to the final product. Of the many thousands of kids learning programming in schools only a small percentage grow up to be software engineers or developers and no one would expect that a child leaving school is going to be a fully fledged programmer any more than they expect a kid to leave and become an airline pilot over night.

  10. Benjol

    Bill Gates read TAOCP.

    Let he who is without sin cast the first stone.

    1. Anonymous Coward
      Anonymous Coward

      Bill Gates read TAOCP.

      Yup, but he didn't understand it.

  11. c:\boot.ini

    I do not think those two have any credentials when it comes to programming - seriously ... Mark may have some business strategy knowledge worth a penny, Gates ? I seriously do not know what value he could add ... but then again, who am I ...

    Get Steve Wozniak, Richard Stallman, or Linux Torvalds in if you want good programmers ...

    1. Anonymous Coward
      Anonymous Coward

      My thoughts as well. Zuck's a fscking PHP programmer and I doubt Gates has programmed in over thirty years (legend has it that "his" code came out of a dumpster at the back of a competitor's building).

  12. Mystic Megabyte
    Windows

    Borland's Turbo Basic

    I actually got paid to write some programs* using that. It compiled to .exe and ran perfectly on old MSDOS boxes.

    *A SunSystems accounting database editing tool was one, it's probably still being used somewhere.

  13. Robert E A Harvey

    Be fair

    Clippy was the one Microsoft product I've never seen crash.

    1. MrRtd

      Re: Be fair

      Ha. Now that I think of it, I don't remember it ever crashing either. But then maybe Clippy was actually the underlying cause of all sorts of other crashes. Guess we'll never know, and MS will never tell us.

This topic is closed for new posts.

Other stories you might like