
Why Johnny can't code - Volscio
http://www.salon.com/technology/feature/2006/09/14/basic
======
Jun8
Article has many valid points, but pushes them too far, as such articles are
prone to do.

1) True, today's kids don't have the fly by the seat of your pants
relationship to programming (I distinctly remember a book called "What You can
do with 1K", the Sinclair Z-80 had 1K of memory!). However they have other,
powerful tools. Consider processing, Alice (<http://www.alice.org/>), and, of
course Scratch, among many others.

2) I agree more with the points about hardware: today's kids have less of a
relationship with the hardware, I feel. But there are many cheap and powerful
kits (Arduino, Beagle, etc.) that can change that.

3) The WWII techie guys that are mentioned probably lamented in _their_ time
that the kids don't understand technical stuff anymore but just do BASIC
coding.

~~~
chronomex
I disagree that kids these days are spoiled by large platforms. I've been a
member of the TI graphing calculator programming community for nearly ten
years now, and some of the people I work with are probably the best assembly
hackers you'll ever meet.

We have two main platforms we work with: the z80 series (TI-73/81/82/83/85/86
numbered calculators) and the 68k series calculators (TI-89/92 numbered
calculators). Z80-based calculators run on the fabled z80 processor, the very
same 8-bit ZiLOG processor from 1976 with 64k of address space that ran inside
the Sinclair ZX Spectrum.

People have written car racing simulators
(<http://www.ticalc.org/archives/files/fileinfo/391/39185.html>), and run
assembly code in otherwise inaccessible platforms using buffer overruns they
had to type in _by hand_
([http://www.ticalc.org/archives/news/articles/14/145/145220.h...](http://www.ticalc.org/archives/news/articles/14/145/145220.html)).
We factored all of TI's operating system signing keys, something you may have
heard of (<http://news.ycombinator.com/item?id=909990>). Some other people
reverse-engineered an undocumented USB controller and wrote a nearly complete
USB stack for it, including support for flash drives
([http://www.ticalc.org/archives/news/articles/13/139/139572.h...](http://www.ticalc.org/archives/news/articles/13/139/139572.html)).

These devices have a BASIC variant installed on them, which gives students a
taste of what it's like to see your work running quickly. I first learned to
program on a graphing calculator; it's great to start out because you can
write code and run it right away on the school bus.

The community doesn't move incredibly fast, as it's fairly small. But walk
into any high school in America, and you'll find someone playing Breakout on
their TI-83+. Somewhere in that high school there's going to be someone,
perhaps one in a hundred, who has written a BASIC program. A fraction of these
will want to learn how to write assembly programs, because they want a first-
person shooter on their calculator
([http://www.ticalc.org/archives/news/articles/14/143/143227.h...](http://www.ticalc.org/archives/news/articles/14/143/143227.html)).
And then they'll wind up shoving PAL out the linkport of the thing
([http://www.ticalc.org/archives/news/articles/14/143/143122.h...](http://www.ticalc.org/archives/news/articles/14/143/143122.html)).

Disclosures: I'm a ticalc.org staff member. Many of these people are my
friends. I was one of the people TI sent a DMCA notice to about the signing
keys. Right now I'm working on a calculator-hosted calculator emulator
(<http://github.com/chronomex/680>).

------
Mahh
I think that kids have been finding their own ways into programming.

I used to play Warcraft III, a game that has players play on precreated levels
with each other which came with a pretty open level editor. My first 'coding'
experience was here, with a checklist of possible 'events', 'conditions' and
'actions', that acted as functions for my levels. My own interest came with my
excitement in playing my own level in my favorite game. I think that kids will
find their own way into programming following other computer related
interests.

~~~
michaelbuckbee
I think this is a really good point, and the game mod tools have only become
more sophisticated. Have you by any chance seen Tetris recreated inside of the
StarCraft 2 level editor? <http://www.youtube.com/watch?v=gO2kZ6e9JUI>

I can only imagine how popular a video game modding class would be in school.

------
asnyder
I thought this quote was amusingly relevant.

 _"It is practically impossible to teach good programming to students that
have had a prior exposure to BASIC: as potential programmers they are mentally
mutilated beyond hope of regeneration."_ \- Edsger Wybe Dijkstra

~~~
megablast
Ha, ha, ha. This has an element of truth to it, but does that mean we can't
get kids into programming? Or can they learn C/Perl/etc at the same way?

I got started in basic, then assembly, C, Ada, Java, etc... So there is hope,
or maybe I am a lost cause.

------
younata
Python. Sure, it's not meant to be a "learning language", however, one can
simply ignore the "hard" stuff (e.g. classes, separate modules), and focus on
the easy stuff (e.g. the fact that it is executable pseudocode)

------
kls
I understand what the author is trying to convey, but the world has moved on.
Given that it has, BASIC has been replaced with other technologies.

Personally, my wife and I take our children education into our own hands and
CS has been part of all of there curriculum.

For the girls we use Alice <http://www.alice.org/kelleher/storytelling/> and
for the boys we use Mindstorm <http://mindstorms.lego.com/en-us/Default.aspx>
, they are as successful, if not more successful at providing a simple yet
compelling programming environment that make the children want to embrace
them. As well, Flash is a good environment that can give a kid training wheels
while they learn ever increasing complexity.

~~~
LeBleu
At what age do you think Alice and Mindstorm are usable? The main thing that
catches my attention on Alice is it is targeted at High School or College
level, but the article talks about his 11 year old son.

Where are the programming tools for 6 to 8 year olds?

(I started in BASIC that early, but then again I was programming C by 11, so
I'm probably an exception...)

------
code_duck
A Linux workstation is a programming utopia so far beyond what I imagined when
I was a teen.

I loved BASIC on the C64 too, but later on, I was looking at spending $350 to
buy a C compiler for my Amiga back in 1991. I learned what I could of
AmigaShell, ARexx, and AmigaVision, but it was a bit limited. These days, you
can be writing C, C++, Python, C#, JavaScript, PHP, Flash/ActionScript and so
on for free.

In Linux or MacOS, most of these are preinstalled. As far as I know, Windows
comes with no programming tools installed, other than a browser, and that is
indeed a major oversight.

------
JacobAldridge
I remember teaching myself some BASIC in late primary / early high school. But
I passed on studying it properly because the computer course at high school
was notoriously weighted towards masses of work and poor input into the end of
school results [1]. So I missed the boat to bigger and better languages (for
now at least).

Actually, on reflection that's not entirely true. In the past few years I've
found work-related opportunities to teach myself some basic HTML. And iirc,
the canonical 'How to become a Hacker' document [2] encourages the use of HTML
as just what the OP is asking for - a basic language that teaches kids how
things fit together. Sure, it's more complicated than BASIC, but in the
Facebook era being the kid at (primary) school who can build his own webpage
is perhaps not dissimilar to me being the kid at school who could build games
with curse words in them.

No Commodore 64 required.

[1] My state's school system weighed the grades you received in any course
against the overall skills of that course cohort when compared to the rest of
the state on a standardised test. So I received much higher results from
taking Drama (full of very smart kids at my school) than I would have taking
IPT (full of average students, and harder workload). No comment on which
cohort may now be more successful, but that was the choice at the time. [2]
<http://catb.org/~esr/faqs/hacker-howto.html>

------
ignu
Who cares that you boot up to BASIC. Kids can now make a website and share it
with THE PLANET.

However, if anything is hurting the desire to code it is not modern OS but the
move of the gaming industry toward consoles. With PC games kids can get in to
games they love and with actual code extend them and again, share them with
the planet. They won't be doing this if they're spending their day playing
XBOX games instead of PC games.

------
psyklic
Perhaps nowadays kids progress: HTML -> JavaScript -> PHP?

What is missing from programming languages nowadays is a really easy way to do
graphics and games. But at least HTML and JS give you fast feedback, where
each line you write has a visual result. (And yes, HTML is not a programming
language, but it is a great starting point.)

What I miss are the books and magazines with code listings, which I patiently
typed in. :)

~~~
code_duck
I agree, the web is a much more rich programming environment than BASIC ever
was or will be. It's high level, quick to pick up, rewarding, and can be as
simple or complex as you want to make it.

I reckon the code blogs have replaced the books and magazines, and I GUESS if
you don't want to download a file or cut and paste you can type it in!

------
oct
Here is a recent HN discussion of the same article:
<http://news.ycombinator.com/item?id=1448424>

------
lallysingh
I'd like to point out that a BASIC interpreter sufficient for his needs could
be written with fewer LOC than the article.

I learned on BASIC myself, but it's just so tedious. If I had to guide kids on
programming today, I'd look at scheme or smalltalk. Probably the latter first.

~~~
DLWormwood
I've never used it, but Squeak is a Smalltalk designed for precisely this use
case: an emphasis on quick graphical feedback and learning by the young.

<http://www.squeak.org/About/>

~~~
lallysingh
Yeah, it was the one I was thinking of myself. The last time I used it,
however, the graphics just looked _old_. Maybe it was just all the colors :-)

------
mkramlich
Every Mac has Python, shell scripting, JavaScript, etc. Windows has shell
scripting too.

Johnny has it way easier today than in 1983, let me assure you. Johnny has the
Web. Johnny needs to get off my d*mn lawn.

------
grails4life
If your on Windows, just install AutoIt. It has the BASIC syntax and you can
even do cool things like make the computer beep or open the optical drive with
one easy command. Good intro language.

