On Saturday, October 1, 2011 5:07:13 PM UTC-4, Ricky Clarkson wrote:
>
> I'm not a parent either, but I suspect that four might be a bit early for 
>> sticking the kid into a machine
>
>
> I started programming at age 5 on a Spectrum 48K and no harm came of it 
> besides the usual BASIC braindamage (no multiline functions on a 48K, only 
> goto, gosub and return - if I'm wrong someone please pop back to '86 and 
> tell me).  Though those who know me best might disagree.
>

Well I disagree a bit on the "brain damage" part :) those old BASICs, with 
nonexistent structural features, were actually very close to the machine's 
computation model. GOTO and GOSUB are similar to Assembly language's jumps 
and calls; even FOR was close to machine code looping with instructions like 
DJNZ (decrement-and-jump-if-zero). The limited set of data types were a thin 
layer over machine types - no fancy structs, enums, classes or lists; only 
arrays and strings, both of these just sugar over dense memory blocks and 
indexed access, again the single "structured type" directly supported by the 
hardware with complex addressing instructions or index registers. Most 
so-called higher-level BASIC commands, e.g. for graphics, should actually be 
considered built-in libraries and not part of the language. The core 
language itself was just simple branching, variables with simple types and 
destructive assignment (no functional bullshit :), basic arithmetic, and 
"native interface" (calls to Assembly code; PEEK/POKE to memory).

When I moved to Z80, I was already comfortable with most important things: 
subroutines using call/return and an invocation stack; "wild branching" 
(streams of code with multiple entry points, multiple returns, spaghetti 
branching inside and across algorihms); indexing, data blocks; disciplines 
like arithmetic optimization (x+x instead of x*2 etc.), boolean logic. Then, 
like many other self-taught programmers of the time, I learned or 
independently "invented" techniques like self-modifying code and stack 
patching; spent 80% of my time manually doing low-level optimizations such 
as optimal register allocation, instruction selection, propagation, 
unrolling etc., before I had the faintest education on language theory or 
compilers or anything... the good thing is that after this start, every 
language you learn is just syntax sugar ;-) yeah, sometimes the sugar 
enabled radically new paradigms that your neurons will sweat to fully 
understand, but I don't think the indoctrination to a lower-level 
programming model was ever a factor to make it harder.

OTOH, a unstructured language that pretends to be a high-level language, 
such as old VB, *is* something I consider a problem, in the Dijkstra 
category of GOTO-is-evil-burns-brains-forever. This doesn't put you neither 
in the bottom-up road (like starting with Assembly or a low-level Basic), 
nor in the top-down road (starting with Scheme or other decent, respected 
high-level languages, often used in classic introductory programming at CS 
courses).

A+
Osvaldo
 

>
>> On Sat, Oct 1, 2011 at 4:29 PM, Alexey Zinger <[email protected]> wrote:
>>
>>> Not having kids of my own, I have little to contribute, except 
>>> remembering what drew me into what eventually turned into an interest in 
>>> programming.  I think around that age, I was most enthralled by games 
>>> (checkers, puzzles), fun brain twisters (Louis Carroll), doing challenging 
>>> stuff with my hands (working on my bicycle), etc.  All of it relates to the 
>>> same mindset that programming requires (learning patience, persistence, 
>>> curiosity, abstract thinking).  So I don't think it's necessary to sit a 
>>> little kid in front of a monitor right away to get there.  Most of all, as 
>>> others have said, have fun!
>>>  
>>> Alexey
>>>
>>>
>>> ------------------------------
>>> *From:* JamesJ <[email protected]>
>>> *To:* [email protected]
>>> *Sent:* Friday, September 30, 2011 7:01 PM
>>>
>>> *Subject:* Re: [The Java Posse] Computing and kids
>>>  
>>> With anything that dad enjoys and wants the kids to enjoy, I share
>>> some advice from a golfer.  He started with the objective to make it
>>> fun.  He said to start with some playing for short periods on the
>>> lawn, or going to hit some balls on the driving range for a short
>>> time, with minimal criticizing and afterwards took his kids for
>>> ice-cream or some treat.
>>>
>>> The most important thing is to provide opportunities, but don't let
>>> yourself or you kid get upset or stressed, ever.
>>>
>>> I have kids from 15 down to 8.  I think that for serious programming,
>>> 10 to 13 is still pretty early.  They don't have much patience and
>>> expect to be able to whip out some polished game in an afternoon that
>>> would really take 20 man years.
>>>
>>> The science fair was a good chance to have some incentive to work on
>>> programming and my oldest enjoyed that.
>>>
>>> I think whatever system you choose, you need to balance what it is
>>> teaching, how much you have to do to see results, how much fun it is
>>> to encourage continuing work.
>>>
>>> I have been blown away with the realization of how much you really
>>> have to understand to be a decent programmer.  It is a huge
>>> curriculum.  Take it in small chunks.
>>>
>>> At 4, I think the best idea is to just have fun with him.  Play some
>>> puzzle games together and lots of hands on open ended building like
>>> leggos.  (Save the mindstorms for later, or just get it for your
>>> self.)
>>>
>>> -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "The Java Posse" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to javaposse+
>>> [email protected].
>>> For more options, visit this group at 
>>> http://groups.google.com/group/javaposse?hl=en.
>>>
>>>
>>>
>>>  -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "The Java Posse" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to 
>>> [email protected].
>>> For more options, visit this group at 
>>> http://groups.google.com/group/javaposse?hl=en.
>>>
>>
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "The Java Posse" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to 
>> [email protected].
>> For more options, visit this group at 
>> http://groups.google.com/group/javaposse?hl=en.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/javaposse/-/ZbMIixeYk3sJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to