Introducing Children to Computers? 886
Years ago, kids could be gradually introduced to computers through learning languages like LOGO and educational computer games. Many of us started our computing careers at our parent's workplace, logged in to a word processor to type away, only to become fascinated with the whole computing thing. So Slashdot, let's hear how you were lured into the digital life. What was it that drew you to a life of programming? How old were you when you first used a computer? What pieces of modern software do you think would be a good way to introduce today's kids to the world of computing?
Two of our readers had a few related questions: "A family friend has asked me to help teach her 13-year-old the art of computer programming. I initially thought this would be easy to approach but times have changed since I cut my teeth on text-only, ROM-based, BASIC interpreters. Twenty years ago, it seems there were much more clear and concise paths one could take to learn programming. Now I'm at a loss as to what language and resources I should use. Everything is so high-level that I'm having trouble finding convenient, simple tools that promote the fundamental tenets of programming, allowing newbies to jump in and see immediate results, without getting bogged down in corporate-centric APIs. It seems nowadays most programmers end up spending more time learning the development environment (and thus being confined to specific platforms) than core, transferrable programming knowledge. I'd like to ask my fellow Slashdot dwellers what tools, languages and approaches they have used to help introduce new people to programming?", and from sagefire.org: "My daughter is a huge fan of TuxPaint and ChildsPlay. We use Linux and MacOSX (and occasionally Windows) on different computers. We like to have stuff for her installed wherever we go. The two I mentioned go a long way, but we would love to pick the collective Slashdot brain on this one."
Linux, the open OS. (Score:5, Interesting)
My father started me writing programs in BASIC before I was four (as that was what he was doing and of course I wanted to know how). I could read most things by then and this was not much more than just copying what he did anyway. I mostly remember playing around with simple things like PRINT, GOTO, and INPUT. Nothing very complex although I suspect (but don't know for sure) that my father never did anything terribly complex in BASIC.
We progressed through the Commodore stages (C64, C64C?, C128D) and when I was in 7th grade we upgraded to a Packard Bell 386SX-16 with a whopping 2MB of RAM and a 40MB HD. This is where my love of computers really started... I sat down my first day and discovered the DOS prompt (PBs at the time had a simple GUI menu that basically sucked) but quickly found myself unable to load anything from the 3.5" disks.
LOAD "*",8,1 was giving me "Bad command or file name" repeatedly... Dejected, I sat down and read the DOS 5.0 manual from front to back (several times actually). I spent time writing crap in Q-Basic (and eventually QuickBasic) and then moved on to Turbo C++ (which I must say had a far less interesting manual than DOS believe it or not
What I enjoyed most of all (and I have posted about that on Slashdot before) was thumbing through the old-school Computer Shopper looking to build my dream machine and making sure I priced it the best I could.
I miss the days of old-school computing when everyone knew at least some part of what was going on inside their machines and the OS even allowed you to! I missed that part of computers until I moved to Linux in 1996.
I'm just glad that with Linux I can continue to allow it to remain that way. I can forever live in the world that I had grown up in. So to answer your question about what I would do to introduce a child to a computer... Linux!
Linux allows you to get right down there in the trenches with your machine. You get to see what the hell is going on when it boots up. Sure, most people don't care (because they don't have to) but we all grew up watching DOS boot before Windows. We knew how to edit config files and save on what little memory we had so that we could run NewGameFoo.
I enjoyed learning about computers and playing around and finding out how they ticked. It scares me that NO ONE will know how soon as Windows does NOT really allow you to know. Everything is behind a shroud of secrecy and hard to find registry settings that are buried in deep trees of information.
At least with Linux a child gets the best of both worlds. A modern operating system GUI with nearly all the comforts of Windows while still being able to learn if they want to.
But that's just me. I learn by doing not by example. Using a computer that is open to explore was the best option for me.
YMMV.
Re:Linux, the open OS. (Score:3, Funny)
Oh man does that bring back memories! Took me an hour to figure out that I just have to type in the program's name!
Re:Linux, the open OS. (Score:4, Insightful)
With the Commodores and Apples, there was no question about where to start - you turned on the computer and there's your BASIC interpreter. Yeah, BASIC is for the most part an awful language, but it at least teaches the kids the necessary logic and thought processes that go into programming.
My 8-year old son is a lot like I was at that age, and I suspect that he'll really take off in that department if he can get started. He's already taken an interest in modifying a silly game I wrote in C when I was 15 - he likes it mostly because of its quirks and bugs, and is fascinated by the idea of being able to change it himself. C is a tough language to start out in if you've never programmed, though.
Re:Linux, the open OS. (Score:3, Interesting)
However the 12 years old of today... They want to do what we wanted: program games. However for us the threshold was PacMac or Space Invader.... for them the threshold is Need For Speed Underground 2. Hey, I showed him the orginal Prince or Pers
Re:Linux, the open OS. (Score:5, Insightful)
In general, they just want their computers to boot up and let them download all of the free music that they can find. They're not interested in learning how to make the computer to do what they want, just how to make it get the songs that they want.
I wish kids were as amazed by computers as I was at that age. My first programming experience was on my TI-82 calculator, where I wrote a couple of games and other programs. I had a C64, but at the time didn't have enough exposure to the computing world to understand what it was capable of. I really wish that I still had that old thing, as it was awesome and would be great to show to my brothers-in-law.
Re:Linux, the open OS. (Score:3, Informative)
It also pretty much launched my career in comp sci. I loved video games and computers as a kid (built my first computer, a 486, from some cast off parts)
Re:Amazed? (Score:3, Interesting)
I gotta throw my lot in with the other guy here. Mom's Smith-Corona manual typewriter was already an Antikythera-class artifact by the year I was born, but even though I was exposed to various early microcomputers while growing up, I was never inclined to take the Smith-Corona's complexity for granted. The guys who designed those old typewriters were not exactly the slow kids in class. (Do some Googling sometime about how IBM imp
Re:Amazed? (Score:3)
Re:Amazed? (Score:4, Interesting)
On my first computer (a c64) all you had was the little flashing ascii cursor, from there it was up to you, you had to figure out what the hell to do with it. I still remember the first time I got my c64 to load something, when I figured out the load "*" 8,1 command. My heart lit up as I waited for the loading text to go away, revealing Qix. This was even better because my parents didn't even know how to do this, for once I knew more than them. And that was the beginning of them be really confused everytime I get within 10 feet of a computer.
Samething when figured how to get my c64's modem to init to a BBS I found in a free newspaper. Possibility. Discovery. Control. All the things the children need to be stimulated. Granted I never really got into programming, and can program C as well as I could in high school, which isn't saying much.
Basically all you need to do is get the kids hooked on the open ended possibility of it.
And yes, I actually was quite enthrawled with my mom's old Underwood, it was scary, and I still remember using it with reverence when my c64's dot matrix died, and my parents refused to see that I didn't break it, and it needed a ribbon instead.
Dropping kids on a bash prompt wouldn't be a bad idea, IMHO, especially after letting them get used to some random windowing system. How can Windows or OS X get you intreged how it all works, when the works are well hidden?
Re:Amazed? (Score:3, Insightful)
The thing is that a kid would be more prone to mess around in the windowing enviroment, since it is more intuitive, and mo
Re:Linux, the open OS. (Score:4, Funny)
You know it's time to get out of the house when instead of reading "myself" you read "mysqld".
Re:Linux, the open OS. (Score:5, Interesting)
Seriously, I remember troubleshooting a boot/registry problem and I got this freeware/shareware program to log all registry activity. It would even do it for a whole boot. At the time, a win2k boot had between 120,000 and 150,000 registry read/writes!!!
Re:Linux, the open OS. (Score:3, Insightful)
Windows doesn't do anything special that its surprising that it works any m
Short and simple... (Score:5, Insightful)
Re:Short and simple... (Score:4, Insightful)
Re:Short and simple... (Score:4, Interesting)
I understand where you are coming from, but most of us cut our teeth on computers around 3rd grade. My friends and I could write basic programs, and operate the TRS-80 better than our folks. For me the computer turned out to be the only thing that made me any money, all thanks to my engineer dad who was excited about the first personal computers and found a way to buy a Trash-80. I wasn't athletic, didnt sing or dance, hated drawing and painting, but loved to sit for hours fiddling with that piece of junk. My friends were into computers too and when we weren't doing kid stuff outside it was a great wholesome way to pass the time. It certainly is better than getting a playstation or xbox for your young impressionable kids.
A more sensible approach would be to expose her to it and see if she shows an interest or apptitude for programming or computers, then nurture that if it appears. One of the most adept network admins that I know grew up in a hacker/unix family and was exposed very early to some pretty advanced stuff. If she likes dancing and acrobatics or riding her bike better, then nurture that instead. Besides, by the time a girl is a teenager she won't be the least bit interested in 'unix variants', more like Corey variants and make-up shade variants.
high level is a bad thing? (Score:4, Insightful)
Re:Linux, the open OS. (Score:3, Interesting)
Re:Linux, the open OS. (Score:4, Informative)
The first computer I remember was a Northstar. I don't remember it having anything other than a text editor, but apparantly it also had games such as Hunt the Wompus that I never found. Well, I was only three or so at the time. However, it did have a Little Red Button. When pushed, this Little Red Button would erase every file on the disk. I never quite grasped that, for some reason.
We also had a DOS of some description. With it were games such as Hocus Pocus, Recue Rover and something where you had to avoid monsters and spell words. We only had demos of them though. It also had a version of BASIC and a simple text editor that I never used. We eventually sold it for ten pounds or so. I was young enough and poor enough to think that that was a lot of money, so it seemed fair at the time. I now know that it's very little money, so it still seems fair.
Then came an Archimedes, running RISC OS 3. We still had the Northstar at that point, but it was unplugged to make way for this new one, which was put on top of the main body. With plenty of room to spare. The monitor was moved to the top of a filing cabinet. Eventually I started doing some BASIC in it, probably because my brother did so first. I was, to put it mildly, crap. I didn't understand the concept of a variable. I could INPUT A$ or GET A and PRINT it, but I didn't know how to do maths with them, even when I saw it being done. Nor could I use loops, although I could just about handle IF A$ = "Foo" THEN GOTO 50. I didn't know what GOSUB meant, or PROC and ENDPROC, and I thought ENDIF was a magical (and I really do mean magical) form of END which somehow worked out what conditional you wanted to END on. We still have it, and some time ago I started toying around with it again. BASIC was less confusing, although I'd now hate to work with it, and I also discovered its command prompt (which I remember thinking was superior to the Windows 98 one because it had a scrollbar and a help command).
Then we got a Windows 95. My time was spent playing Chessmaster 3000 and Civilization II. Eventually the Archimedies made way for The '98 that we still have and where I got reinterested in programming. I started with HTML about five years ago, and then tried to learn Javascript. My original tutorial was sucky, but when I found a better one (Thau's, at Webmonkey), I became passable at it. This of course led to the desire to learn real languages, specifically Perl because my brother knew it. After trying several times to learn from the Camel Book I gave up (I should have skipped over that first chapter, information overload) and found Beginning Perl online as a PDF. Eventually I started making GUIs with it using Tk (my brother was at that point using it to make a program for somebody else, but they never finished it), but I stopped because I was spoiled by HTML/Javascript, and Tk simply isn't as powerful. Or if it is, Mastering Perl/Tk isn't a very good manual. I still only consider myself 'good' at Perl, but that's because the more I learn, the more I realise I have yet to learn.
I made an attempt to learn C++, but I got more information overload. I've since tried again, and got slightly further, but the tutorial I was using simply doesn't cover enough libraries - it explains Terminal I/O, numbers, functions, strings, OOP and then File I/O, but not how to actually do anything useful. I can do simple stuff (such as a program I wrote a few months ago to find the number of odd numbers in the Nth row of Pascal's triangle), but no regexes or cool things like that. It really diesn't explain anything further than basic string usage, so until I get around to looking it up I won't be able to do very much.
Some time ago I got my own computer.
How to learn a programming language... (Score:3, Interesting)
For me, I learned most of my C (which I later transalted to C++) coding on a MUD. I didn't code the MUD from scratch, but editted one that already existed.
Find some open source code that does something you're interested in and start hacking away. It's much easier to pick up things one item as a time through editing something
Re:Yes, introduce them to IP piracy at a young age (Score:5, Informative)
And is this the same Sun Microsystems whose Unix is one of the more difficult (in relative terms) to port Linux code to due to the differences between them?
Here, put on this conical hat and go stand in the corner.
It would be handy to have an option to rename such as you from "Anonymous Coward" to "Brainless Coward".
On the "computer programming" question (Score:3, Insightful)
(If s?he gets a crappy teacher though, you've wasted your money)
Whoa, Cowboy! (Score:2, Insightful)
I suggest evaluating that class/instructor yourself, first, or take the class at the same time as your kid. Bad teachers abound, don't just assume people you get on with just fine are good at teaching, some of my friends couldn't and shouldn't teach. (I know, I've sat through some of their courses.)
Re:On the "computer programming" question (Score:4, Insightful)
Look, you are obviously a technically informed kind of person, if not even an IT pro. How about sitting down with your kids, giving them a few first hints, maybe a good book too, and see how they'll do on their own? Having trained instructors teach you sure is an extremely valuable thing once you reach a certain level from where moving further forward by means of self-education gets really damn hard. However, for the basics, a trained instructor would more probably scare the kids away, instead of attracting them to the subject.
Pun Alert (Score:3, Insightful)
No, find them a club instead.
Nothing beats a trained instructor
...except a club.
Re:Pun Alert (Score:5, Funny)
Not just any class... (Score:3, Funny)
Do Nothing. (Score:5, Insightful)
You don't. Your kids will pick what they want to be interested in as a natural result of what they do in life. My parents tried to get me interested in all sorts of things they thought would be good for me - soccer, football, tennis, math team, piano lessons, foreign language, blah blah. The only two things I ever became really "good/involved" at are computers (my full-time career) and paintball (hobby), both of which my parents discouraged (paintball in general, computers in the "don't spend so much time on computers!" sense). I still resent this quite a bit as I would be better at the activities I ultimately chose to be involved in if I hadn't had to waste time appeasing my parents' desire for me to be interested in the activities they thought I should be interested in.
How did *I* get involved in computers? My dad got a computer with a modem, and I was quickly discouraged from spending time on it because I was spending nearly all of my free time on the computer (time not at school or with friends, when we were not messing around with computers), and this was viewed as "bad". I eventually forced them into getting a second phone line, but the next 8 years that I lived at home would be a constant battle between me and them over how much time I spent on the computer.
Ultimately, I escaped to college and a computer engineering major and then got to spend all the time on the computer I wanted. But those 8 years of fighting my parents over it put me quite a bit behind the kids who'd had unfettered, and even encouraged, access to their machines.
So if you have a computer in your house, and your kid is not ALREADY spending all of their time in front of the computer, they're not interested in computers. Nobody had to figure out for you how to get you interested in computers, you figured it out yourself. It will be the same for whatever your kid decides to be interested in. No matter how much you as a computer geek want your kids to be interested in computers, chances are your kids are going to become very interested in something that is NOT computers, whether it be sports, guitar, chess, student government, whatever. Do your kid a favor and support whatever it is your kid spends all their time doing. If you have to "show" them how to be interested in it, they're not interested in it, and you're wasting both of your time.
Re:Do Something (Score:5, Funny)
"I think I've got root. Nmap says it's an NT box; it doesn't seem to have a firewall running. Looks like a law office."
"Aaahhh! Nice one! You gonna nuke it?"
"Nah, I wanna mess with 'em a little. Wanna send a nasty email to a competing law office? Maybe we can get a West Side Story brawl going."
"Hang on, your mom's gonna wanna get in on this. HONEY! GET IN HERE! JOEY'S NAILED A LAW FIRM"
(goth mother comes in)
"A law firm? You're kidding? What are they running, 2000?"
"Naw, ma, NT 4."
"Get out of here!"
"Honest! Hey, check it out, someone's trying to log on. Should I enable his account?"
"Go for it. Hey, pop up a message, let me type."
(Mother sneaks into the seat).
"BEHOLD, LAWYER, FOR I AM THE ANGEL GABRIEL AND I HAVE COME TO WARN THEE, THOU ART BILKING THY CLIENTS AND SHALL SURELY PAY! IF THOU WISHEST TO GAIN THE KINGDOM OF HEAVEN, GIVETH THY BMW TO RICHARD STALLMAN AND DONATE YOUR TIME TO THE FREE SOFTWARE FOUNDATION!"
"Umm, mom, wasn't that a little over the top? Besides, he doesn't know how to respond."
"Right... Umm..."
"LAWYER! JESUS HAS INSTRUCTED ME THAT IF YOU STRIP TO YOUR UNDERWEAR, LEAN OUT THE WINDOW AND SCREAM PRAISE THE LORD ONE DOZEN TIMES, THEN QUIT YOUR JOB AS MINION OF SATAN, WE'LL FORGIVE YOU... BUT ONLY THIS ONCE."
"Yeah... MUCH better..." (rolls eyes)
Hey, the family that plays together STAYS together!
BASIC (Score:3, Interesting)
I'm going to bet practically everybody else here had a very similar beginning... :-)
Re:BASIC (Score:5, Insightful)
Re:BASIC (Score:3, Interesting)
My dad took a little more direct tactic. When we got our new computer when I was in the fifth grade, he proclaimed that he was not going to buy any games. If we wanted games, we would have to make them ourselves, so I started working on very primitive games using BASIC. My dad later changed his mind(?) and purchased games for us for Christmas, but by then, it was already t
Bally Basic (Score:3, Insightful)
4 years old (Score:2)
Coleco, Tandy1000, 386... now that I think about it, I always had a computer nearby. Programming came naturally from a 'want-to-know-how-it-works' mentality.
When I was young... (Score:2, Interesting)
I program for a living now and always let him kno
I think (Score:2)
Never quite have equalled that experience either...
The most important thing (imho) (Score:3, Interesting)
Re:The most important thing (imho) (Score:3, Funny)
I recommend a spell checker too.
karel (Score:5, Informative)
as far as teaching programming goes, try karel the robot [mtsu.edu] that's what we used in high school before learning pascal, and it made the structures seem very logical.
Guida van Robot (Score:3, Interesting)
Commodore 64 (Later 128) (Score:2)
I was already into computers by the time my grade school started me on Logo and some other Apple stuff (Hyper Studio anyone?). Of course, I didn't know my career would be in computers or anything. To me, they were just these "awesome" machines that let me play games and do homework.
It wasn't until my Freshman year when I was exposed to programming languages (other than QBasic) that I decided this is what I was going to do with my life.
About 12... (Score:2, Interesting)
He showed me statements. I figured out how to write a scientific calculator in BASIC. It never became my thing until daddy gave me a Pascal book and Turbo Pascal 4 (?). It was a dream! I reinvented bubble-sort, and stuff like that. I was sold. I knew I was going to go into computers.
That's wh
Logo is a good... (Score:3, Interesting)
You know what also would probably be an easy way to get someone in on programming? Straight up line number GW-Basic or AppleBasic. Simple, and teaches basic programming concepts fairly well (If statements, loops, etc with simple input and output). Beats trying to teach the principles of OO design at an early age. Little baby steps would be key...
Re:Logo is a good... (Score:4, Informative)
I think Logo is great for kids of that age because it provides them with instant gratification at the early stages. Once they get past seeing what the commands do at the Logo prompt, I have them write short programs using a text editor.
Sesame Workshop (Score:2)
Sinclair ZX81 / Timex-Sinclair 1000 (Score:2)
Parallax Basic Stamp (Score:3, Interesting)
HyperCard, anyone? (Score:2)
My first home computer was a Mac. I learned a lot from HyperCard and MS-BASIC.
I'd say the closest thing to HyperCard now is the web, but the underlying structure requires a broad range of knowledge, from markup (HTML), graphics (Photoshop or other image program), code (Javascript, PHP), and persistence (MySQL). It's not at all easy for a beginner, but it's the modern RAD environment that most closely resembles HyperCard.
Bigger Question... (Score:2)
From my father's telecommuting. (Score:2)
Which meant bringing home a teletype and accoustic modem and setting it up in the basement. Giant rolls of yellow paper and the constant ka-thunk, ka-thunk, ka-thunk, ka-thunk as it printed. Occasionally, we would be allowed to play exciting games like horse racing...where you picked a horse and it would give you the race announcements.
Ah, timesharing on an old GE computer.
Quest for Glory... (Score:5, Insightful)
Anyway, with the question. First thing a child should know is how to get around on the computer. This includes command prompts and everything. Once they are truely mastered at this, I'd find some free compilers and teach a little bit of basic. If they have a school with an MS partnership, they could pickup visual basic pretty quickly.
Don't be an elitist and try to teach the kid C or C++ or anything overly complex. Give them a bitesized language before introducing them to the big stuff. Would hate to see the kid drown cause you put too much in front of her.
Commodore 64 (Score:2)
Back in my day... (Score:2)
We didn't have 24 inch LCD monitors with better resolution than you can see.
We didn't have high speed internet connections that make a T1 seem slow.
We didn't have no computers. Heck, electricity was still pretty new.
We did go outside and use our imaginations.
But seriously, watching my kids pick up computer skills is astounding. I have no idea what they'll come up with given the unlimited time and
Start 'em young (Score:2, Interesting)
Ever since then (and my impending video addiction with the Nintendo systems a few years later to present) always kept me hooked on computers. My small programs became larger hobbies and eventually my career.
So I guess my point is to start the kids young, they can hand
F5 (Score:2, Interesting)
I got started using DOS on my dad's 386 "lunchbox" computer when I was 5 or 6. My dad taught me all the important commands, like "cd", "mkdir", "del", "format" (that one was *really* fun), "edit", and "cp". He was very patient, and even brought home PC World from his
Cold, Hard Reality (Score:5, Funny)
Today's world of computing? Give the kid an EULA from Microsoft, a C&D from Disney, and a subpoena from the FBI. I'm not completely joking, either.
Advent, Trek and Rogue (Score:2)
And course, had a C compiler not been available in System III, IV, V and BSD, then I would've just sat there playing games instead of learning how to program. Which is why I think every OS should have a development environment included (kudos to Apple for thinking a commer
RISC OS? (Score:2)
I remember when my father first brought home a computer from work - a state-of-the-art (for its time) Acorn Archimedes. I cut my teeth on that machine - it had a friendly UI, powerful command line, BASIC built-in, and would be perfect for a youngster today to play around on.
They're dirt cheap on eBay these days - an A3020 would set you back only about £30. It has the OS and a load of applications in ROM, so there's no risk of accidentally 'breaking' the computer, there's plenty of information availab
Computer ??? (Score:4, Funny)
Lego Mindstorms (Score:5, Interesting)
However something like mindstorms is fun and accessible. Also a good way to get your feet wet programming.
Re:Lego Mindstorms (Score:3, Informative)
Re:Lego Mindstorms (Score:3, Informative)
Do your child a
Logo - Basic - C (Score:2)
Summer after 4th grade (1981) I took a summer course: 4 days, using an Apple ][+, learning LOGO. We also had an Atari 800. I still have my first project printed out on 13" white/green lined formfeed dotmatrix: it drew a pacman ghost.
The following year in 5th grade I had a TI 49 and a Commodore PET at my disposal. All we had were tape/catridge games, so I didn't learn much except how to look at other people's source code, which didn't make any sense at my age. The teachers knew nothing at the time.
6th
Earliest memories... (Score:2)
A few months later (and against my mother's wishes I believe), he took me there when they had showed 2001: A Space Odyssey. My dad had to shut me up as I was bawling through the 'HAL disconnect' scenes. It was then my parents knew something wasn't right.
At 9, I got involved with electronics projects until the magical day the TRS-80 came to my local
1972, a teletype, Gecos, and GAMES... (Score:2)
Simply put, he showed me how to play games on the thing and I was hooked. (Star Trek, Adventure, etc...) I demanded he bring that 60 pound execuport home again and again. He got very strong arms and I taught myself Basic so I could write my own games. I then went on to get my first job (at age 16) program
Personally, I will keep my kids away from them (Score:3, Insightful)
I understnad their importnace, but i also understand they can be abused and used in a way to foster lazyness.
The making of a hacker (Score:3, Interesting)
At 6 years of age, I received a toaster (with a cord cut off) and I rabidly rip it apart down to the heating elements of which I made slinky toys out of them. Many more appliances were "gifted" to me for adventurous disassembly efforts with glee.
At 8, I received my very first ATM card, I learned to deposit an empty envelope of $1000 and managed to withdraw $100 max. on the same hour! Bank later called and said "we made an error, pay it back."
At 10, Captain Crunch cereal featured a toy whistle. I learned that free phone calls can be made at payphones.
At 11, blue box was made using those Japanese 250-in-1 electronic kit box. Radio Shack becomes my best friend.
At 12, TRS-80 Model I was purchased. I started work as a BASIC programmer for designing a paypoint station in accepting Visa/Mastercard at gas pumps using 8' drive TRS-80 Model II with a sporting 640KB memory... Hooha! Mastered 300 baud communication using 250-in-1 electronic kit.
At 13, Exposed to PET computer, Commadore and a 6502 microprocessor. Mastered assembly language. Actually memorized the entire instruction matrix.
At 14, designed a payroll, general ledger, account receivable program on HP-1000 with those huge disk pack array.
At 16, tweaked and enhanced several BBS software. Ran a BBS station.
At 18, left for college with my various computers. Wired dorm room for wireless alarm (using Tandy car alarm transmitter and a pager, tied to serial port of computers).
At 19, left to work for an undisclosed company who requires mastery of 236 network protocols and other unintended usages. Been there ever since.
quick and easy: HTML and JavaScript (Score:3, Informative)
Once JavaScript was added to the Netscape browser, I began learning it in earnest. It was an ideal "gateway language" for me because it required no compilation, no debugger, nothing more than an OS-standard text editor and the free web browser I was using.
I could build scripts one line at a time, debugging them as I went without much incident. Then as I got the hang of it, I'd start using functions and subroutines, then external includes, objects, and all the other things that make "real" programming what it is.
HTML and JavaScript are still ideal, in my opinion, for teaching someone who doesn't know much about programming what you can do and what it should look like without taking a lot of time or software to produce results.
Re:quick and easy: HTML and JavaScript (Score:3, Insightful)
Python (Score:5, Informative)
My 13-year-old brother recently decided that he might like to learn how to program. He has been fascinated by computers for a long time -- mostly due to computer games.
I've been programming since I was 8 -- about 18 years now -- and I started with BASIC on a VIC 20. I don't think BASIC is the way to go these days, so when I started to teach my brother I thought first of Python. Python has a lot of advantages for beginners and is an excellent tool for teaching programming. It works great for procedural, object oriented or even functional styles.
So far he loves it! At first we were using Dive Into Python [diveintopython.org] as a guide, but he wanted something that he could handle more on his own. Dive Into Python is much better for programmers looking to pick up Python. After a bit of searching I settled on Michael Dawson's Python Programming for the Absolute Beginner [amazon.com]. I gave him that book for Christmas and he has loved it!
The cool thing about Dawson's book is that the example programs are all games. It starts really simple (guessing games and the like) but by the end of the book Dawson has you using graphics and animation (thanks to Python's great package support). If you're looking to help someone learn programming then I'd have to really recommend Python as a start and a book like Python Programming for the Absolute Beginner as a guide.
Re:Python (Score:3, Interesting)
Re:Python (Score:5, Informative)
PyLogo [pylogo.org] is Logo implemented in Python
Guido van Robot [sourceforge.net] is similar, but so much cooler.
Finally, livewires [livewires.org.uk] has an excellent Python tutorial.
Wanna-be programmer was discouraged (Score:3, Insightful)
Re:Wanna-be programmer was discouraged (Score:3, Interesting)
A friend of mine from HS was encoraged to learn computers
I don't worry about this kind of stuff. (Score:3, Insightful)
So, just concentrate on raising a bona fide geek, the rest will take care of itself. No sense ramming soon to be obsolete skills down their little throats; ideas matter more and attitudes even more so.
True story from a couple of days ago. The Dear Little Ones were whining to play on the computer. "We won't be happy unless we get to play on the computer." Well, you can't take that kind of guff from the DLOs, so I said they were going on a ranger lead nature hike at the local park. Oh, the humanity. Well, as soon as the DLOs hit the trail, they had a blast. They learned how to tell rabbit scat from deer scat. They learned how you can sometimes tell coyote tracks from dog tracks. Then we capped it off with a short cut over a rocky hilltop and slippery descent down the far side.
They switched to wheedling more nature hike time on the drive home. Which is great: you build memories that will last a lifetime, you give them physical exercise, and you make them enthusiastic about science all at once.
PHP is the "new" basic at many places (Score:5, Informative)
My local community college switch just this year from teaching QuickBASIC to PHP as the starter language. At first I was like... WHaaaaa?
Then I got to thinking about it, and realized that PHP can be as simple or as complex as the user wants it to be, and it really *is* a good starter language, and a spectacular path towards C++. The web browser is something most people are already familiar with, and what can be better than designing programs that communicate with your web browser if you want, or they can do other things, obviously... but the web browser is pretty close to a basic prompt, and you can do some neat things that would be entertaining for kids (maybe not 3 or 4 year old kids, but 7 or 8 and up).
If you're like me, your first reaction is going to be the "Whaaaaaa?" to it, but stop and think about it and give it some serious consideration before dismissing the idea... it really does have some merit.
Squeak and e-toys (Score:5, Informative)
For older kids, the game-oriented BASICs give quick results--things like Blitz Basic, Pure Basic, and Dark Basic. Almost certainly you want to steer kids away from stuff from the dark ages, like the Linux command line, makefiles, gcc, etc. I know, I know, lots of geeky types are going to hate that suggestion. But stop, take a step back, and just see the reactions you get to that stuff. It's not that it's unusable, just that it feels so awkward and out of place in the modern world. Show someone DrScheme, for example, and then show someone Emacs and makefiles. Your student will be horrified at the latter two.
Don't use a computer you care about! (Score:5, Insightful)
Older computers that had only tapes/floppies were better in that way, since it was pretty hard to ruin media that was either in the drive with write-protect enabled, or in the desk drawer.
You probably also want to have programs (read: games) available that can be changed easily.
I haven't tried Macromedia Flash, but I'd look into it.
I've been teaching programming using Flash (Score:5, Interesting)
10 COLOR RND(15)
20 SET(RND(20),RND(20))
30 GOTO 10
Sadly, it is harder to find programming environments for kids that provide this kind of simplicity these days.
Last year I started teaching high school aged kids to make simple videogames using Flash. My class is called "Make your own videogame in Flash Actionscript". Essentially, my class is an introduction to programming, and something of a "stealth math class." I would much prefer to be using BASIC on old VIC-20s, but Flash isn't too bad for this activity.
I'm aware of the huge anti-Flash sentiment on Slashdot - one I generally share when I see it needlessly used on websites. However, I think Flash is pretty good for teaching kids to program.
Since it's vector based, the equivalent code to produce the effect of the above (raster based) BASIC program is too large (see http://krazydad.com/bestiary/index2.html [krazydad.com] for my implementation), so I have had to rethink how I approach things. I have to start with programs that are simple in Flash, not programs that were simple for me in 1981.
Still, I have to spend a couple classes getting past some unnecessary high-level concepts integral to Flash (like "timelines" and "the stage") but eventually we do get down to programming.
When a kid writes that first program in which they can control something on the screen, they invariably yell "Yes!!" or "Alright!!" This is why I like teaching programming.
The reasons I chose Flash, over something like LOGO (or Squeak) are:
Re:Or take it a step further (Score:3, Informative)
Free ones like GNU Robots and Core Wars are a good no-cost option, but I imagine that with their lack of flashy graphics, they would fail to capture the interest of most kids nowadays. I would suggest instead tracking down Mind Rover (out for both PC and
Python (Score:3, Interesting)
I would have to say that Python would be a rather easy language, but with all of the neccesarry parts, to teach the child. Its very easy to get a game programmed. It only took me about 20 minutes on my first try to make a simple program that opened a window, created a border, and let me move a sprite around the screen with the keys on the keyboard.
Females are so different (Score:4, Interesting)
your sinclair magazine (Score:3, Interesting)
He hits it on the nail - when i started off on the ZX Spectrum way way back in 1983, it was very very easy to get into programming.
1. Buy zx spectrum
2. Buy Your Sinclair magazine
Your Sinclair was just packed full of Sinclair Basic programs for you to type in - through that, you learned about programming. It really was kind of an open source way of learning about programming and it was just BASIC , but at least it gave my former 12 year old self a leg up and a way in to murky world of coding.
Fast forward to today and i dont see a "Your PHP" or "Your Python" kind of weekly magazine. Dr Dobbs magazine comes close, but that's really seriously high level.
Yeah, i know - PHP and Python have tons of websites, but in reality , a printed magazine on the newstands would make an impact. Maybe we , as in the Slashdot crowd or the more general open source community, should seriously think of going back to "old media" and think about doing a printed monthly magazine with nothing but code in it in order to give the youngsters of today a bit of inspiration.
maybe we've been too self-centred and too self-obsessed with the whole "internet" thing that we've forgotten where we've come from.
we need to reach out and get the kids that dont use the internet involved. maybe that's what might happen over the next few years - new media re-discovers the old media. a kind of influx of new media types into the world of real world publishing.
just my 2 euros.
Python works (Score:3, Interesting)
I started out writing simple programs for the basic interpreter in my Ti-83 graphing calculator. Noticing I was interested, my dad got me started using Python.
I'd say python is by far the best choice:
-It's interpreted, so you get instant feedback
-It's simple! I could teach my 10 year old brother to use it
-It's not 'write only'; you can look back on old projects and understand every line of code
-Lots of good documentation
Give it a try and you'll see what I mean.
Philips MSX-2 VG8235 (Score:3, Interesting)
But the most important thing: it came with a MSX DOS & BASIC handbook. The thing booted in BASIC and I became used to loading the first games from that. The first BASIC programs (starting with the print statement in a loop), but in a few years I was even doing assembly stuff. Z80 is a fun and easy processor to program.
The problem back then was finding people with the same interest. There were a few that did some basic C64 stuff and even a few MSX owners around the place, but nothing fancy. The only advanced refference I got later was an MSX 2 reference book, but it was stolen out of the library by a misserable sod, who happens to be my friend until this day. I stole it back and got it laying around somewhere.
Currently the problem is getting a nice programming environment. HTML is just data, and JavaScript is awkward and ugly to program. No programming tools are installed with Windows as well (and Windows scripting is just too much). I wouldn't recommend scripting and OO is a bit much to start off with.
The good thing is the internet. LOGO is still around, and is probably a great thing to start off with (it's free you know). I've got LEGO mindstorms and that learn children the basics really easy, using flow diagrams, but it is pretty expensive (~250 dollars for the one you can program). Anything that is easy to learn and visual may sufice though. And make sure they've got plenty of refferences - get the school involved or something.
If everything fails, fall back to BASIC, even using an MSX emulator if you must. Don't forget to unlearn it though once they get the basics. Visual Basic is the worst PL on the planet.
Logo all the way (Score:3, Insightful)
Most students wrote simple circles and squares that took about 3 lines of logo. I drew a house with trees and stuff. It was a few pages of logo. It was enough that the teacher called my parents and told them I should go to a special school to learn programming.
My parents said no. They thought it was a little too weird. However, my parents got a computer (an IBM PS/1) and within the next two years my Uncle while visiting showed me how to use Basica on it.
That was it. I don't know why but it sparked an interest. I went out and continously checked out the two books on programming the local library had (one on Basic and one on C). I read them cover to cover and saved up 500 to buy my first used laptop around 1993. It didn't come with an operating system so I put this "hacker operating system" called Linux on it. Took me a couple years to figure out how to get X to work but I was able to use gcc which was all I cared about.
So, at the end of the day, I think I would have gotten into programming no matter what. It may have been later than I did but I do believe it still would have happened.
My advice? Don't try to introduce your children into computers. Expose them to everything, see what they take to, and nuture it. I know most people want their children to be successful, but I also think people are most successful when they're doing what they love to do.
Just my thoughts.
IENJINIA (Score:3, Interesting)
Punch cards/FORTRAN on a DEC-10 (Score:3, Funny)
I learned FORTRAN programming with paper punch cards on a DEC-10 mainframe back in the 70's. It was a big step up when we got paper-feed TTY terminals and could program in BASIC using a real directly-connected keyboard. Eventually I did some COBOL on a VT-52.
It was at least a decade before I got to ANSI C on an IBM compatible, about the time all of you little nose-pickers were born.
-ccm
POV-Ray and Marathon (Score:3, Informative)
Then I discovered POV-Ray (http://povray.org/ [povray.org]), a photorealistic raytracing program with publicly available source code, and which uses a scripting language to generate the scenes. Getting an actual picture as feedback when you get a working program is far more encouraging than a simple blurb of text. By this time, I'd learned Pascal and C++, but the most complex projects I did were in POV-Ray. In the process, I learned a great deal of mathematics...the images I could generate provided motivation as well as an illustration of how things worked mathematically. It's a lot easier to learn the stuff when you have a practical need for it and can see how it works.
And perhaps best of all, when I decided the program was too limited, I was able to get into the actual source code and make my own changes and additions. I don't recommend doing this as an introduction for beginners, as the program is quite complex and has some rather messy code, but just generating images with the scripting language is a great way to start.
Get them a pony (Score:3, Interesting)
Get them a pony. This will teach them to deal with an animal that's cooperative enough that you can do something with it, but independent enough that it's not easy. This prepares them for management.
Lego Mindstorms? (Score:3, Informative)
I loved Meccano and Lego when I was a kid, but the most advanced automation stuff in those days was a photo sensor and relay.
Paul.
My thoughts (Score:3, Insightful)
I just got back from celebrating my nephew's third birthday. He takes after me in a lot of ways, and so I'm guessing he'll have fun with programming.
For Christmas and his birthday, I got him a KidzMouse [kidzmouse.com] (icky website, great product) and some non-computer stuff. The KidzMouse was because his hands can't use his Mom and Dad's mouse, so he has to have Mom do all his mousing when he plays games. I felt that this interface might discourage him from exploring on his own; hence the KidzMouse.
I've been thinking about him learning a lot lately. Buffy fans remember what she said to her kid sister in "Grave": "I don't want to protect you from the world. I want to show it to you." That's how I feel about my nephew. I want him to be able to experience art, and music, and science, and nature, and-- of course-- technology. I'm not going to shove anything down his throat, but by golly I'll make sure he has the tools he needs to discover them on his own.
That's shaped my choices of gifts for him a lot. I'm trying to stay on the topic of computers here, so the KidzMouse is one example. (I also set up video conferencing, mostly because I'm tired of only seeing him once or twice a year.) I think that this is the most important thing you can do: make sure that the kid has the tools to explore, and learn whatever they want on their own.
So here's what I see as needs. First off, an interactive environment: you should be able to give a command, and immediately see the results. Second, no file editor, no IDE, none of that mess. He should be able to concentrate on playing with the environment, instead of learning the editor (and the associated problem of saving from the editor and loading into the program). You should be ready to introduce an editor, but wait until his programs get long enough that the editor becomes a programming aid, not a necessary step.
You can easily set up a .bash_profile or .xsession to launch a programming environment, and exit when it's done. That can spare him from bash. (Again, remove everything that's not an actual aid to programming at this stage!) But which environment?
Python is probably the closest thing you'll get to our old ROM BASIC. It's fast and easy, and pygame sets the stage for much fun. But without a save or list facility, Python may have some problems. I'm not aware of any way to save an entire Python state, a la Lisp, but you could probably write it based on unexec [python.org]. You can use this idea to implement a "save" command, and just use exec for "load". It's probably pretty simple to write in a kludge to save functions for listings.
The other problem with Python is that it's difficult to edit programs in the interactive mode. You can redefine functions, but you have to retype the whole thing. The one good thing about line-numbered BASIC was that you could quickly make a simple change to a routine.
So you might prefer StarLogo or the like. Many of us started on LOGO or Pilot before we got into BASIC, and I think it's a good environment. Also look at Squeak, which I think has great potential in teaching to program. If I were in your shoes, I'd probably focus on Squeak, unless you're scared of Smalltalk. StarLogo and Squeak deal with the editor issue pretty well.
You will need to provide him with some starting points for exploration. Our generation learned by typing in listings, and then modifying them. I can't really think of a better way. Programming books are too linear; they don't tend to encourage as much exploration. Certainly, have some books available, but I think that "let's play with this and see what we can do" is much, much more important than "let's proceed along these lessons in this order". I'm teaching a friend of mine how to program, and I'm always thrilled when he starts going down his own path instead of staying on my lesson plan. (Well, al
The magic moment (Score:3, Insightful)
I was born in '69. When I was 10, everyone was getting Atari 2600's. My dad steadfastly refused to get our family one. He wanted to get a more expensive computer, which would do more than just play games. We finally got a Vic20 (as many others on this subject are talking about), and, yes, we played a lot of games on it.
I learned a little about programming the thing, thanks to a local computer club and Byte magazine, but it wasn't until I wanted to write my own program for my own purposes that I really took an interest. Of course, at the time, I was getting into D&D. So, naturally, my first program was going to be a character generator.
I wrote the core of the program using the "roll 3d6 3 times and take the best score for each trait" method. I think I had just over 50 lines of code for the actual dice rolling part. I showed the code to my dad, and he said that he thought he could do it in 6 lines. *That* got my attention. So we worked on it, he introduced me to nested loops, and it worked out to be 5 lines. I was hooked. Programming has been a way of life ever since.
Later, I begged Dad for a C64. He told me that I had to run the Vic20 out of memory. It took me another year of work. The character generator took 20 minutes to load from cassette tape drive. But I finally got it over 4.5 KB in size, and Dad was good to his word. He got me a C64, a 1541, and one of the dot-matrix printers. (I never got the monitor, though.) I'm going to sell the whole kit on Ebay soon.
There are a couple of points in the story that I think are essential.
1) You *MUST* have your own motivation for learning how to program. A personal interest in the outcome and a definitive vision for how you want it to work are critical. Nothing else will motivate you to put up with the hassle of using computers.
2) Like the old saying "writers write," which means that people who will be good at journalism will already be writing, in diaries or short stories or such, "programmers program." There are people who program as their job, and there are programmers: people who want to do something specific with a computer, evaluate the options, and, if nothing satisfies them, write their own solution, no matter how small or big that winds up being.
Pr0n! (Score:5, Insightful)
There's porn in this .tar file. Here's a spec for the .tar file format. If you can write a program that extracts the .tar, you can keep the pr0n!
If you replace "pr0n" and "tarfile" with "game" and "disk", that's pretty much how I got started.
I asked what the computer was for. They told me it could be programmed. I RTFM'd, and figured out how to use the thing to "program" a game whose source code was in the form of ink spots on dead trees.
From there on, it wasn't too hard to figure out that I could make the game better by changing some of the numbers (probability of hitting a target, radius of a targeting circle, etc).
By the end of the day, I realized I was having more fun programming the thing than I ever did playing the game.
It's been 20 years now, and I'm not hooked. I could quit any day I want to. I just don't want to.
I'll own up to my sad life (Score:3, Funny)
Re:Duh (Score:3, Interesting)
Now the earliest I remember would be playing some tape based games off of my brothers Commodore 64. I don't remember the games that well, and I know my brother hated to let me use his computer, but I think it was
Re:ts2000 (Score:2)
Re:Step one (Score:4, Insightful)
Have you noticed the obfuscation (well, actually you're indicating a familiarity with aspects of it) of television? I've had the creeping dread that media entertainment is heading away from the consumers choice to the conglomerates direction of what we get and how we receive it. You think you have choices, but do you really?
It's like computers. Most desktops are GUI, thanks to Windows, and are inexplicable. There's crap I want to turn off, or change or am not even aware of 90% of the time. Sometimes I bring up task manager and start killing processes to see what they were actually doing and how necessary they were.
Most classes on computers, at the outset, do nothing to challenge thinking about why things are the way they are, it is expected the student accept it as a fact and procede. Seems like being handed a credit card at birth and not realising until you're 40 years old that you could actually save up money to buy things, rather than borrow all the time and manage debt. It's seems like there's a debt of knowledge regarding things today , some critical thinking should be a part of any training these days. One thing is certain, things change and what will be in a few years is little like what is today.
CARDIAC: The Cardboard Computer (Score:3, Informative)
Comspace Corporation
117 Engineers Drive
Hicksville, NY 11801
Phone:516-942-8191
Fax:516-942-8193
Email
Webpage (hadn't been updated for a while):
http://hometown.aol.com/comspace/ [aol.com]
As of 2003, CARDIAC was 19.95 or a plastic version (for overhead use) was 22.95 + shipping
Re:Squeak! (Score:3, Informative)