Introducing Children to Computers?
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."
My first memory of using a computer was plugging a HUGE game cartridge into the back of my family's Vic20 and being in some castle (like Dracula's Castle or some shit). It was a text adventure game that I really never mastered. I think I was about three years old.
;))
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.
Enroll them in a class. If they have the money, it's the best way. Nothing beats a trained instructor
(If s?he gets a crappy teacher though, you've wasted your money)
Le français vous intéresse?
Ohhh yea. Spend all class hunting!
I'm going to bet practically everybody else here had a very similar beginning... :-)
nothing gets a child ready for life like a game of frozen bubble. pretty penguins and crucial skills for running the pool table at the arcade.
The first memory I have is of playing wolfenstein 3d on our old 386. A couple months later, I remember playing it, with my moving around, while my friend fired and opened doors. It took practise, but we were unbeatable after that (not that the game was very hard in the first place).
Computers we're always part of my life... even in pre-school, we had 3-4 computers we could 'play' (do some pre-school math) on...
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.
Eureka Science News - automatically updated
My father had subscriptions to Atari magazines that used to come with programs in them and he would sit me down with a magazine and I would type the games straight out of the magazine to play them. It was an Atari 400 with a tape drive on it for storage (remember that loud screaming noise that sounds like it would be on an industrial song track). I was 5 or 6 at the time. Later he would teach me how to change different things and teach me what they meant.
I program for a living now and always let him know that I owe it all to him. Feels good when he comes to me with programming questions now. Kinda brings a little tear to my eye...
The Nomad
"Men of lofty genius when they are doing the least work are most active."-da Vinci
"What pieces of modern software do you think would be a good way to introduce today's kids to the world of computing?
;)
i think a keen mind and a curiousity for new things is all it takes and kids seem to have plenty of both. I don't think there's anything you need 'to do' per se...like that quote "if you build it, they will come"
if nothing else works, tell them there's porn on the internet
This sig contains repetition and redundancy.
I was about 4 when I was introduced to a computer. I spent the next several years of my life learning QBasic, tho...but let's not get caught up on stupidities, shall we? ;)
1st reply ever for me. i think
I played games at friend's house =P lamr games ^^ learn under water n stuff hehe
/ MackanZoor
Never quite have equalled that experience either...
"Talk minus action equals nothing" - Joey Shithead, D.O.A.
"Talk minus action equals
In my humble opinion, the most important thing that we need to teach children at a young age is to TYPE. Just as everyone doesn't remember learning a first language but always struggles with a second, teaching kids to type is much, much easier than teaching teenagers to type. At that stange of life, your mind is designed to soak up new information like a sponge. I learned in 1st grade, then grew up watching my peers (from other schools) struggle through intermediate school.
Electrons are free; it is moving them that becomes expensive.
I first started using computers when my dad brought home our Kaypro 4MHz 8088. I learned DOS by watching over my dad's shoulder, and then trying to play games between when I got home from school and when he got home from work.
as far as teaching programming goes, try karel the robot that's what we used in high school before learning pascal, and it made the structures seem very logical.
I was the first one in my family to be familiar with computers from the time I was first born. When I was born, we had an old Commodore machine with DOS installed. It had some fun games, including Wheel of Fortune, and a word processor, but other than, that, it wasn't that special. One fine day, my father accidentally screwed up all the filenames, so that was the end of that. I do remember the old truly *floppy* "floppy" disks with fondness. When I was around 4 or 5, my mother got an Apple PowerMac 7200 that was primarily to be for her computer graphics (she was taking a class on it at the time). My brother, who was about 10 or 11, immediately became infatuated with it, became a Mac person, and then taught me how to do many things on it. Today, I have an iMac, albeit a rather old one, and am still a complete copmuter geek, but with more experience.
My good ol' Commodore. That thing was great.
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.
Anyone remember the old Timex-Sinclair 2000 with embedded basic and the unstable 16k extension pack?...many is the night I spent learning BASIC there...anyone remember getting magazines that actually had complete programs you could could type in...in hex? Ahhhh....those were the days...then you could graduate to C64...
Typeing basic (apple II) and the Binary hex entry of small games from magazines in. This was cool as I typed in these lines of code and out popped something that was fun. I started wondering what the jiberish ment and that was how I got bitten by the programming bug.
I had a NES when I was 2 or 3. I started playing Gorillas(QBASIC game) and Lemmings when i was 4-6, i think. I didn't immediatly grasp that I could change gorillas then. It took until about 2nd or 3rd grade for me to learn just a wee bit of programming. I'm not sure what the best way to get into programming would be, though. I restarted programming on a TI-73 graphing calculator in 7th grade. It's pretty good for starting out on. If you go that route, go for a TI-83/84 silver edition. Same basic thing, but more functionality, esp. for math.
Squeak!
My first memory involves my father stepping away from our Olivetti M-24 with a CGA screen for a few minutes and me casaully navigating his Leisure Suite Larry I character into the street, only to have poor Larry run over by the taxi. Good times...
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 why I enrolled after highschool in the computer science classes in a not too remote University. I learned about Linux and BSD, became a OpenBSD fan... I managed to get through my eductaion and get a job as a programmer. I launched Java in the company that took me (and it was a big commercial success), and now... after 6 years... I quit that company. I left to become a teacher... I'll be teaching computers to high schoolers... and so the circle ends.
Ahhh...the great dumpster continuum. Many a free computer will be found there. -- sowth (748135)
I was seven - It was a new MAC L3 or whatever. My dad finally brought it home, as I had been pestering him about it for weeks.
I wanted a game installed. My father couldn't figure out how to do it. When he woke up the next morning, I had installed it and was already yelling at the screen.
Heck, I started playing around with BASIC back before there were PCs..... well, ok, there were the TRS-80 and Apple II.... I think. Memory is the second thing to go, you know.
.NET. Get a good book on the language syntax of whatever you choose to teach. Once the simple concepts are learned, and the syntax understood, it's time for deeper things, like OO abstractions, if they're still interested.
But on to what she wants to learn. Perhaps XHTML programming first? It's relatively easy, low-cost, no real tools, and almost instant gratification. Just what a common teenager likes.
Once they're through that, they can learn some scripting language or something along the lines of Java or
The cesspool just got a check and balance.
way to start on computers, as it is simple and imaginative. If you can find a PC Logo Emulator/program I'd start with that :-) and I'm sure there is one available out there.
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...
...in bed
I'm living the "digital lifestyle" because of the babe potential.
The potential has yet to be realised, however.
My three-year-old likes the web-based Sesame Street games. I was surprised how quickly he learned to use the mouse. He can double-click a shortcut and open the web page, select a game, and play.
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.
Step one: Give them a computer with a command line interface.
Step two: Introduce them to GUIs once they've got an understanding of what gets buried under billions of lines of bloated code.
A feeling of having made the same mistake before: Deja Foobar
My first computer was a Sinclair ZX81 (TS1000 here in the USA). 1K of RAM (800-odd bytes free for programs and data), a monochrome display, a membrane keyboard, a 1KHz Zilog Z80 processor... I loved it. Taught myself BASIC by reading, reading, reading... mostly simple game listings from the UK mag C&VG (Computer and Video Games). Years later in a fit of pique I took an axe to it and tossed the remnants to the winds.
I'd like to read about grownups' experiences when first being introduced to computers BY children.
Check out the Basic Stamp from Parallax. There are kits that use it to teach logic, programming, electricity/electronics, etc. Price is good (radio shack has the whole kit for $79 bucks - it's called the "What's a microcontroller" and it comes with everything you need to do a bunch of nifty experiments). User forum support is pretty good too: http://www.parallax.com/ Dan
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.
It was in 1982 that I touched a thing called "computer" for the first time in my life. It was a box used for some unknown purpose in my father's electronics company. I had to have it, and my father somehow managed to get me one - it was a beige generic apple ][ clone with 10 inch (or so) green monochrome monitor. It was just amazing - beeping, flashing screen and all! I spent most of my time playing games on the box - Lord Runner, Dig Dig Dig, Captain Goodnight, Rescue Raiders, Ultima, M&M, Drop out and numerous other titles.
And when I read the story about the Morris worm, I decided to understand this computer thing *completely* - and I think I achieved that, after doing a EE as undergrad, and compiler as master. From quantum physics to high level applications, I think I know the basic concepts, theories and practice for all things computer...
Yes, it is amusing... but one of my greatest memories ever dealt with downloading a topless picture of Cindy Crawford off of a BBS. I think it took a good 15-20 minutes to download and my brother had previously installed a program that let you view the image as it came in. Oh man it was killer.
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 worth it.
This is kind of interesting, because the first time I ever used a computer was for LOGO waaaaay back in Kindergarten. There was a class of about 20 of us and we all got in line to "timeshare" with the Apple IIe. In fact probably through 5th grade all I managed to hack on was LOGO on Macs. Of course, kids nowadays have access to computers because they are so cheap. Still, I would recommend Mac to kids these days so they don't get frustrated and experience a decent UI. If they're really into computers, some BASIC programming should do the trick.
Tandy 1000... when I was 4 or 5. And to think... if the command line (DOS) made sense to a kid back then, why are we dumbing the kids down with GUI stuff? When I have kids... learn how it works and how to control with the command line... THEN they can use the GUI.
ART on dA
This is going to be an American-geared question, but when are we going to start including computer skills in our education system? Why is it not something that we there not standards that children know when they graduate high school? And what should those standards be?
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.
Do NOT talk about children and computers
(Too many porn jokes)... Ba-dum ching! Thank you, I will be here all week. Remember to tip your waitress.
Age 3. Carmen Sandiego. The IBM PCJr rocked my socks, day after day. I still have it lying around somewhere.
Save them from a life of isolation and not getting laid...ever.
Well I don't know about you, but my first computer experience was when I was popping quarters into a video arcade when all of a sudden I was sucked into the arcade and had to battle it out with the Master Computer Program mano y mano. I even learned how to play frisbee, and ride a motorcycle while I was at it.
"Mind over matter: If you don't mind, then it doesn't matter"
... or, back in the day, it was "Hero's Quest." That old sierra game is what really sprung me into computers and programming. Played around with basic at home, and pascal in high school.
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.
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
Who doesn't like free music?
We didn't have 3.8 GHz machines that could run 200 fps on the latest fully rendered first person shooter.
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 energy they seem to possess.
Though it wasn't a computer by today's standards, it was my first real interaction with technology. I actually learned to spell using it, though turns out that those displays had a side effect... no lower case. I was in kindergarten and my teachers were suprised that I could read so well, but lost when it came to lower case letters.
10 PRINT "I AM COOL"
20 GOTO 10
I'm not yelling either, slashdot lameness filter
My dad (also a computer programmer) enrolled me in a programming class at the YMCA when I was 7 years old! He then got me a Tandy computer that plugged into the TV and used a cassette player for storage. That got me writing small programs.
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 handle it. Dust off a copy of BASIC and show the kids what you can make a computer do. It doesn't take much.
END OF LINE
LOGO is waaaaay too turtle-centric. If you really want to screw up your kid's brain, teach the 'em BASIC. I don't mean Visual Basic, either. QBASIC is the only way to go. If they learn that, they'll be stuck drinking Mountain Dew forever. ; )
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 office each month, which was much better than it is now.
DOS is (almost) gone now, but I suspect the GNU tools & BASH might be be best for kids just getting into computers. Forget Windows...they'll just use IM & surf the web. Java is far to high level, and C++ is too complicated. A few years messing around with gcc and Dr. Dobb's journal should do the trick.
I was introduced to computers when I was 28.
Kids (say, pre highschool) should not be introduced to computers, television or video games. They should read, read and read some more. But, then, after 32 years of computing, I've become a techno-curmudgeon.
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.
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.)
A feeling of having made the same mistake before: Deja Foobar
for making me want to figure out how to program. But I probably owe special thanks to Ken Arnold for writing curses and giving me a way to move things around on my terminal in a least some facsimile of what I saw in games at the arcade.
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 commercial OS should too).
There's been alot of mention of software and programming, but one of my main passions has been dissecting and rebuilding hardware. Testing all different ways they work with eachother, finding out what the benchmarks with RAM chip X with an nVidia Card, versus an ATI Card, etc. All these little tweaks that modders obsess over are one of my hobbies, and have been since I was a child. From the start, I was taking apart phones, finding out just how loud my mother's liquid cooled 500 watt towers went while she was napping, and taking apart my Tandy 1000. Or finding out that unprotecting a 5 1/4 game disc to save my games to it instead of my six pound 40MB HDD was a bad idea. All these experimentations have made my life alot more interesting over the couple decades I've been on this planet, and I plan to pick up all graveyard parts I can find to give to my daughter when she's old enough. Because taking things apart is fun. :)
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 available online to help you out, it's not susceptible to any viruses currently circulating, has the best version of Lemmings... ah, those were the days.
And tomorrow the stock exchange will be the human race
you were lucky. There were 150 of us using abacus in middle of 't road.
What more can I say. Let's face it kids today are not going to write a video game to be proud of today like they could back in the Apple/64/Atari day.
However something like mindstorms is fun and accessible. Also a good way to get your feet wet programming.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
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 grade was the only year a teacher took the initiative, and using another TI49, she gave me a list of programming flash cards from a tutorial and I REALLY learned BASIC.
After that it was 100% on my own at home on the Apple
Logo was fun enough to get me thinking about programming, but I think the 6th grade teacher who forced me to go through the flashcards at a slow pace and really do the exercises to learn basic taught me the most. When I finished the cards I was able to write a simple "galaga" like game which was really rewarding.
https://www.accountkiller.com/removal-requested
My father was into sci-fi - BIG TIME. He loved almost any movie where space was represented. I was 6 years old when he started taking me to the planetarium.
:)
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 Radio Shack. I was shocked to see how 4K could fit INSIDE the keyboard! I ran and got another geek friend of mine from across town. When the clerks (who knew about as much as we did at the time) moved off and left us alone with the basic prompt. My buddy typed in something that gave us a 'syntax error'. We couldn't make it go away so we left in a hurry, terrified that we had 'broken' it. Nonetheless, that day changed me (a networking tech/hardware fanatic) and my friend (who became a computer engineer) forever.
"...Well, there's egg and bacon; egg sausage and bacon; egg and spam; egg bacon and spam; egg bacon sausage and spam..."
my dad brought home his mac from his work, with a bunch of crazy cool games on it, can't really remember which ones, but i never got off unless kicked off. oh and HAPPY WINTER-EEN-MAS
and did the little girls who lacked daisies seem very morose...
I actually was introduced to programming at the age of 8 through using LOGO at primary school.
...in the late 70's I was hooked on a friend's TRS-80 with a funky cassette unit for saving/loading programs and data. A bit later I was hooked on another machine, this time a friend's Apple ][+.
A lot of the summer was spent at a nearby Radio Shack with my own cassette tape as I hacked up goofy things in their BASIC that was on the TRS-80 "business model", I forget the exact model number. (Yeah, that's truly nerdy. Spending a lot of your summer in Winnipeg, Canada at a Radio Shack). The guys there got to know me and I talked a couple of people into actually buying those things. Not bad for a 14 year old. So after playing with the TRS-80s all day and my friend's Apple ][+ at night I decided on the Apple in ~1980 and haven't looked back.
Taught myself the 2 BASICs Apple offered (Integer and Applesoft) and 6502 machine language. Installed a z80 card for CP/M, etc etc.
Back then it was pretty much only the geeks that had computers. Now they're just commodity items and every neighbours' kids think they're leet because they use kazaa or whatever.
So to sum it up: get the kids some educational software and a couple of good manuals. Let them learn at their own speed and they'll decide if it's right for them. Forcing them into computers will just relegate them to the throngs of Help Desk people.
Trolling is a art,
that my dad had in the garage, about 25 years ago. Then we got an apple ][, and it was off to the races.
I think todays kids should learn the same way. Hey, it worked well enough for me.
Actually, I think it was really an 'Execuport' portable teletype that my dad brought home one weekend in 1972 so he could work (he was one of the authors of Gecos.) We dialed in at a blazing 300 baud.
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) programming inventory applications on this thing called an Altair.
Games... it's always the games that hooks them in.
I became addicted to Doom and Wolfenstein back in the day and only in between playing doom did I mess around with the computer to do other things and gradually gained more and more knowledge. Also when I was much younger my dad wouldn't let me touch his computer so when I was finally around one that I could I did everything I could imagine(except that you sick bastards).
I know what's on your hard dr
"Hello Computer!"
I think it is important to start with something like PBasic instead of Java or C because it teaches the fundamentals like binary math, finite math, flow control, and what variables and instructions are without overwhelming a young mind with cruft. When you learn those core concepts first the more advanced stuff is much easier, and you're more motivated to "get into it" because you know where it's going.
Brackets contain world's first nanosig, highly magnified:[.]
I was in 3rd grade and instead of going out to recess, I stayed inside to use the teacher's computer to find out the whole 'internet' thing was all about. Got my 486 a few years later (it was old then) and gradually got newer computers then started building my own.
My uncle got himself a 286 with a color display... He had this floppy disk with pictures of nekid ladies... That's all it took for me - the desire to get as much porn as humanly possible.
It was in 1986, I was 6 years old and my dad had a 286 12mhz with 1MB of ram that he used for his business. On the weekends he would bring (lug) it home from work and let us mess around on it. He had backups of everything he needed and he had a friend who was good at computers, so he was not worried about us breaking it. I would want to play games on it like castle and sub, but he would make me go through "Learning DOS" which ran off of a 5 1/4" floppy and would save my progress. Once I completed a lesson he would allow me to play my games. I'm glad he did that because it was kind of neat being 6 years old and knowing how to edit autoexec.bat and config.sys. It must have made an impression on me because now I'm a systems administrator!
Here a Sig There a Sig Everywhere a Sig Sig...
On my block, the local 'mini-mall' consisted of a liquor store, a TV repair shop, a beauty salon, and a hobby shop (back in the infancy of D&D and Avalon Hill games ruled). I cant remember it's name, but Le Maison de Gier comes to mind (not that I speak french).
At this hobby store was a dime operated apple computer. One dime got you a few games. I managed (at age 9 or 10) to break in to the code (after watching one of the owners working on it), find where the "dime" counter was, change it, and play for free.
I did similar things to the 'lives' in many of the games. I still remember my first intro to computer RPGs... BENEATH APPLE MANOR. Loved that game...
My father was in the US Air Force and spent a lot of time working on forecasts and predictions using some rather large (for the time period) computers. I grew up looking at green-bar and punch cards, and then hearing the clickety clack of a teletype when I visited his office.
Later we were assigned overseas, and I spent even more time in the office since he was a single parent, and baby sitting wasn't afordable on his salary. All that time led to learning that computers are easy to use, and how to work with the systems to get what you want from the system. My junior high school had 2 Apple IIe computers that I learned to disassemble and reassemble, as well as code in BASIC.
Even later, the mother of a friend of mine had a job with the Corp of Engineers, and we spent a great deal of time playing a MUD on the DEC. This lead me to use my talents to start writing basic MUDs for myself.
I eventually saved up as much money as I could and purchased my first computer (Atari 800XL) and continue writing apps for my entertainment and utilities for my use. I took courses in PASCAL and BASIC in high school on a early Macintosh and quickly learned that my skills were not in graphics!
Since then I have always been involved with computers. I am now a consultant in Windows networking, as well as network design and support.
I am also active in a gaming clan and help others teach kids, toddlers and up, to be comfortable with computers.
The one thing that I have to say about kids these days is that they are so exposed to the world f computers that they are picking it up faster than we were at their age. Many are leaving high school with knowledge of systems that we had to learn about late in our careers. I had to tutor a kid in a Cisco Networking class in his Junior year of high school!
The march of technology is getting faster, and the next generation is catching on to that pace even faster than the one before.
Here I come to save the da... *thud*
I gotta get me a shorter cape.
My first "real" computer was an Atari 130XE (before that, I had the Atari 2600, and even before that, a Pong machine - I still have it getting dust at home!). .." , and... yes!! I deleted all the files in root! I was just a 9 years old kid, but that didn't freaked me out, just encouraged me to investigate and learn more.
I began copying the program listings that appeared in the Antic Magazine (any of you remember it?). I was about 6 - 8 years old at the time. Slowly, I began modding those programs, and that thing leaded me to another thing, and quickly fell in love with all about it.
Next, I made the big jump, from that 130XE, to a 80286 with COLOR SCREEN!!. Nowadays I'm a happy Oracle/perl hacker... and also have worked as a sysadmin. I think that letting your kids "try and fail", is the best way for them to learn and became interested in technology.
A quick anecdote: Doing the crossover between the Atari D.O.S., and the real DOS in my 80286 clone (well, it was really, my older brother's computer), once I wanted to delete a directory. What did I do? Well, first I delete all the files in it "del *.* boy! that's easy". But then, I saw those funny files didn't disappear ("." and ".."). So I typed "del
Simply because i want them being active and playing outdoors. Yes I have a degree in CS, but the last thing i want are my children constantly playing on the PC or sitting infront of a TV.
I understnad their importnace, but i also understand they can be abused and used in a way to foster lazyness.
Honestly, I have no better memory of my introduction to computing than Oregon Trail for the Apple II. I fondly think back on shamelessly killing hundreds of pounds of buffalo, only to bring fifteen back and have Sarah die of a cholera.
I'd mod you up if I could, sir.
I wrote my first Computer program on a Toshiba Laptop , using the GBASIC language(1995). It was a simple addition routine and I still rememeber it :)
LET a = 1
LET b = 2
LET c = a + b
PRINT c
Immediately after that I got a copy of MathCAD (I think it was version 3 or 4) and rigth away started solving my maths problems on it. That started the fascination with Computers
There is no looking back since then.
As for the question as to how Kids can learn Programming Languages, I think the biggest issue is where to start? If you start teaching them something like Visual BASIC then you right away run into the problem of teaching them how the GUI works, how to use he widgets etc. etc.
I would probably start by using something as simple as HTML.It may not be the best way but at least it gives the KID the right thing to play with.
When I was 7 I saved up for a Tandy Color Computer 2. It hooked to the TV and had a very simple basic interpreter, no hard drive, 16k of memory and not much else. I taught myself basic, wrote some silly games, but not much else. Didn't even have a way to save my code.
Later, I would play games at my mom's work, like Where in the World is Carmen Sandiego (on an old ass XT, monochrome). That was real gaming. Or on the Apples at school. Ended up with a Mac Classic at the house later on.
I didn't become a mega computer pimp until I got to do builds for a independant PC retailer at the age of 16, building 486s. Went on as a computer science major in college, but botched that like so many intelligent but aimless geeks. Now I hate computers and study music. I could be a well paid computer dork, or a penniless guitar player. Oh well... rock and roll.
-J
Fire in the sky
I recently sent a Snap Circuits set to a friend's child for his 11th birthday. He's been having great fun with it. I liked it so much i got the Pro set for myself for Xmas. My 3.5 year old daughter has been surprisingly interested in how it works. She loves to make the lights flash and the fan spin, and she's very curious about how it all works.
Snap Circuits are the equivalent of those old 100-in-1 electronics sets with the springs and wire, but with a much nicer design.
Not exactly software, but still a great way to introduce kids to computing concepts. Projects include basic gates, LED's, timer circuits, and other fun stuff.
- "When you want something with all your heart, the entire universe conspires to give it to you" -Paulo Coelho
The games were still amazing though, since I had never owned a NES or Amiga or those other gaming systems. Anyone else remember rudimentary games coded in gwbasic?
Slightly later (I think), anyone else remember Hugo's House of Horrors? Man, the first one scared me SO MUCH when I was playing it.
Commander keen was fun as well. Guh, I'm only 21 and I feel like an old man...Rambling on randomly about figments of memory of my long-ago youth...
To get my parents to stop bugging me about gaming, I also would play SuperSolvers Spellbound! and Math blaster (man I had so much fun blasting trash and building rockets by solving math problems). See look mom, I'm learning!!!
Oh yeah, and don't ever forget gorillas (written in qbasic). That game was classic! I played that endlessly...heh
So yeah, I started off with games. I wouldn't recommend that with the current generation though... They have too many games. Sit 'em down at a linux box and let 'em hack at it, that's what I'd do if I had a kid who was interesting in computers.
It started with a toaster.
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.
I'm trying to get my 12 year old brother-in-law into programming. I started programming Applesoft Basic a million years ago on my Dad's Apple IIc. Things are much more complicated nowadays.
In retrospect it seemed easier then.My little brother's main motivation seems to be making video games. I had the same fantasy when I was his age. I tried showing him perl on linux because I figured that was simple and useful. Didn't quite work out.
I got him a book called "Game Programming for Teens" for Christmas. It seems to have really caught his attention. It comes with a language called BlitzBasic. At first I thought it was silly to teach him a language that is never used by any professional programmer, but it's actually working out well. It's getting him started in the basic concepts such as loops, variables and functions and is able to give him quick rewards such as graphics and sound. If you're looking to teach a young person, I'd highly recommend it.
Jon Baudanza
Lost his slashdot account long ago..
I started teaching myself HTML almost as soon as Netscape 0.9 hit the FTP sites. The online guides were helpful, and View Source, as much then as now, was the best way to look at good and bad code and reverse-engineer it for my own purposes.
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.
Back in the olden days -- late 60's, early 70's -- my father was a programmer on IBM 360's. My first typing was done on the punchard machine; some of my first toys were those brightly-colored magtape write protect rings (I *loved* those damn things. Anyone got any to spare?). That, however, didn't get me "going" with computers; what did was a busride home with my father one day, where he explained binary to me, using a punchard. "And so, if we have a hole here, and here, but not here, that can stand for the number 7!" [We avoided discussions of BCD at the time. ;^] And it just clicked. From then, on, I've been a computer addict.
Like many other people, what got me introduced to computers was games. Specifically, my first was Star Raiders for the Atari 800. My first CRPG was Gateway to Aphasai.
Zagreus sits inside your head, Zagreus lives among the dead, Zagreus sees you in your bed and eats you in your sleep.
My first experience with computers was when I was assimilated by The Borg. I had no experience working with them before, but I found my entire body being overrun with technology. Then I began hearing the collective voices of all the members and I was instantly drawn in. Now I help introduce children to computers by assimilating them.
I first got into programming when I was about 7 years old. My dad had given me his old Epson Equily II+ (8mhz 8088 processor, 640KB RAM, dual 5.25 floppy drives, 20MB HD...it was the stuff!). It had a number of games on it. The two I remember the best are Test Drive and some wierd wanna be 3Dish pacman style game. After playing these two to death I got sick of them and found the GW-BASIC manual that came with it. It is all history from there. I am now 23 and have been programming ever since then. I still program for a living this day and credit it all to that silly ugly green monster.
Will kids today be able to do this? I don't know. What impressed me back then wouldn't impress a five year old today. There is a HUGE barrier to programming "cool" applications now. When I was in Junior High I could write LoRD modules for a BBS a friend and I ran and that would impress...you just can't do that now it seems....
Unstable Apps: Our Android Apps Don't Suck
While it might be tough to get any kid these days enthused about typing 4 pages of Basic to get a little sprit based "Game", I'd think that you might have a shot at getting a child on the right track with something like Zork II. (A WELL!!! Took me months to figure out that one) Typing is such a core skill, and you don't want someone to learn how to type in chat rooms, or email.
My first memory of playing with a computer would be experimenting with the Commodore 64 my parents bought when I was little - nothing beat a quick round of Sea Wolf on the paddles or a few frustrating rounds of that ice-block-pushing penguin game who's name evades me at the moment. I still have it in my loft somewhere.
My first memory of real computing was, after being told by the teacher that the computer (the only one that wasn't an ancient BBC or Acorn) kept a record of everything that was typed on the keyboard after a friend and I had been bashing in some pretty nasty stuff (for a six-year-old) into the word processor about our draconian headmaster. After a couple of hours work, I'd established that it did no such thing and went off smugly to play with the Lego.
Pretty damn good for a six-year-old, eh? (Apart from all you child geniuses out there who were hacking the kernel of your own personal UNIX box rather than watching Sesame Street, obviously).
Dealing with lawyers would be a lot less tedious if they all looked like Casey Novak.
Had a summer school camp that taught this.
I think games are the key. My first programming experience was after playing that example game that came with qwbasic on the fearsome amstrad 512k, bananas or whatever it was called (thow banana at other monkey without hitting building, pretty simple), but at the tender age of 7 i had limited knowledge of angles and velocity, and I pretty quickly got sick of losing. So I decided to rewrite part of the game, and made it so every throw was a hit, the game got a lot more fun after that. Further learning of BASIC ensued.
Cue to the late 90s, Ive got my first pentium PC, Quake is just the coolest game ever, and mods are starting to come out left right and center, but they dont always work like they should. So I start tinkering, trying to fix whatevers borked, a year later and Im writing mods of my own, in QuakeC. Hence I picked up some dirty scripting in C. Quake 2 - C++, same dealy.
Win2k RC's start coming out, and being oh-so-cool, I decide that installing it will be a great idea. Uh-oh, no glide/gl support in 2k for my voodoo2, whatever shall I do. There was a very dodgy hack of a driver on the net at the time, but it didnt work for me. Hence I got my feet wet in driver code and ogl coding, albeit to a very limited degree - just enough to get the hack of a driver going on my system and play glquake again.
As much as we all hate the crappy 9.x vers of windows, and as much as those old games that we used to play may be boring now, I think getting them to work gave me the motivation to spend time learning what, I didnt realise at the time, would become my future. Shove the kids on a crappy machine with crappy games that they REALLY want to play, and sooner or later theyll have to figure something out.
I was introduced to computers first with an Apple. We learned to program LOGO in our math class when I was ih jr high. Although we didnt own a computer, I used a Mac fairly frequently in high school. I went through college without using a computer much, I had one of those word processing typewriters. By the time I graduated, in 93, Windows was becoming more popular. In 1994 I asked for a computer from my parents for Christmas. They got me a Powerbook 150. A year later I bought a Performa 660CD. Then a Win95 machine. Today I use an iMac and an iBook. Never got the Apple out of my system.
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 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. 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.
I remember logo, I also remember being discouraged from learning about programming computers because I wasn't good at algebra, and wasn't good at rote memorization. I regret not learning. Its easier for people to see why they failed to learn than why they had success. You might specifically ask nonprofessionals (perhaps women in particular) what would have encouraged them, rather than asking professionals, who often had natural inclinations to take up programming anyways.
When I was about 11, I stayed up all night one night playing with Paint (or some equivalent), making backgrounds for a pie-in-the-sky side scroller I fantasized about making. I showed them to my dad the next day, who happened to be talking to one of his buddies (a programmer) at the time. He asked me if I was interested in learning to program so I could write my game. I said "yes", of course.
He brought me a learning BASIC programming book a few days later, which I proceeded to read up until it started talking about algebra, which I had not yet learned in the 5th grade. I started developing my love of programming, and two years later I took algebra and finished the book.
I never made the game, but that was how I got started.
I remember fondly while being forced to take piano lessons, the teacher had 2 Apple ][ computers. She used them as supplementry learning, like what notes are of what type, key, etc. It was good stuff. Eventually I stopped really playing the piano and just played with the computer. I also remember freezing it once and being scared out of my whits that I had broken it, eventually Open/Closed Apple-Reset saved me.
Remember, piano lessons aren't all that bad.
It's sort of wierd since I've only just now gotten back into using Unix, but my first experiences with computing were with Unix. My father had a medical practice which my mother ran and still does. They were one of the first offices in the area to use a computer for scheduling. They needed multiple terminals, so the only OS available at the time (mid 80's) was Unix. Since both my parents worked, I was brought into the office a lot and was supposedly overjoyed when allowed to bang away in the text editor part of PCN (a physician's office software, I don't know what it does).
The family has always picked up the newest popular computer technology from the time the Apple IIGS came out and I got to play with it constantly. Lego LOGO was my first introduction to programming during elementary school. The Boston Museum of Science offered classes on it and since I played with Legos at home, it made sense to learn LOGO for them. Apparently these courses aren't offered any more, especially since Legos use some graphical programming interface now. Text is easier.
To start out kids, my recommendation would be to start with programming basic or maybe a really easy web language. This way they can see the results immediately, kids love instant gratification. Lego LOGO was a great language because you could program it with simple commands and see the result NOW. I wish it were still around.
I was born into the matrix.
I got my start on computers around the age of 10. My dad got me a book on programming in QBASIC for my birthday. I think my love for computers arose out of the fact that my dad created a simple .bat file that became a games menu for all of my DOS games. It was really rather neat thinking about it. At any rate, soon after that, I was programming my own games and that itself kept me interested to keep learning more. I think showing kids GUI's and graphics...giving them the tools to make things they are interested in...games...is the way to keep the interest peaked. As I'm sure all other Slashdotters out there know, programming can really help you learn to think in a way that school can't really teach you, and for me, that helped a lot.
Probably like many, the first computer I put my hands on was an Apple ][ back in the 80's. The computer lab was filled with about 20 of those. On one day they opened a new computer lab next the the Apple ]['s. And started to fill it with this this toyish looking computers called "Macs". I kept coding on the Apple ][ since the first thing I discovered about the "macs" was you couldn't immediately start writing code on them! Macs where used mainly as typewriters.
Maybe because of the computer, or maybe not, I was in deep depression by 2nd grade. Yes, 2nd grade. You think kids dont know about death? I contemplated suicide...at 3rd grade. I wasn't sure how but I quickly learned.
Now with at least 7 different medications I am now one of "cool" smart people in highschool. I have never attempted suicide, but I'm still one fucked up person.
Just a warning to anyone giving kids their computers at 5....
Give a thirteen year old the idea and time, and he or she will teach themselves assembly language, just to get Microsoft Barney to sing "I love you. You love me. Please pay everything to Bill Geeeeeeeeee"
"The most sensible request of government we make is not, "Do something!" But "Quit it!"
My intro was wiring chips on a breadboard. It was really simple stuff, like making a counter with some LCDs, but when I studied assembly I found I had an intuitive idea of what was actually going on because I had a vague understanding of what an adder, half-adder, register, etc. actually was -- invaluable.
You can build these experiments for about ten bucks.
I'm just in it for the chicks.
QAExpress: Solid bug tracking for you. Graphs and reports for your PHB.
When I was a sophmore, a drummer in one of my bands left to study engineering in college and came home on winter break with a book on Fortran programming. I borrowed the book from him and wrote and hand simulated various problems from the book. He needed the book back the following autumn for another programming course and that was my last exposure until my second semester college freshman programming course where we learned Fortran and PL\I. the next course was PDP-11 assembly and the languages were flowing fairly heavily by then until I had learned the basics of about a dozen languages and OSes by my first year in grad school.
All that being said, I think the best language to teach kids to program in is Scheme. It has no syntax to get in the way and has all of the semantics you'd want to teach. I've taught explorer scouts using this language and it worked great.
That is all.
Kids tend to like technology but when it reaches that threshold of being too complicated they utterly turn off and look the other way.
;P). With windows, everything is hidden and functionality is expanded as you become more skilled. Linux has the tendency to be complex from the second you install it (with a few notable exceptions: Fedora Core 3(installs and runs perfectly), and SuSe 9 (also installs and runs without having to do much to it))
;) or nowadays that nice free .NET paint app. (Yes I bought my copy of photoshop and I intend on teaching my younger siblings how to use it. So far they love it :) )
Linux is great, "if" you can get them past the complexities (aka if they see the loading console they scream
As for software, in my opinion, windows has an edge over linux in that there are so many graphically oriented programs that suit kids.. KidPix for example (an old Mac app) was extremely easy to use and you could draw alot of stuff without having any experience with that app. The same goes for microsoft paint. Correct me if I'm wrong, but unles s your using wine to run mspaint on linux your stuck with GIMP and thats 'very' interesting to deal with sometimes (I prefer my copy of photoshop b/c of the interface).
Word processors come out about even, neither platform has an advantage in the UI. I havent seen any apps specifically designed for younger kids for linux, only windows. They dominate the market and this tends to flood out any potential linux apps.
The ReaderRabbit series, etc.. are very fun to play with (even with a kid) b/c its interactive, and in some cases different every time you play. This is what kids like, for things to be similar in terms of usability, and for there to be nearly no learning curve.
Once they get hooked on computer apps, it isnt too much of a stretch to expand that learning curve to higher values, aka from mspaint -> photoshop
Thats my 2 cents. The bottom line is that until linux gets its act together and hides all those 'complexities' from the average user, windows will hold the top spot for kid software/usability.
I was told I had to take something called COBOL...
Changed career directions (a couple of times), and ended up in electronics. Went to work for a little outfit in Arizona called Intel...
The rest they say is history...
Anyone else remember ChipWits? Now that was a good educational/programming game: program the little robot in a graphical flowchart language with a stack, and let it loose in the maze...
Trez cool, trez fun.
Test your net with Netalyzr
Our High School had a PDP-11. Learned BASIC by tearing apart an ASCII graphic STAR TREK game. Wrote my own instant messaging program since the sysadmin wouldn't other people use the DEC Talk program.
I make my face look like this and concerned words come out.
I was in my early teens. I went to the Rolling Meadows (Illinois) library, with my neighbor Jim, where we'd heard you used a phone to talk to the computer. Expecting something like Star Trek, we were rather disappointed that we had to use a typewriter and tv screen, and even then, the computer was *dumb!* We persevered, and learned to play all the games that out local HP2000E had to offer us.
:)
My first personal machine was an Ohio Scientific trainer, with 256 whole bytes of ram and a 6502 cpu. Twas great fun trying to make music on such a limited toy
Things are generally better these days. Kids are far more computer savvy now than they were 30 years ago, so almost anything will do. Are you hoping to teach the child how to program, or just get used to how to use the machine?
Lemon curry?
Now my family seeks my approval to de-louse their machines of (ad/mal/spy)ware. Since they are family I only charge them 60$ an hour... unless they switch to Linux in which case I offer my services for free.
A steaming cup of soykaf would be real wiz right now.
It was ham radio that got me into computers. Something about hooking my Vic20 up to my Hallicrafters HT32B, and Drake 2A to send and receive morse code was all that it took. I know people are saying there's nothing good that comes out of ham radio, but they are wrong, dead wrong. It's been a driving force in my education and my career. My kids are showing an interest in ham radio, and I hope it'll stay around for them to learn from. .mark
The year 1990, I had just joined a large manpower department. There was a computer on my desk. I didn't know anything about it and said so. The boss told me to learn fast or be fired. The local community college hooked me up with a course on DOS, Batch programing, Word Perfect, Lotus 123, and a data base. I was going to school at night and on wekends. I turned into the department computer wiz kid in about 2 years. Only the real IT folks could do more. By the way, the "computer" on my desk was a terminal to a main frame. The community college courses weren't a direct help but still they were a giant step forward.
Funny, that's one of my earlier computer memories too. That and programming BASIC on a Timex Sinclair, which my mother subsequently let my sister play with in the bathtub. My mother had, and still has, some real resentment issues with computers. I need to remember that she did this next time she wants me to repair her computer...
Denver Isuzu Suzuki
I remember we had an Apple IIci that I'd play with. My dad installed some games (Spectre, Lemmings, Lode Runner, etc) for me, and I'd sit and play those. Eventually I discovered there was more to a computer than At Ease and my games. At school, a few of us did Turtle graphics with LOGO Writer. That was a very interesting experience for a little 4th grader. We also had typing classes everyone had to take. I think that kids need to be introduced and educated atleast a small bit about computers and a fairly young age. Look at my generation compared to the one before, we grew up with computers and can figure most things out quickly, and the ones before mine can get to the point of pushing the power button, and then asking for help. Education about computers will also get rid of bad stereotypes, and just a better understanding about computers in general.
Why not show your real name instead of posting anonymously? Afraid someone will notice you are just trying to bring attention to your own post?
When I was about 15 I got my first ZX81 and started mucking about on the school's very first Apple ][.
The first thing I would say is go for an interpreted language so that the kid gets immediate feedback. Make sure it is graphic intensive.
Personally I would recommend the superb free ACSLogo for Mac OS X. This is a truly excellent free implementation - so not just turtle graphics, but also full Lispish string handling - fun with recursion, fun writing programs that write programs etc.
Mucking about with AppleScript can be quite fun too. And don't forget the Graphing calculator which can make maths a little less tedious.
I have a 19 month old son. He LOVES to type away at the keyboard, even when it's not his turn. I'm not sure if it is intrinsically interesting or his powerful hunger to mimic the adults around him. He can carry on a 1-sided conversation on a disconnected phone that is uncanny. "Hawo? Yeah. Bye-bye!" Pronunciation is a little unpolished, but his tone is spot-on.
I started programming thanks to that wonderful magazine. It had qbasic programs that I would code, and then modify.
My recommendation would be Pascal, or C++ for Windows, assuming the user has the proper train of thought for programming. Pascal would be my primary recommendation, because the syntax isn't too bad and there are lots of books out on it. However, if the child has proven to have plenty of aptitude for programming, go ahead and start him/her out on C or C++ - they'll want to get plenty of use out of their experience, I'm sure, and it'll prove to be beneficial later on.
If you want to give them an extremely basic intro, try bash shell scripting in Linux. I've intro'd a few people to scripting through that, and they enjoy making their own simple shell scripts - however, they have to be exposed to Linux and it's mechanics to really be able to use it.
As far as my introduction to computing, I did it with the Apple software with the bears.. Jeez, can't even remember what it was called. Lets not forget Oregon Trail.
"Better to be vulgar than non-existent" -Bev Henson
I've been lucky enough that the Moore's Law curve has coincided with my own wetware development. My father's alma mater college offered Saturday morning "science" classes for elementary schoolers - magnets, DC lightbulbs, springs, just playing around with mechanics/electromagnetics devices, getting to know their phenomena. As a "smart" kid, they enrolled me, getting me out of their hair, and into the "college bound" mindset. By 1977, I had used up the Saturday "science" courses, knowing about current switches firsthand (ow! ;), just as computers became "personal". I wasn't unique, and the college added a little Commodore/PET lab with a course in "computer literacy" for kids: playing games loaded from cassette. After I mastered -C, we became curious about the BASIC code we could access, kind of like the next level in the "dungeon" of games like Zork that we were playing. So they added that to our curriculum, with our babysitter^Wteacher surely cramming from a neglected graduate-school math textbook. My own personal turning point came when I wrote a 16-bit range loop around "PRINT CHR$(PEEK(I));", dumping the PC's RAM to the screen as text. I could see several instances of my program among the garbage and intelligible fragments; various symbols (including "I") were substituted with various values as my program ran, was interpreted and incremented in memory. So I got to read my computer's mind, with a very simple, yet universal programming pattern that we all still use, generations later. That epiphany locked my mind in some kind of resonance with the computer's "mind", and I've been able to get back in that "zone" ever since. I've since learned many languages (usually by trial and error), made at least a fortune, and pioneered several industries and technologies. Computers are much faster and more complex, but basically still the same inside, though evolved. That moment, which I can still visualize, of seeing my program onscreen in various instances, was the "big bang" from which my "computer life" sprang.
;).
I'd start a kid off as early as they can, with hands-on experience. I might repeat my own science intro before introducing the computer, if only to learn that it's OK to experiment, to turn failure into success by learning from consistent observation. I'd give the kid free reign on a slow, simple computer they thought of as theirs, even if sharing it with other kids. And I'd make sure that the kid had other interested, communicative kids to play with, using the computer as their toy. So they can incorporate the idea that you can try anything with a computer, it's an extension of your mind with practical constraints, and cool experiences can be shared with peers who will think you're cool for doing it. In fact, I wish I had a vintage 1977 Commodore/PET I could use to train my own kids, but I'd be worried about losing an artifact to a PBJ sandwich
--
make install -not war
It was all about number munchers. Soon after I had an Odysey 2 and my dad and I would put the little programs in. I knew from early on I loved making machines do my bidding.
"If you are a dreamer, a wisher, a liar, A hope-er, a pray-er, a magic bean buyer
I too started out writing interpreted BASIC programs for the C64 - Reversi, Chequers, even a tragic attempt at a chess program. Then, the choice was BASIC or assembler - nowadays I see no reason why kids shouldn't start out with C, which is less formidable that screwing around with
or whatever; small programs will compile almost instantly on modern hardware...and will make serious programming easier later in life. "Son, my Christmas present to you is: man gcc."
Wrote my first Basic program when I was about 9 or 10 on the Atari 800XL. The program was a simple one to make "fireworks" on the screen.
I kept playing around amateurishly until I got a hold of a TI-85 years later. A friend of mine and I wrote a full RPG with basic graphics that spanned two TI-85 calculators...had to switch calculators, after passing a character memory file, once you got half way through.
I later translated this program into Turbo Pascal in high school and knew I'd be click clacking at a keyboard for the rest of my life. After seven years as a professional programmer, I haven't stopped enjoying it yet.
After starting playing coin-op games, i was hooked. Then i just saw war games on TV. After that, i knew i had to get my hands on a computer.
Remember how clueless your parents were? Still managed to raise a geek, right?
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.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
In introducing my 2yr old to a computer, she seemed interested but quickly grew frustrated. Then we noticed she picked up crayons with her left hand. I moved the mouse to the other side and away she went. It was tough getting her off of the computer.
She really enjoyed some Winnie the Pooh games that I had on a Mac. She is 4 years old now and I attempted to introduce her to Atari 2600 this past weekend. She was not ready for that yet. Amazing how a mouse is easier to learn than an atari joystick. I never would have thought that!
Flexible bare-metal recovery for Linux/UNIX
In a box somewhere, I have a B&W pic of myself around age 4 staring in amazement at the blinkenlights of a General Electric mainframe. Give to me those buttons and knobs! I don't know what they're for, but just let me at them and I'll figure it out!
A few years later, my father started selling turn-key minis. The CRTs were cool for lunar lander, but the machines only had 3 lights and 3 switches. This was a major step backward.
LOGO is neat, but for little kids, I'd think something mechanical would be better. Instead of a graphical turtle, have a mechanical one that can be programmed with a turing-style tape that you mark with crayons, or maybe a deck of pre-marked cards.
Then, I broke down and got a Leading Edge IBM clone in the mid-80s or so, and life got a lot more interesting.
"Shared pain is lessened; shared joy is increased. Thus we refute entropy" - Spider Robinson
Nice thing about turtle graphics is you can introduce them to geometry and trig without it seeming to be like work, too. And the nice thing about guile is you can extend it as your needs grow, so if you want to get into 3D or something at some point, it shouldn't be a big deal to add that (Just write or find an interface to OpenGL.)
An added benefit of lisp is they'll learn to do pretty printing after the first time or two that they try to debug a function.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
I doubt this type of solo introduction would be effective with kids today, but starting them out with an easy language which is not very in depth, such as QB, and having the ability to produce some sort of low level game would probably help hook them (unless they are just completely uninterested).
In the end, and no matter which way they get started, it is going to boil down to their own motivation, and their wanting to learn it.
I am now a second year college student majoring in Computer Science, and program in C and C++. :)
I think my first experiences with computers would be back in 3rd grade. We had a Commodore 64 in the classroom. Also my wealthy friend had an Apple IIe system that was the ultimate to us. At that point in the game it was all command line oriented in order to do anything, which fueled everyone's desire to learn. If you didn't you only got to watch others play Ghostbusters and load runner. Then in 5th grade my school introduced a BASIC programming course over the summer, and as budding geek I joined (without a computer of my own). The major need is for a child to have a structured environment while they are just getting into the swing of things. Things only really took off once I got my AMD 386DX (33MHZ, and a sound blaster! BOOYAH!!!). That gave me my unrestricted environment to play with. I feel that since I was placed in a more structured environment first, in order to grasp the concepts and learn how not to break things. That when I finally got a system of my own I was really ready to play.
A more modern way of doing things would be to sit back and get your kid a copy of html/xml for dummies. It is a language that can grow with your child in order to build on many levels of their learning. Also it branches off into many different languages through compatibility, thus bringing them fully into the OO world that we live in today. Start them off easy, maybe even check out the local flee markets and find an old Pentium 2-3 system (or parts)w/ win98. Let them build it with you, don't let them think that this "Magic box" is overly complicated, try to be patient and give as much support and confidence as possible through every step of the process.
As for software: Mavis Beacon (or equivalent typing is a must), a good source code editor (netscape/mozzila suite has one built in that has
both OO and source modes), and a good code validate. wish I could keep going but I have people waiting on me.
My sausage tree didn't grow, does that make me a bad mommy?
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?
At the risk of sounding like a plug, you may be interested in GNU Robots. You write a program for a little robot, and set him loose in a maze. The robot must use only its program to be able to detect and pick up items (food adds to your energy, and prizes add to your score) while avoiding baddies that can do damage to you. Disclaimer: I wrote the original version of GNU Robots, but it's been in someone else's hands since 2000.
The robot programming language is in Scheme. The robot primitives are fairly easy to use, so if you help your child understand how to use the primitives and then gloss over the "tail recursion" concept (think of it like GOTO) then your child will be ready to write GNU Robots programs within a short time, and can watch his or her own robot start to navigate the maze.
As your child becomes more familiar with Scheme, he or she can write more complex GNU Robots programs. For example, the robot could keep track of where it's been, so it doesn't need to rescan an area it's been to before.
Just an idea.
My first exposure to computers and programming was on my brother's Commodore Vic20. From there I learned how I could write little programs using basic. I never got really good at basic, but I enjoyed writing stupid little quiz programs, which were really nothing more than programmable madlibs, but I was only 9 years old. :)
:)
This kept me entertained for a little while, but it wasn't long before I got distracted by coleco, so my programming was put on hold for a little while.
At around the 5th grade I started learning turtle graphics on the apples at school. They also had us playing a lot of math games on the apple IIe's. One of the most beneficial things they had us learning was typing. I learned to type in the 5th grade because of those little typing programs. I loved hearing the keys click really fast like I was some professional, so as I was learning, anytime I wanted to do something on the computer, I would find all the keys for the word I wanted to type, position my fingers, and type them all at once really fast. This worked. By the time I was a freshmen in high school, and took my first typing class, I was typing 110 wpm, faster than the teacher.
I got aquainted with applications and DOS when we bought our first PC when I was in 8th grade, an IBM Ps/2 model 25. No hard drive, it came with Microsoft Works which had a really nice tutorial program that came with it. I went through the entire thing learning all the applications that Works had, and basically became an expert in it as I started using it for school. I took a computer apps class my first year of high school that was taught in works, so I became the resident expert when the teacher didn't know the answer to something.
I got fascinated with and built up my patience when my cousin and I spent an entire night trying to crack one of my Sierra games that I had lost the manual on, and thus the license key. We had no idea what we were doing, failed miserably, but we had a great time exploring all the files in the program and trying to figure out what they did. This I think is what sparked my interest in spending a lot of time to solve a problem.
I came back to programming when I was 15 and taught myself Pascal. I wanted to learn how to program on the PC, and I wanted to learn something other than basic. My cousin had been taking a course in Pascal in college, so I thought that was the future.
Around this same time (realizing I didn't have a social life) my computer interest was noted by some marketing list (I had several computer mag subscriptiosn) and I got to pilot the Prodigy online service. This eventually led me to find BBSes, and not having a social life, BBSes were the thing for me. I got really into BBSing, started running my own, and eventually started learning to write mods for my own BBS. Eventually I finally bought my own computer, a 486sx25.
From there, I took AP computer science, which was taught in pascal, so I naturally aced it. Then went to computer science in college, which is where I was introduced to Linux and C. Got my first IT job while still in high school as a PC support specialist (shortly after I bought my first PC for myself, I started learning to build them, hence the specialist job), then once I got to college became an assistant unix admin at a local ISP.
I eventually got back to programming after I got tired of being a firefighter as a sysadmin, and got my first programming job doing Delphi, which is basically object oriented Pascal. A year later, offered a job to learn Java. Several years later, still doing java.
The end.
Heh-heh. That should be a topic almost everybody has their say on ;)
;) The plotter ran out of ink soon with no hope of replacement.. the single sided single density external floppy drive about the size of the "computer" itself broke down.. but I learned to use sin and cos to draw a circle, to write recursive code and lots of small things that now definitely have evolved into something in my head that lets me make my living as a Java programmer and software designer.
Anyways - being a kid from the Eastern Europe (born in '79 so the iron curtain was not to be pulled up for another 8-9-10 years) I had quite a peculiar way of getting comfy with computers. I probably got quite lucky - my parents were computer specialists at our Tallinn Technical University (called Tallinn Institute of Polytechnics back then) which enabled them to, lo and behold, sometimes even drag some hardware home. The very first computer we had at home was Macintosh SE. The second computer I remember having on the desk in their bedroom was a Robotron - I don't even remember (guess I even never knew it) what was it a clone of. Nothing peculiar there, it ran some kind of DOS and I had my share of games there - Xonix, Sopwith, a Tetris clone thrown together by some guy from the same University. However, they used it for some project my mother was doing for some educational organization in FoxBase and I tried some data access and on-screen forms, probably wrote my first batch files too. If I remember at least somewhat correctly, I was about 8 or 9 at that time.
About the same time (right after they returned that Robotron) my mom and two of her colleagues somehow got hired to develop a simple scheduler/CRM for Finnish dentists. As the end users were supposed to use Macs, we had an absolutely 100% bona fide Macintosh SE for a year or two. This was probably the time I got my first shot at programming - MacOS Classic (version 6 at the time) had an application called HyperCard, created for storing card-based information or something like that. Quite peculiar now that I think back on it but it also featured a programming (or more like scripting) language called HyperTalk that was friendly enough to use constructs quite similar to English. I wrote some small programs that were quite fun - I could draw on the screen and use some sprite-like animations that I possibly would have had a harder time with in QBasic et al in DOS.
And then dawned one of the best days of my life - the dude responsible for the Finnish side of that aforementioned project found that he has a completely spare "computer" laying in his den. A Casio FP-200 (you can find some information here. I absolutely loved it. It was programmable, it had a freakin' graphical PLOTTER and it was mine. MINE. Mine to hack and mine to break. Not that it was great fun to hack it - no way to do anything with it but type BASIC code into its 8K memory. It also had a user manual with some sample programs and games. I remember typing about 500 lines of code into the machine, line by line, not knowing one bit about BASIC but being eager to learn. And learn I did - a few months later I coded a small game into it with help from my father, it was turn-based, had monsters, keys and locks and treasures and was lame than hell, but it was mine
If I was teaching someone programming, I would use Providex Basic. It is multiplatform. It is both procedure and object oriented. It is easy to write rudimentary projects. It uses a blend of common syntax from basic and C. Plus it is used in some large business applications. Thirty day demos are freely downloadable from pvx.com, and they are easily reinstalled by using a shell script specifically so beginning programmers can learn it. Plus there is a large user base available via the providex "list" to help beginners.
A whip, handcuffs, and chains
no joke intended
My father used to make 104 dollars a week working at a cleaners in 1983. It was right around then when my and my brother asked him for a commadore 64. It was 200 dollars. At first he bought us the unit, then we found out we could not do anything with it because we needed a tape or floppy drive. Dad bought the tape drive, waste of money, then he bought us the floppy drive and monitor for the C64. Each of those were 200 dollars also. Things were fun, but then he bought us the 300 baud modem. We were downloading games for the C64 day and night from local BBS systems! We then joined C-TUG. I also played around with Paper Clip and did a bit of basic programming. Besides moving sprites around I wrote a random number generator for the Lotto (California). Memories ....
Back in the good ol'e days I was swayed with getting a new Atari 800 game as long as I wrote some kind of utility or application that did something new and neat each time.
It encouraged me to dig around through masses of 6502 Assembly books and Basic manuals to learn how to optimize code and use masses of DATA statements versus coding in 6502 Assembly.
The process started anew when I was introduced to my fathers PC-XT (with its 6.5 lb gun metal gray keyboard). I had to write programs first in DOS Basic and then learn the deft art of floppy swaps when I got my hands on the Lattice C86 Compiler.
To this day, I do the same thing with my friends kids. I asked them to write an application (it's hard to imagine a 13 year old writing in C/C++ but..) that does X, Y and Z and offer to help them if they get stuck. So far it's working great. Each time they write an app that works and properly debug and comment it (so we can see they didn't just rip code from an example site) they get rewarded.
These days the rewards are hard to come by as they know more torrent/apps sites than I do but we found a way with eq2 and warcraft. I will offer to pay for a 1 month card for them to use wow or eq2 in return for seeing some progress towards some app they are working on.
Now if only there was a 64-bit ASM programming book for teenagers out there....
Why do overlook and oversee mean opposite things?
Just givem San Andreas and they'll be set..
This comment does not represent the views or opinions of the user.
I remember that I saw an ad for the Commodore VIC20 in the summer of 1983, and I showed it to my father and said, "Dad, I want a VIC20". He said, "Okay, you can have a computer, but first you'll learn how it works".
A few weeks later I got the first module of some course on TTL for my birthday, consisting of a circuit board, a few LEDs, capacitors, and resistors, and (most importantly) four NAND gates on a 7400 chip. I had to put it together from those pieces (which was a lot of fun; I had tinkered with electronics before, so that this part wasn't a problem).
Every week, a new module appeared, covering issues like Karnaugh maps, JK flip-flops, binary counters, etc., eventually leading up to a module built around a simple ALU that appeared a few weeks before Xmas. In other words, I had a pretty good idea how a computer worked before I'd ever seen one.
I'll be eternally grateful to my father for taking this approach. (In case you're wondering, he's a carpenter; he always wanted to be an electrical engineer but had to take over his father's woodworking shop for reasons beyond his control).
As for the question of how to introduce kids to programming these days, I still think it's a good idea to have kids tinker with TTL chips so they won't be tempted to think of a computer as a black box. When it comes to actual programming, I would propose a dual approach consisting of a high-level language (e.g., Python) plus a low-level one (MIX would be great, but C seems more realistic).
That's probably where we all started. Some of us eventually moved to do something productive with the computer. I haven't! Ooh, that and that silly programming turtle. You could program the turtle to draw pictures on the screen. It made me feel leet :)
Dad bought it (with mom rolling her eyes in the background, no doubt) on January 23, 1981. I grew up with an acoustic-coupled 300 baud modem, programs on cassette tapes, and a greenscreen Zenith monitor. I still remember a high school-age cousin dropping by from Washington State back in '84 who monopolized the whole thing for a weekend; he went on to code the calculator (among other things) in Windows 3.x and retired fully burnt at the age of 29.
I piddled around in BASIC when I was little, and learned to touchtype pretty damn quick. Playing brickout with the paddle was the coolest thing ever. I grew out of it by middle school, when the 386sx/16 was hot shit for games like Wolfenstein and the Wing Commander series, and turned into a music geek in high school, culminating in a BM in French horn performance... no comp sci for me. Now I look at my friends with $60k gov't contracting jobs, and me with my $23k bike parts distributor job, and weep profusely.
The pain was excruciating and the scarring is likely permanent, but that just means it's working.
I got interested in computers because I was a lonely, isolated kid who got picked on in social situations. You want to encourage a kid to use computers? Encourage their classmates to torment them! That'll keep'em from playing outside and getting unhealthy tans!
I remember learning a bit of Logo in the old days. I liked it because of the turtle, it looked cute lol. Anyway here's the deal:
Introduce them to Flash and Actionscript (Use advanced mode!)
In other words, make Flash the new "LOGO". Teach them to program mini-games using Flash (like "punch the monkey!" stuff).
You could also teach them basic HTML. It's easy when you start with the basics.
Don't teach them chat, or web browsing. They ALREADY know that =P
I probably started later with computers than most people on /. ... I didn't get one until I was in 6th grade, but I was instantly taken with it.
:-)
I had an interest in programming even before getting the computer, thanks to BASIC programs being published in Boy's Life magazine, of all places.
The program that really sparked my interest in computers was Dr. Sbaitso, which used to come with Sound Blaster sound cards... it was a sorta Eliza program you could talk to, but the "magic" of Creative's version was that it actually spoke to you. To me, the mystery of how a computer could carry on a conversation (as simple as it was) intrigued me quite a bit.
Now, 11 years later, I'm a grad student at Cornell doing my master's project in AI with natural language processing... so, there must be a connection there
50 programming steps max! Spent many an hour of math study hall in 1984 with the high school's single computing resource - a TI-57 chained to the study hall desk.
At first I spent my hard earned paper route money for a programming module for my Atari, However it sucked the big one, and only had room for like 6 lines. BOOO! what a rip off!
A few years later I got an Apple II+ , and by golly that was a REAL computer. I learned every stinkin peek & poke on that puppy and actally got to make genuine programs, and loved every minute of it.
Over the years I've used and taught on over a dozen languages, what I've seen that seems to matter most is the visual component.
I'd suggest starting them out with Notepad or GEdit, a web browser, a quick explanation of a search engine, and a couple of 'seed' links to html and javascript sites.
You would be surprised how non-trival it is just to write pong in javascript. The visual animation of the layer with the image, getting the first horizontal/vertical movement, programming for paddles, english, collision detection, scoring and storing those scores involve just about every skill necessary to understand the basics of programming. And that extensibile knowledge as opposed to 'hello world' examples, IMHO is priceless. Plan to work from a model of the desired behavior back to the code, not from the code to the behavior. Syntax, style, etc. can come later.
"Can there be a Klein bottle that is an efficient and effective beer pitcher?"
Way back in 1980something, I pestered my parents for a computer, and in their infinite wisdom, they chose an Amstrad CPC 6128 with tv tuner and built in disk drive. I remember coming home one day from school to find them having endless trouble copying the CP/M discs that the guy who sold them the computer had assured them was essential and must never be erased... then came type-in programmes, and the time Amstrad Action gave away an assembler. As for introducing kids to computers, it strikes me as something they'll have a natural interest in if they're born now, but if they don't, then web sites about their favourite cartoons or other things they're interested in seem like the most obvious way of introducing youngsters to both the computer and this here interweb doohickey, and it's content that's revelant to them and usuable to them. On the other hand, if http://www.boohbah.com/zone.html is anything to go by, it might also introduce them to mind altering drugs.
I suppose introducing children to computers is better than NAMBLA.
All of the images are ascii. ZZT is pretty simple, but Megazeux allows for more advanced programs.
It's certainly a fun way to learn!
Drag a Label onto the form;
Drag a Timer onto the form;
Double click the timer to open the code editor and type: Label1.Caption := TimeToStr(now);
Hit F9
:)
That's it, not that hard. Anyway, I first started "using" computers long before that, but only for gaming purposes. Then I got a SNES and suddenly all the games I likes seemed crappy
And make sure while they use Linux you explain to them how lots of big coporations such as Sun and MS paid $$$ to develop the technology that you now enjoy in cloned form for free.
Can you say - flamebait? I knew that you could...got turned off pretty sharpish at one point. I remember fiddling with BASIC (it was a C64), and one of the parameters I passed to LOAD gave an 'Illegal argument' message or something. I'd seen War Games before this happened, and with me doing something 'illegal', I imagined it wouldn't be long until the police would come a knocking. The computer remained powered off for a few days after... The police never did show up.
My first experience with computers was in the math lab in Jr. High. A huge grey box with flashing lights, no monitor and i/o through papertape, card, or keyboard. Spent weeks writing a basic program to perform basic calculations but I was hooked. Progressed through the years on the bleeding edge, TRS-80, IBM PCjr ... Somewhere in there I no longer got beat up going home from the math lab, and being a geek helped me to earn a living. I have three children, 2 have had there own personal computers since they were about 6 or 7. My oldest lived with his mother in a virtual computing desert, he was unable to accept his geekiness and is currently a beach bum in So Cal. My middle child has been computing for 6 years, and is beginning to embrace her geekiness, experimenting, learning what those little green city things are, and what they do. My youngest is just really starting to get going in computing, although she is comfortable connecting and disconnecting peripherals, and installing programs. I believe that computers are an excellent tool and in order to succeed children need an understanding of their capabilities. Not just be a "user" all of their life. I think having the computers and being attached to a network, Internet etc. has been an invaluable tool to my family, and would recommend it to anyone.
When we were young, these horseless carriages were mystery and we were drawn to them like...
*bleh*
What the fuck is this?
Can't you see the computers are already a commondity. To draw your kid to computer science today is the same as forcing them to learn combustion engines hundred years ago.
I don't care how my car works. When (if ever) I get a new profession, I don't care how my computer works either.
Just let the kid live and find his ambition. I'd nudge my kid at quatum physics, biology and gene technology thou....
Bot Assisted Blogging
While it is important for young children to learn how to use computers, be wary of starting too soon. Toddlers have a lot to learn and they are learning new interfaces all the time. Drawing, painting, crafts (cutting and folding paper), musical instruments, tools, and writing. Make sure that learning computers is *in addition to* -- and not at the expense of -- these other skills.
1987 my old man bought an Apple IIE (no hard drive, just a couple of 5.25").
* We spent hours doing arithmetic using some Math shoot-em-left "game". Learning is not always fun.
* Our school projects were typed up in MultiScribe. The only thing good about it was the Chaucer font. The attached Epson LX-86 was very noisy and very slow, but it worked for a good 10 years.
* WavyNavy and Sabotage were a good way to unwind. After that, it was a 386, Basic, Wolfenstein, etc.
I had an old VTECH toy laptop, with a black-and-white screen and a little ball mouse. On it were some games, some "learning programs", a word processor, and a full BASIC interpreter. It was kid-safe and used good old C batteries, but it was also a great introduction to computing. You can get the modern equivalent at this site, but they appear to have dropped the BASIC functionality, which makes it relatively useless. You can probably find a used one on eBay, though...
My Systems
I've started messing around with computers when I was about 3 years old, on a Spectrum. My dad bought one, took some programming courses himself, and I learned how to load games into it (LOAD "" eheheh :D) and wait 5 minutes for them to load :P
:P) when I was 8...
:)), and would open exe files from games in DOS's editor, and wonder how intelligent the guys were in order to program using those silly characters and faces. I had noone to talk about this, so that misconception stayed in my mind for quite a while... At that time, I could only program using QBASIC which was more or less similar to the only programming language I knew at the time
:)
My start in programming was when I learned how to read and write (and maybe before) I took my dad's books and I would spend hours typing the example programs on the Spectrum. Sometimes they would work, sometimes they wouldn't (although some books actually had mistakes on the programs). The first decent program I actually remember programming was a calculator program (with a menu with +-*/ as choices
Then, when I was 8 too, I got a PC (386, 12/25 MHz - turbo button rules ehehe
Later (when I was 11), I met a programmer who was a friend of my parents, who got me a copy of Visual Basic 3.0 for windows 3.1, and I remember the first decent program I made was something for converting measures in between them (distances, temperatures, etc).
The cool point was when I was 13 years old, my father showed me some pascal books, and I read and read them, learning alone how to program in the first "decent" language that I saw. I also had a C book at the time, but as soon as I got to the part where they talked about #define as using macros I would always quit. Macro just seemed a too complicated word for me at the time
Later, I actually could understand how C worked, and since then (I'm 21 now and taking a computer engineering ), C has remained my favorite language till now, and I think it will... By the way, what really got me into serious programming were Denthor's tutorials on Demo programming. Thanks to it, I learned how devising an algorithm was like, the importance of code optimization, things about computer architectures, assembly language, and much more...
So, my point is - I think that if a child really has the knack for computers, he/she will reveal it naturally! Now for introducing a child to the user world of computing, I guess you would just start by introducing her to some games, and then start showing her normal software like word processors, spreadsheets as soon as they know some maths, etc... The rest will come naturally, and the internet will make it much vital for a child to learn things like file management (the files the child receives from friends for example)! Of course, parental guidance will always be needed, or the child will probably stick to always doing the same things, unless it is a curious child
The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
I was rendering spheres on planes. It took 10 minutes to render a 640x480 image. 3D has gotten very far since then.
I was given a 386 when I was about 10. Windows 3.1, 2 mb ram, and no networking, and I loved it. The thrill of having a computer all my own was great, and a lot of what got me hooked. It also helped to have sweet games like Zork. I'm only 18, but I still say that kids today don't know what they are missing by insisting on 3d graphics and sounds.
I say, give a kid an older computer all their own to play with. If they break it, try to get them to fix it on their own. As their confidence grows, they will be able to break bigger things, but also to fix bigger things. They may rape an install sometimes, but then you just have to walk them through an OS install, which is a good thing to know anyway.
Did anyone else love the "Usborne guide to"s? Maybe one of these on Ruby would be good for kids :)
Jared
I got sucked into programming when I was about 9 years old by reading some crazy book series (I can't remember the name, I got them at a HamFest with my Dad in 1989 or so) that was like those "Choose Your Own Adventure" books (if you fight the dragon, turn to page 120. If you try to run away, turn to page 67), except that it had BASIC programs in it that use used to solve little mysteries.
So you'd type in this BASIC program verbatim and run it, and it would print out some little ASCII map of a room or dungeon or something so you'd know where to go in the book. It was great fun, and I'd already been playing video games for years on my Atari 5200 and Mac Classic (ah, Dark Castle, those were the days), but this lead me into programming.
By the time I was 11 or 12, I was writing all sorts of stuff using HyperCard (simple encrypter/decrypters, password protected diary....err, journal (with intrusion detection! It would write to a file if my little brother tried to get into it with the wrong password), something that would print out my age in seconds/minutes/hours/days/etc every second)). Hypercard was awesome because you could do a LOT with it (honest!), and it was sort of OO in that you could have buttons that performed actions on other buttons, changed the state of things (as a matter of fact, it's just like Access 2003, except 13 years beforehand. Stupid Access).
Oh yeah, and I remember being in 5th grade and doing the old "10 PRINT "Bob is Gay!" 20 GOTO 10" routine on the old Apple ][e machines they had at school, and then walk away. That was classic.
With the first link, the chain is forged.
made programs called 'Creative Writer' and 'Fine Artist'. They were programs which were themed around a house. You could explore this house and it had various applications that you could run, like a card maker and drawing stuff. Creative writer was interesting and let you have fun, like it would scan the doc for words which had pictures for (like foot would have a footprint) and it would swap the pictures in. The microsoft page for it redirects to zoo tycoon 2, but you might be able to find it somewhere.
I'm 21 now...
I wasn't interested much in computers until I was about 9 or 10. I first touched LOGO when I was about 6 or 7. Got into it... but didn't quite turn me into a geek.
I got a VTECH "Pre-computer power pad" (or some name similar) when I was about 10 or 11. It had a limited version of BASIC... and I got pretty into that.... lets just say I had memory problems pretty quick with that thing.
Then I started playing with my dad's 1980's IBM PC (the original fun-machine). Yes, I got into programming on a machine much older than me. That eventually died.
Tinkered a bit with Apple Script for a while, and got into web development.
Now I hack up some Mozilla fun every so often... web developer, and many other geeky ventures.
I prefer Mac OS X, but love Linux as well. Tolerate windows.
My dad was a Programmer/Analyst.
He bought a TI994A (remember those?) and I played with it. I started learning Basic, and then Assembly.
Later, my dad brought an old machine from work, it was an 8088, green screen with a 4 mb memory card (it was about 12 inches long and covered with sockets and memory chips.) The hard drive was about 3 inches thick and had 10 mb capacity.
I even had an acustic modem.
I learned MS Basic, and wrote several minor programs.
Later, my friend bought an Atari 1040ST, and we had loads of fun...
I was 12 when I got the old 8088.
My son, while not into programming, he is into art, and digital graphics. I don't really want to do it, but Movie Maker just isn't enough anymore. He is going to need some real "art" programs soon...and he will go from there...
Everyone will be different in their needs and wants when it comes to computers...so supply them with what they like, and their skills on the computer and in the online world will develop just fine.
--E--
Lets face it, times have changed.
When we started with computers, GUI didn't even exist, and it was rather simple to peck in a hello world or guess my number program in a couple of lines of Basic.
Now GUI is the norm, and only the "Geeks" have a use for text based interfaces.
So I say abandon any attempt at teaching anyone new to programming anything that is going to yield a command line program (at the onset at least). The results will be anti-climactic and discouraging at best.
I would start off with something like REALbasic which can very easily create those same hello world or guess my number type games only with a new GUI face. And the amount of code that you have to type still remains about the same. REALbasic has the added bonus that it is an object oriented language that can be used to teach techniques that will transfer to other languages in the future.
You don't want to throw a kid who has never seen a command line in his life into a situation where the product of his efforts is only usable in this foreign environment. Get him up and running in an environment that is familiar, and show him how easy it is to create useful tools for that environment.
A friend in high school had an HP-45 and his dad had an HP-65 programmable calculator. This got me interested in computers. I bought an HP-25 at the end of sophomore year, learned to program (49 steps of assembly language memory!) and then moved upward.
/.ers excepted, most people don't ever learn to program these days. In the olden days programming was all you could do.
Our high school also had a "math lab" with a paper teletype with 110 baud dial-up time-share access to the local university's computers (a Dec 10 and a CDC 6600/6400). A bunch of us proto-geeks spent before-school and after-school time mucking about on this. Using the TTY and a bit of help from another friend, I learned BASIC. When I outgrew BASIC, I latched on to APL which was a seriously cool language. Some of my friends had computers (if a 6502 with 16k of RAM, dual cassette tape drives, can be considered a computer).
I think "learning computers" means something very very different these days. In the early days, everything was programming and nobody used canned applications. If you wanted a computer to anything, you wrote the program yourself. Moreover, the operating systems of that day (especially for hobbyist systems) were extremely simple. One could understand what everything did both in software and in hardware.
These days, "learning computers" means more learning to use 3rd-party applications and learning to manage the OS. I'd wager that,
Two wrongs don't make a right, but three lefts do.
First of all, you could start with Lego Mindstorms (which is a little humorous as it's so close to LOGO [by name, at least]). This seems like a good hands-on way for kinds to learn some programming with tangible effect.
There is also a teaching version of Scheme (somewhat like lisp). See the FAQ for the "Teach Scheme" project here.
There is also a list of softwrae to use in teaching programming here, but I've not looked it over and am not sure how useful it is.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
As a father myself of two adorable li'l monsters, I've decided that they won't play with computers at all until later in their childhood. Computers and TV both seem to encourage a lot of button-pushing, while I'd rather they learn to think and make things in their world. Putting together a unix-alike will be child's play once their little brains are appropriately wired to see the world as the great big machine it is.
A strange as that may sound to some, PHP is the "new" basic being taught at many community (and 4 year?) colleges.
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.
Ona 5 1/4" floppy. Orginially for the Apple IIe, but somehow converted to work on an IBM XT compatiable. It was standard fair when I was in grade school and even into middle school. Yeah, this is off topic, but. I hadn't seen anything about LOGO in years...
"The problem with socialism is eventually you run out of other people's money" - Thatcher.
I bet by the time they are finished college they will get lots of computer time doing papers, etc. And I would minimize time on a computer. So I would teach them to type. And spend some time showing them fun websites for kids, and help them with school research projects.
I would rather take the kids to the snow, play a game with them, go to the park, show them a physics demonstration, build a computer with them, solve a jigsaw puzzle, play a puzzle computer game, etc.
In other words, teach them to think with their minds and use their hands.
WhatMeWorry
This will show my age, but the first kid in the neighborhood who had a computer was someone whose father owned a business and got an IMSAI 8080. Ten minutes of flipping switches let us load a boostrap casette, which let us load the OS cassette, which let us load the Collosal Cave cassette, which would typically run for about 15 minutes before static electricity would crash the whole darn thing.
;^)
When TRS-80 model 1 started showing up in the local Radio Shacks during Jr. High and High School, it was great fun to do
10 PRINT "BOB IS A WEENIE"
20 GOTO 10
and even better when you knew the trick to prevent the Break key from working (which I've long forgotten)
In high school, I was lucky enough to join the Apprentice Program Experimental School, a weekend program run out of this guy's basement crammed with 1960's electronics, including a full recording studio. During the '80s computers became a stronger focus, including the donation of an ancient, core-memory-based Data General computer that took an entire rack, without any permanent storage other than paper tape (don't put the mylar in the tape punch on the TTY!).
Meanwhile, the school dropped the use of time sharing (remind me to tell you about early hackage someday), and began the use of a PDP-11/03 with four users on MUBAS (Multi-User basic) or one on RT-11-based Fortran. More hackage ensued there. The business dept. of the school also had Cobol via punch cards sent overnight to the business office.
All in all, I thought I was pretty lucky. Right after I graduated, they brought in about 100 Apple II's, and I felt ripped off
My own kids took to computers pretty much along with reading (ages 3-4) and video games. At around 10, my younger son was working on Inform (and now Flash), at 15 my older son has already taken AP CS (first year of Java).
Frankly, I'd start 'em with PowerPoint! There's enough automation, animation, etc. to get them started, and the slide transitions and sound effects will get them hooked.
(On the other hand, I hate the way PowerPoint is dumbing down kids' thinking, so there's no need to flame over that)
Design for Use, not Construction!
Squeak is a fairly popular approach at the moment. I don't know of any schools that use it directly, but I've run into free camps that promote it. Squeak is a platform-independent Smalltalk, but when teachers say "Squeak" they mean the e-toys framework for building little interactive applets. IMO it's an interesting little system, but fairly awkward to pick up.
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.
To begin with, I don't think "the programming life" has much to do with "computers" these days to most folks. To most people, "getting into computers" mostly means being on the Internet. If we use that definition, it's very easy to get children "into computers". There are tons of safe sites with easy-to-learn games such as Playhousedisney.com, Noggin.com, Nick.com, PBS.com, Neopets.com, so on and so forth. Once a child can read, they're able to use a computer for things like games and chat.
Times have changed from when a lot of we now 30-something geeks were teenagers. Then, "messing around with computers" was nerdiness, but now it's necessary. People who don't have email addresses or chat handles are near-Luddites. Everyone laughs at the (apocryphal) stories of someone's grandmother calling in to a tech support line asking about the nice cupholder that came with her computer (CD/DVD drive).
So, basically there is no special geek "computer culture" anymore other than people working on Open-Source projects. Even the Linux community is pretty much mainstream now thanks to SCO litigation and IBM marketing. Pretty much every kid in an industrialized nation has access to computers and that technology now. Sure, there are people too poor to buy a computer or have internet access... but there are people too poor to buy a TV, a phone, or food. When an almost top-of-the-line computer is available for $400 or so, most people can buy one as a present for a major holiday.
So, what's my point? Beats the hell of me. If I ever have a child, I will encourge him/her to "build stuff" from simple components. Those components may be LEGOs, or relays, or transistors & resistors, or ICs, or lines of code.
Well I'd have to say I was probably 2 or 3, my dad used to just sit me down at the computer and let me play games and such. We had DOS and this little menu program which you could use to select programs so even for a little kid it wasn't too hard to understand. I got my first computer around 7 or 8 which was a 386 but soon after someone decided to stick a CD into the 5.25" drive and essentially rendered it useless and then I got a 486 33mhz. That was probably my first computer which got some real use, playing games of course.
After that I had a 200mhz MMX PPro, a 333mhz PII, a 700mhz (later upgraded to 800mhz after some overclocking-related-accidents) and then after a lightning strike I got a dual 733mhz. That is the computer which I first put linux on and learned the most, I was around 13 or 14 at the time.
I'm 18 now so this wasn't exactly decades ago or anything, but it was my start. I spent most of my earlier years on games, but always wanted to learn more, and so I did. Who knows what the future beholds...
If you don't want someone to copy something, don't give it to anyone.
but lets just forget that MS infringed on apples IP that apple copied from xerox
the differance between copied and infringed is that when jobs looked at xeroxs PARC os(es maybe) they told him xerox didn't care about the technology because they were in the copier business.
there is nothing new under the sun. meaningles meaningles everything is meaningles
sometimes i have to respond to flamebait
"He's a real midnight golfer"
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.
My early experience with computers was terrible at best. I was allowed to mess around with proprietary dummy terminals and other systems that have no modern legacy. I had a computer class in 1st grade, 1984, and I think the system I was on was a TRaSh-80 of some sort. My uncle let me borrow a TRS-80 BL2 for a while, but I barely learned anything from it. A book of basic programs isn't a textbook.
In 3rd grade, I had another class, where I used Apple ][ systems, and occasionally the Apple ][ GS by the teacher's desk. Learned nothing from Truck Driver, Number Munchers, or Carmen Sandiego. I still can't remember how to reboot an Apple from the keyboard. So much for school. In 9th grade, I had a communication technology class, but we did little but mess with a plotter and Car Builder. In 10th grade, I had a computer class with Win3fW systems, and I learned how to use Excel... not that I can remember any of the cell codes. In 12th grade, I was finally permitted to take Electronics. TWO. Not Electronics 1! The entire class failed. The teacher retired (but should have been fired).
I got my first computer in October of 1998. An AMD K6-2 300, Win98, 32MB of ram, a 2MB 2D video card, and a 56K modem. I've learned everything I know about computers since then, on my own, and most of that was before Wikipedia and Google. Learning by doing is easily the best, if you have access to decent equipment, and a teacher/geek/friend who isn't a damn moron to help you out.
I dunno, I'm kinda rambling. In summary, my entire contact with computers before actually owning one taught me next to nothing about them. If you want to teach a kid, give them an OS they can't break, and a straightforward GUI without a special theme. Some people freak out when you change the color scheme on their system. "What happened to Windows?!" Rolleyes.
Change is good, but not in a wallet.
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 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:
It all started with a C64. I remember typing my first program:t ever] program"
:) Then my dad began purchasing RUN magazine. It had these cool programs that you could type (and with automatic PROOFREADER (TM)!), and then save them. Voila! Instant games!
10 PRINT "[CTRL-2]This is my [CTRL-3]F[CTRL-4]I[CTRL-5]R[CTRL-6]S[CTRL-7]T[wha
Sorta hello-world, but with colors
Then I learned the basics of machine language programming (i was 10 by then), and I remember cracking the strip poker images ^^;;;. XOR encryption, heheheh. *AHEM* anyway...
Then I remember this "bulletin boards" thingy. There was one game written in TurboPascal. There I learned to use the ";" thingy to end lines.
The rest is history.
So I could recommend you using anything related games to teach the kids. Hey there's this Adventure Game toolkit... could work.
I was probably a late bloomer compared to everyone else. I was around 10 or 11 and my dad let me keep the Commodore 64 when I moved out with my mom (divorce). The best part though was he kept up his subscription to RUN magazine (C64 mag) in my name and address.
Just like others have mentioned here with Contact 3-2-1, RUN also had a program at the end of each issue (BASIC) that I would type in to see what it would do; then I'd change the code and see what that did.
Sad part is, I had nothing but my C64 and some Apple stuff all the way up through High School. So when I started as a freshman in College I didn't even know what a compiler was ('run' just ran my code) or how to add/remove PCI cards (while it appeared that everyone else did).
Now with kids of my own I'm wondering how I should get them involved. For now they just have educational games but at some point I may try and teach them some programming (but honestly I don't think they'll be interested).
With that being said, I agree with another poster that said you can't force it, they're either in to it or not. All you can do is expose them to it.
I first started to tinker with computers on my step-brother's zx80 at about 6 years of age. Then used an Apple IIe at school a few years later, then a Coleco Adam. After abandoning the Coleco as useless I was computerless untill learning LOGO in school in 1989, then didn't have one again untill I got a used XT in 1991. A couple years later (after mastering Turbo Pascal), I was learning C in DJGPP on a 386 with 2MB RAM, while doing my assignments on a VAX.
I am in college for a game design major. There are 2 sets of courses. One leaning more towards art, and one more towards programming. I switched to this major, and am having to take alot of freshman classes this year (I'm a sophmore), so I can speak from kind of a "already knowing how to program" kind of stand point.
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.
Someone else mentioned Tux Paint - but I'm not sure that really does much for kids -- I suppose it teaches mouse skills. I have an 18-month old, so this question has been on my mind a lot recently.
A major hurdle for today's young programmers will be the lack of an easy GUI language - they aren't going to settle for the Command Prompt that you get with simple C programs under windows, and they certainly aren't going to learn MFC. Any language that makes it "sort of" easy to make a GUI window, etc, will do well.
Another GUI language option that jumps to mind is LabView's Virtual Instruments. You program by "wiring" modules together in a graphical environment. OpenDX has a similar facility, although it's primarily for Mathmatical calculations. LabView also makes GUIs easy.
HTML/Perl/PHP might not be a bad alternative, as they are simple and yield immediate results. Socially, a girl might see more benefit from HTML or other "communications" related tools rather than mathematical or procedural tools.
One of the choose your own adventures series had some basic programming as part of the text that you would type in and it would spit back some answer to a riddle. Since my family didn't have anything like that, I would go over to a friend's house and do it on his Commodore 64. I was maybe 10 at the time.
Then, I got in some classes on Apple 2's when I was 12-13 that the local city did with some computers while they were waiting for the renovations to be done before installing the computers in their permenant home. Ahhh the old 'castle' game with windage and artillery.
Then, we got an Apple II GS, and I remember getting the paint program and the full OS (GUI, the works) on one floppy disk so I didn't have to swap floppy disks. (A hard drive was out of the question, unfortunately)
I remember the old karate games and one with a 'Conan' type game where you jumped over stuff. Not much programming, but homework etc.
Now, with my kids, I specifically make the computer a 'tool' rather than a 'babysitter'. We have Disney's Magic Artist drawing program and a Aiptek drawing tablet. Some learning games, but no keyboarding yet. If they want to do something on the computer, it's for a reason, not just to "be on the computer."
We are homeschooling our children, and eventually they will do a lot on the computer, but not while they are young. I don't want to limit their imaginations to just "click on every 'thing' on the screen and watch it wiggle and bounce".
Don't steal. The government hates competition.
Tell them to pick a project that interests them, and then let them implement their ideas with high level tool like The Game Maker ( www.gamemaker.nl ) that contains an easy to use story board, paint, and scripting system.
My technological prowess began in the Apple IIe days at my elementary school. I'm sure everyone can remember the days of "gym", "music", and "computer room". I spent many hours on my school's Apple IIe's before my parents bought me my first computer in 3rd grade (circa 1991).
My first PC was a KLH 386SX 16Mhz with 4MB of RAM and a 40MB HD. It ran DR-DOS 5.0 and PC-GEOS, Digital Research's attempt at a GUI. I eventually convinced my parents to purchase me a copy of MS-DOS 6.22, and had my first experience formatting a hard drive. A friend from school lended me his Windows 3.1 diskettes (amazing to think that a MS operating system fit on 6 3.5" floppies...).
I learned BASIC by messing with QBasic and later VB when I got my second PC some years later. I began working with C/C++ when I came across a copy of Visual C++ about the time of 7th grade, and from there my programming knowledge expanded significantly. A combination of self-teaching as well as in-class work in high school gave me a working skill-set of Assembler, BASIC, C/C++, and Java when I began college, as well as coding experience with Windows, Mac OS, and Linux.
My best advice is to diversify - programming is the same fundamentals, regardless of the language. Be open to learning new things and new methods of achieving goals. Do not be afraid to break out of your comfort zone - you may be surprised what you'll learn!
I heard his talk entitled, "Introductions To Computing Should Be Child's Play" and he did a demo of Squeak, and it made me feel as giddy as a schoolgirl.
There's a product from Interplay from 5 or 6 years ago called "Learn To Program BASIC" which runs on the PC or Mac and has an Applesoft BASIC like language with extra commands to do game related things, mouse clicks, etc. It's an interpreter and there's a runtime interpreter you can download. It has lessons you do and of course the freestyle mode. I think it lets you write BASIC programs up to 32K in length.
For me, as sad as it may sound, it was porno. I was a casual computer user up until 1994 (typing papers in WordPerfect, playing Solitaire, etc.). Around that time, I was introduced to a new thing called NCSA Mosaic. I discovered there was porno on the WWW (I was never tech-savvy enough for the BBS scene). I figured that the way to find the most porno for free was to understand how the whole system ran. A year later I was running paysites while a senior in high school. Eight years later I'm running lots of sites as my real job. Pretty cool.
POKE 198,0
LOAD "*",8,1
SYS 64738
I bought my first computer in 1996... at the age of 36. It was an old Commodore 64, it was almost free and came with a lot of books and programs.
I'd always been vaguely interested in computers, but until then I had no experience of actually using one at all- never could afford them.
I learned basic, then some pascal, and I played a little bit around with machine language.
Then I suddenly had some money and I bought my first pc- it had a Cyrix 166+ processor, 16mb of ram and it was called a Commodore- the shop I bought it from (cannot think of the name) was the owner of the name at that time.
After 2 months I discovered Linux and started dual booting Win95 and Slackware.
After 2 years I found my first job writing server side scripts- first in Perl, then ASP.
I'm still doing that, now mainly PHP.
And I'm still dual booting- WinXP and Mandrake at the moment.
I started by playing games on my Amstrad CPC. After a while, I decided it'd be fun to try and put together some "pokes", for getting infinite lives, or whatever.
So I borrowed my dad's Mon80 monitor/debugger, a Z80 assembler book (for a different computer, as it happens) and figured out a likely opcode sequence (3E 03- LD A, #3) and just plodded through a few games (noteably hunchback) to try and work out addresses where the lives counter might be getting initialised.
From there it was a matter of writing a BASIC loader and POKE-r. I had a couple of them published in magazines, and eventually moved into writing my own stuff from scratch.
It seems to me like it'd be difficult to do that these days... stuff just isn't quite so open to tinkering as it was.
</ramble>
Registering accounts later than some other chrisb since 1997
I then moved to PCs using DOS and then various flavours of Windows until it became a liability - I now use Mandrake Linux and FreeBSD.
Art Makers Just an excuse to show photos of naked women !!
I was lured in by a beautiful woman holding an Apple (IIc to be precise). It was so shiny and clean and pure. I thought, if I can just get a taste of it, I will be happy forever. And I was right. After I booted it up all night long, I have been addicted since. I was exposed to the lurid world of BASIC at the tender loin of 14. Ah yes, the good old days of "10 PRINT "Fuck Bush" "20 GOTO 10."
I grew up in a geeky home with both a dad and older brother consumed with computers.. yet it was not something I wanted to be a part of until I hit college. Females take to computers in a whole different way. I didn't care how to do the little tasks here and there, like fixing little problems that I deemed 'computer janitor' type jobs that periodically sprung up when I was doing basic gaming and word processing. What I wanted to know was the big picture. I needed things explained to me in terms I could understand/ relate to. Something like 'computer story time' would have sparked my interest when I was little, breaking down how the various components communicate with one another and what their jobs were inside the computer first on a broad scale, then breaking it down into finer pieces as time passes. Starting a task like 'ok, we are going to install a new nic into the computer' and explaining WHY you are doing it before you do it, what it does, etc and then displaying the results in a meaningful fashion might useful too. Long story short, fixing something because it is borken just didn't excite me. It doesn't excite a lot of females. Fixing something with a story, with a purpose, with results you can prove to her after the fact.. now that's exciting.
You've read the stats, computers take up more time than ever before, families are crumbling, divorce rates are up, stress levels are high etc etc. I am about to start my kids on and old PC with Linux, I figure it will give them more than enough LEARNING experience, which is the important thing, but more importantly what we need to do is stop them from becoming computer hermits like ourselves and make the copmuter a tool rather than a commitment, wouldn't you say?
and 3 games that loaded with a cassette player. I read the entire Basic language book that came with it and learned how to make simple things. I was 11. It lasted a few months until my dad got an atari 400 and for the next year I wrote tons of tiny little stupid games and graphics (screen savers these days) until there was a modem. That's when the learning went down, I spent more time online and less being productive. The next 4 years were full of sysoping, a bit of datapack and computer upgrades (amiga and ST) and the only programming was at school. I wrote some really great art software with a friend and a really good game that got pirated one day when I went to the bathroom, it wasn't finished yet so I was pissed that people thought that I wrote broken software. I took a 4 year break from computers when one night myself and 3 friends were wondering what to do and I had an old atari400 with 5 joysticks from different systems that all plugged into the machine that only had a basic cartridge and no data storage. I took 20 minutes and threw together a 4 player snake game. I kept the machine on for a month until I said goodbye. Then I took an electronics course, knowing that it was the next step in understanding computers from the inside out. There I wrote drivers, used an oscilloscope on motherboards, designed circuits etc... Then Linux :D one machine in particular ended up running for 3 years. Just a telnet->serial multiplexer (long story).
Then history would be shown as jobs, marriage, jobs, divorce, no jobs(on purpose), dot bomb, no jobs(not on purpose), jobs.
From that entire experience, this is what I've learned: When it comes to companies looking for computer people, they have no idea what to look for in a person to get the job done because they never really understand what the job entails. Every programmer should spend a couple of days with the person that's going to use the software and just hang out with them. But that's off topic.
Anyways, it's been a nice walk.
Jazz Jackrabbit is what brought me into the computing world when I was about six.
It's still one of my favorite games.
I personally started working with computers in school some years ago using the old number lines which I can not remember to save my life. Then came the games which got me more involved and interested in learning as much as I could.
Once my child was old enough to start showing interest, I let her watch me do things such as upgrades and the like as well as mess around with various programs. At the point where comprehension was available, she began working with various educational programs that taught just about everything she was going through in school. This eventually progressed to the point where she built (with a little guidance) her own computer from parts at the age of 12 and is still trying to learn more. She is now comfortably using Linux (Mandrake) for her school functions such as research and reports.
Getting a child involved with computers is pretty much a must in todays world. The only problem will be determining what to start them on and when. I would suggest using some of the basic educational programs to start. Nothing real flashy or difficult, just something to guage how well they take to the keyboard and what keeps them interested. A couple my kid worked with were http://www.cluefinders.com/ and http://www.broderbund.com/. I am not saying these will help all children but they are a couple ideas to start if the child is the grade school age. As for teaching them how to troubleshoot/repair/build/program.... that is anyone's guess.
There has been at least one computer in my house since before I can remember. I grew up with computers, and always felt comfortable around them. My comfort level was increased in elementary school, where I got to play around with BASIC and Logowriter on Apple IIGSs. My teacher was an old-school, strict, Russian woman who expected nothing less than the best from me, and because she challenged me so much, I picked up a lot from her. She taught me the basics of programming in BASIC and Logowriter, and then would come up with a new challenge for me to complete every week or two. This made me confident and comfortable with computers.
When it was finally time to have a computer in my room for schoolwork, my parents decided to go with a local company so that frequent repairs wouldn't be a hassle. The computer, however, was not very well put-together, it had some fun little component conflicts, and having a teenaged kid messing around with it didn't make it any better. I messed up that computer six ways from Sunday, but I always managed to fix anything I did myself. I formatted the HD multiple times, I installed my own CD burner when I could finally afford one, I upgraded my RAM, upgraded my HD, upgraded from Win3.1 to Win95, and fixed any and every problem that I created.
If you want my suggestion, the best way to introduce children to computers is just that - introduce them to the very basics of computers (no pun intended,) let them get comfortable with the way computers work, and help them work through any problems that may arise. Once the children feel comfortable enough with comptuers, set them loose. Let them create and solve their own problems. Naturally, if something is beyond their capabilities, it would be wise to aid them. However, let them get frustrated. Let them walk away from problems only to have to solve them later. Not only is this a good way to learn about computers, it's a good way to learn about life.
This sig has been stolen. Return it to its original user for a reward.
give him a non gui *nix box.
make sure it has some text/curses based games and let em loose on that. Also, have some *nix manuals lying around.
If they figure out how to get access to the outside world/install X, then all power to them (feel free to give them hints)
the general idea is they learn gradually through exploration
---- Put Sig here:
That won't fit !
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?
..the memories come flooding back..
Back when I was in 4th grade, my dad bought us a Franklin Ace 1000 - this was the first clone of the Apple II, and came with a 360k floppy. It was great! I did what most of us probably did with our first computer - I wrote a "guess the number" game in AppleBASIC. :-)
Over time, I got better at simple game programming. One game I made for myself was an adventure-style game along the lines of 'search for the magic item' and 'monsters may attack you as you enter an area'. Friends at school tried to get me interested in D&D, but I just saw it as a rule system for my computer game.
Later, I started to learn more about the GR and HGR graphics system on the Apple/Franklin. When War Games came out, I convinced myself I could write a war simulator that was more or less like the one in the movie. It looked great, but you could only target a few cities (and it was case sensitive - gah!) so it wasn't much fun to play.
I remember we eventually got an 8088 IBM-PC compatible clone, and how impressed I was that it had dual 360k floppy drives and a 5MB "hard card." This was originally intended for my mom and dad to do work-like stuff at home (spreadsheets, word processing) but my brother and I eventually found a few games we could run. (Anyone remember Sopwith?)
And I started the FreeDOS Project in 1994, while I was a physics student. But at the time, computers were just a hobby for me.
Heh, but I didn't even get interested in computers as a career until my 3rd year at university. Internships for physics students were hard to find that year, so I got a job doing some programming at a local small company. After graduation, I went back to that company to do system administration, and maybe a little programming.
..and the rest is history?
I was only 4 when my father first introduced me to computers. He had taken some programming courses in college, but ran the family store and didn't really do much programing.
He knew enough BASIC and MS-DOS 5.0 batch to get me started, and still had the manuals around which I was able to digest fairly quickly. [I was already reading at a second-grade level, but there's nothing that will improve your reading skills better than practice, at that level.]
On a trip to EPCOT center (I was 8-9 by now), I was able to pick up a book on game programming in BASIC. It was at this point I realized how screwed-up source-level portability was. The more complicated games actually had 4-5 different source code listing for the various variants of BASIC, none of which I had available on our TI IBM-compatible. Luckily my school had some Apple IIe systems available, so I could use the techniques found in that book.
By the time I hit my early teens, I thought I could do everything I would ever want to do in (Q(uick))BASIC and the VC 1.0 programmers guide did not interest me. [How sorely wrong I was!--I did not realize that until I hit college.]
Now, onto the suggestions:
If you child is very young but enthusiastic, show him/her what any programming knowledge you have can do. Just little things: A calculator run by prompts (What do you want to do (+,-,*,/)? First number? Second number?) or game to play hangman (Executtioner what's the word? [Draws ASCII gallows] Accused, the word is *******, what letter next?, etc.) I does NOT have to the pretty or efficent, just cool enough to get them to expend the effort reading code.
Now, provide them with any documentation you still have, and maybe even buy some beginner's books for them. It doesn't matter what language, as long as your have a compiler/interpreter for that language available. I suggest something that doesn't hide too much of the hardware; if you know enough assembly and can get a beginner's guide on it, start there. Starting close to machine teaches fundamental concepts (2's compliment, etc.) and also builds an appreciation and understanding of higher level concepts and abstraction. As much as you can be there to answer any questions the child may have and appreciate any programs they create.
With older children, you don't have to spend so much time on them, as long as you provide good documentation and it does the stuff they want it to. Depending on the child, they might want to be able to connect to the 'net or play music, or a hundred other things. In this case, is better to start with a language + library where these things are easy and well documented. Perl and Java can both be recommended. It's difficult to start with assembly at this point (unless it's a formal education) because it doesn't give enough reward / effort. Once they get really interested, you may be able to guide them to the fundamentals via multiple paths (history of computing, mathematical background, efficiency issues, security issues, or simply hard-core bug-workarounds).
Also, at some point, buy them their own computer (no OS), provide them with a gentoo live CD, and make sure they know about EFF, FSF, GNU and software libre in general.
I am 18, so I learned in a time considerably closer to the present than a lot of people posting here. What really got me started with programming is TrueBasic, which is similar to qBasic but with (what I consider) easier syntax. I believe there is a free version out there, but some of the paid versions are quite cheap and have some great features. Sadly, it runs only on Mac OS and Windows, as far as I know. I taught myself the TI-83+ Basic language for use in high school (it has served me VERY well), and then took a course on C++, which I would recomend, since it is complicated enough that I helps to have someone around to show you your mistakes. Thats about it, programming-wise. BTW, don't teach the kid HTML, since it is not really a full language, plus the WYSIWYG editors do a better job than any by-hand programmer could ever do.
The first development type stuff I did was a few years later when I used this program on the Mac called ResEdit. I used it mainly to edit pre-existing games, through hex or what not. Nothing too hardcore, but I was only like 8...gimme a break.
After using a computer for many years, I finally got a PC (with Windows 95). Lemme tell you, I was damn excited, because there were so many more games available for it. I especially wanted it so I could play the Quest for Glory series. A few years later when I was maybe 13 or 14, I started using Slackware Linux (5.0). That's when I got the Linux bug, that's when I started learning C++ and Perl. So I am forever indebted to Apple for giving me that first Apple II which introduced me to computing. Never used an Apple after that tho unfortunately.
I was 9 in 1979, my father had been dragging me to various computer shows. I remember this one behemoth of a "computer", really a single purpose toy called something like "story machine". You could pick verbs, nouns, etc and it would animate the results. IE, "girl eat apple" would cause a very pixellated girl to eat an apple. I was fascinated! Plus, there was this very smart kid I admired (Jonathon Liedecker, you still around somewhere?) and he programmed.
My dad had a dec rainbow (wordprocessor) at work, massive thing with 8" floppies. It had a simple basic interpreter on it, which blew chunks. I maxxed out what I could do with it quickly. I convinced my parents that my education was hindered by lack of a computer at school, and somehow connived them into donating an old tv to use for a raffle. I think they were just humoring me.
So we earned maybe $500 from the raffle, then a few parents put up the rest and my classroom got a TRS-80 model I, level II. Awesome machine, had like 16k of memory. 16K! What would I do with all that memory? We had to save onto tapes, but for some reason that never bothered me.
By 1982 I was programming on an Apple II, and when I was 13 I wrote MarcLang III, an amusingly naive attempt to write a programming language on top of Basic. At that point AppleSoft just didn't do it any more. Then I learned Pascal, C, C++, Java, now C#.
My suggestion? Try a very simple untyped scripting language to start, like perl in a command window. I taught Logo during the computer camp craze of the late '80s, never had much luck transferring the knowledge those kids learned to the procedural languages that dominated in that era. IE going from Logo to Pascal was starting over from scratch.
One tool I'd really like to see come back was Rocky's Boots, an Apple II program ostensibly designed to teach electronic circuitry to kids. In reality it was an excellent way to teach logic concepts, and a lot of fun as well.
Marc
My cat can eat a whole watermelon
I was 23 when I bought my first computer back in 1980, a Tandy TRS-80 pc2, It's a pocket sized single line LCD computer with 2K of memory and basic in ROM. I remember shelling out $AU100 for a 4K memory expansion plug. I fondly remember my Tandy model 100 laptop too, then I had the dream machine, a Sperry 8088 XT with CGA monitor.
I taught myself to program on that PC2 with no more help than the owners manual. One thing that I remember very well was the abuse I received from family for spending time on something so stupid as a computer, I was wasting my time I was told over and over. 20 years ago I knew no one who knew as much about computer hardware and software as I did, now days I cannot keep up with the change, my 20 year old son leaves me for dead.
My first experience with a computer was when I was five. My dad had an Atari 800. (He ended up selling it because he couldn't afford a disk drive! This was when disk drives cost hundreds of dollars.) I remember one night he typed in a program that acted like an etch-a-sketch.
:-)
I few years later, my parents bought me an Atari ST. I was hooked on computers from that point on. One day I was reading an article in Atari Explorer magazine about programming. The article presented a simple "Hello, world" type program in BASIC. I decided to play around with it and see if I could change it slightly. (This was back when every computer came with a copy of BASIC.)
I ended up teaching myself BASIC over the summer.
Anybody remember when computer magazines used to publish type-in programs?
I know nowadays a lot of people don't like BASIC because of goto and what not. But I think it is a good language to teach some basic principles (what a variable is, what a loop is, etc).
I'm currently learning python. I've wondered if it would be a good first language for someone. I'm not sure it would be. For one, I'm not sure if someone who learns it would appreciate all the things it does for you. Second, when they learn another language, I'm not sure what the learning curve will be like. It might take them a while to get used to the new ideas. On the other hand, maybe starting fresh and not carrying some of the baggage of older languages would be good for a new generation of programmers.
I've never used Pascal, but I've heard it's a good language for learning programming.
Now, I've heard some people say that OO is the way to go and should be taught to newbies. But even with OO you still use parts from procedural programming: you still use variables, still use loops, still call functions, etc. I see no harm in using a simpler language to teach the fundamentals before moving on to objects.
Maybe what we need is a version of knoppix set up for teaching programming.
Python links:
Main python site: http://www.python.org/
Dive Into Python book: http://diveintopython.org/
Pascal:
A free Pascal compilerhttp://www.freepascal.org/
Basic:
I don't have a link for a version of basic. But I know there are some on the web. And Win 95 & 98 have a copy (buried) on the setup disk. Look in the other\oldmsdos folder.
More:
http://thefreecountry.com/ Has links to free compilers & more for various languages.
Old computer magazine archives:
http://www.atarimagazines.com/
Coder's Stone: The programming language quick ref for iPad
I think the quesiton here is how to introduce kids to programming and NOT computers. I assume most (American) kids need little introduction to computers...
Those machines that you found useful for learning the basics of computing are still around, and if you can't lay hands on the hardware there's a good chance there's an emulator. I wrote one myself largely as a tool that people could learn fundamentals on, and secured permission to reprint Tom Pittman's old Short Course in Programming as part of the app's help system (and yes, that's the same Tom Pittman that co-authored The Art of Compiler Design with James Peters). Okay, 1802 machine language isn't what you'd call real useful these days --- but it's a very simple instruction set that can be fully understood without much effort.
Emulators may not be as educational as soldering together your own system and troubleshooting it with a 'scope or even a logic probe, but the software principals from these simple computers can still be taught with such tools.
One of the problems, I think, is that today's systems offer too many distractions. Back in 1976, programming was about the most interesting thing you could do with a personal computer... sure, you could load a game, but let's face it, Pong only holds one's attention for so long. Now immersion in a 3D digital world is just a mouse-click away. How can you expect kids to fire up LOGO when so many shiny toys are lying around?
We can use today's hardware and software to deliver quality computer instruction to children, but perhaps to be successful the lessons must become more interactive and game-like.
And Xerox from Douglas Engelbart. Everyone forgets about Doug.
Electronics. Heathkit ET-340 trainer. Assembly. Being able to plug in hardware to make the platform do what I wanted.
;)
Then the Vic-20. There was a space rocket missile type game in the handbook. I modified it a LOT. Called it "Dense Pack" after a politico-social concept of the time. (once you ran out of missiles you were dead
I don't think you can force this on a kid. Nor should you. But offering the right teaser is still fair! lol
Even the new scrip language in O-Office1.9 is a start. There's several Turtle-like things around.
or like I did, give my son an old phone to tear apart...
I started going to Purdue U. to take CS classes while a freshman in high school (1971). Learned Fortran and went on from there. Used good old punchcards, using a keypunch. Want them sorted? Put them into the sorting machine (assuming you'd used columns 72-80 for sequences). Need a listing? Put the stack of cards in the lister. Became a physicist and elec. engineer, now mostly physics application coding, perl & c++. Taught my kids programming on a CP/M machine (Pascal & Basic) then later they taught themselves HTML and Java. "Taught them" by discussing things a little, and told them "here's a good book, try it out a little a step at a time". Old Goat
Stupidity... has a habit of getting its way.
I said "Let's Play Global Thermonuclear Warfare"
The summary says high level language like it is a bad thing. If the kid is actually interested in programming why not have it play around with the Python interpreter. You gotta love instant gratification!
Myself, I began in the dos days when I was about 10. Switching out 5" floppies (one for DOS, one for saving, one for wordperfect). That's when it started... when I knew that dir *.exe would search for all executables... and my 45 year old uncle did not.
after that, I did anything computer-related I could, and just fell into everythign else.
I'd have to say that gaming helped me the most. Solving puzzles such as Zelda and Mario, Kings Quests.. they helped me with my current job the most. Do this, then this, to get this. Freddy Fish, I think, is the most ideal way to get kids programming. Do this, then this to make this, which then you can use for this. Isn't that a good start for a programming tree?
just my 2cp worth...
"There is a reason Linux is free"
~me~
grade 1982 - a few kids were shuffled into the science teacher's room once per week to learn BASIC. My parents eventually bought me a TI-99 4A - I remember calling radio shack to see if they had any "blank cartridges" then convinced my Dad to get me a tape drive for it. I wrote "Happy Birthday" for my mom all day in TI's weird ass sound code. Eventually we got a C64. I was one of the dorks that stood around in gym trading pirate programs and games.
My almost-3-year-old son's absolute favorite thing to do on the computer is for me to open TextEdit (yes, it's a Mac) and let him type letters and numbers. If he sees me at the keyboard, he pretty much demands it.
Then I'll type words and he tries to sound them out. Getting a little more high tech, I'll type the name of a color and then format the text to that color when he reads it correctly.
I've also taught him that the letters on the screen with all the funny ['s and ]'s scattered among them is called Objective-C :).
Peace be with you,
-jimbo
XML Tools for Mac OS X
I recently introduced a "newbie" to some basic HTML on a server that I maintain, with an added twist of the PHP date() function:I know, I know... it's not really "programming", but this person got the concept of dynamic web page content really fast. Maybe that's an option.
From my experience assisting in my high school's CS classes, VB6 provides the fastest turnaround for budding programmers. Nothing is more frustrating to a student than spending hours working on a program only to get text to spit out to the console. VB6 makes GUIs a snap, and gives the kids a feeling of accomplishment that keeps them interested.
SIG: TAKE OFF EVERY 'CAPTAIN'!!
After doing "Hello World", I started with copying a "Camel" program from a magazine ( I belive the computer was a "Vector Graphics" ). I eventualy moved on to making a Pac-Man clone and an original space shooter on some fancy "Monroe 2000 color computer" thingie.
My son has it a lot easier. He toddled up to my iMac, I showed him a drawing program, got him started using the mouse to make brush strokes, and as soon as I realized he could use the mouse to click on files ( and use the keyboard to rename them to creative things like ",mk;oij;oi" ), I gave him his own locked-down account ( thank you OS X ) and Safari bookmarks to sesamestreet.org, noggin.com and nickjr.com. He still likes the paint program ( from the AppleWorks suite, it's MacPaint, remember that? ) and got into jigsaw puzzles, though the variety of flash games ( and painting apps ) on noggin.com and sesameworkshop.org probably define the computer for him.
I figure we'll wait for him to really read and write before I start him on Objective-C. ;-) He's three years old now, and I figure it'll be at most another 4 to six months before he's ready to tackle learning to type, at the rate he's identifying new words... the poor kid is only starting preschool, he should enjoy being a kid and beating the SpongeBob SquarePants video game before learning to program, I figure...
Seriously, though, I'd start a young programmer out on one of Java, C, or Objective-C. I'd look for a tutorial on doing simple animations, kids like that kind of thing. Just seeing what it takes to draw a simple shape, and then doing an event loop to move it around a window - that goes a long way in understanding how most programs work.
As far as an introduction to computers in general, for my son's generation, that'll be something of an organic experience. Give them an account set up so they can't destroy anything critical, give them a few good starting points ( like a paint program and a few good websites ) and they'll ask questions when they think you can help.
Yes, my three year old will log in to his own account if he finds someone else has left themselves logged in.
I actually got sucked in by web programming because I wanted my own personal website. First of course I learned to format pages in html; but I was a bit dissapointed I think to find it was insanely simple. I bought a big SAMS teach yourself html dealy and read it in two days; ok, when I say read I mean skim for interesting information.
Then I wanted to make flashy things on my page. Went out and got a Red book on Javascript. Hated javascript, thought it was too complex for what it did.
Then I decided I wanted to learn to do search engines and forums. Bought a Red book (greap series) on PHP4. Loved loved loved php4. Wrote a search engine, and a forum, and some other little web scripts. I still check out the forum source occasionally, it's like 1,000 lines of madness. I hadn't yet learned that copy and paste was the devils toolkit.
Then I took a class in high school on VB; annoying language. But very quick to do things in.
Then AP, which was c++. And then onto college courses, linux, and trying to jumpstart my own little projects.
html -> javascript -> php4 -> VB -> c++ -> and now I love c. Notice a pattern, haha. Oh, I flirted with java in their somewhere too.
My first computer was a Timex-Sinclair 1000 in 1984, no true keyboard to speak of, just a hard-plastic key area that you had to press pretty hard to register a keystroke. No storage unit to speak of, though I did have the 16K memory attachment. I must have typed and re-typed the code for a galaga-esque game 100 times or more.
/. readers out there - many, many of us followed similar paths. What hooked me to computers was learning how to make the machine do what I wanted it to - from basic on the Vic to dbase IV/Clipper/Foxpro projects in college, the simplest programming project gave me the greatest joy with the computer. I am not creative in the sense of art or music, I did/do a little writing, but I've always felt that my true creative spirit comes out when I am coding something, looking for the most elegant solution and bending the computer to my will, and whatnot.
Next came: VIC20 - programming in basic and playing lunar lander were my life
Commodore64 - using hackmaster to get all the games in the world (I lived in central america, rampant piracy and at 14 I didn't care), learned to program assembly
Local-shop-built XT - college and I needed a 'real' computer for lotus 123, used it and my dot-matrix printer to type papers for people for extra cash, 4-color games like might-n-magic and script games like zork.
Gateway 386 - still typing papers, now my games have more than 4 colors
Gateway 486 - still typing papers
Gateway P100 - first one I bought for myself, graduate school
etc., etc.
Nothing unique in this list from the hundreds of thousands of other
As for my kids. My 3-yr old loves nothing more than typing letters into a word processor on my laptop and watching her brother play games on the kids' machine. My 5-yr old has tons of ed titles (reader rabbit, arthur, etc.), plus lots of Tonka software games and some freeware checkers and sound makers. They're into it, but they're not hooked - yet. They pay a lot more attention to their Leapsters and dvd players.
drink beer, and let the water run the mill
My first memory is our Commodore 64 and some BASIC magazine my older brother subscribed too. It had huge, hundreds :O) of lines of code, programs that you could enter in to play games. The first game I had the patience to type all in was some kind of "meteor" game that had a stick figure who ran from side to side and caught dots that fell from the sky. The more you caught the faster they fell. I think the dots were only limited in speed by the computer and I don't think the game could be beat.
I now have a 3 year old daughter who found her own interest in our home PC. She just started messing with the mouse a little over a year ago and within a month or so she was adoing everything she wanted to do with it. She could find the icons (win xp) in the program menu and launch her games, play them, and shut them down. She can also launch the browser (firefox) and navigate to her favorite websites and play games there as well. She does all of this without any direct adult intervention - we basically just make sure she doesn't end up somewhere on the web by accident.
She can't write yet (she is only 3 after all, sorry, no Einsteins here) so we aren't too worried about chatting/online predators or anything - so she is pretty much free to explore the computer to her hearts content.
It probably doesn't hurt that both my wife and I use our computers fairly regularly in front of her and even when she was only 1 we would take her to different websites to see her favorite characters.
Depending on the age I don't think you need any special software to spark a kids interest in computers.
However, my three much younger brothers all pretty much ignore computers except to maybe send an email on occassion or to chat (and 2 MUD pretty fervently.) none of the three really has much interest in them any more than that.
I'm aware of the huge anti-Flash sentiment on Slashdot
I think part of it is that kids will usually graduate from high school before they have saved up enough allowance to buy a copy of Flash.
How'd I get started in the digital realm?
True story. It's 1986. I've just turned four years old. My parents visit college friends of theirs, who happen to own a computer. I'd never seen a computer before this.
Ten minutes later I formatted the C:\ drive.
And I've been breaking computers ever since!
"To pass through the jungle; silence, courtesy, ferocity, as the occasion demands." -- Kamau, "Proper Passage"
I remember getting a 486 when I was about 4 years old. The whole mobo died about a year after we bought it, and I remember my dad replacing every part in the PC. I had no clue what he was doing, and now my dad doesn't have a clue about computers :P but I remember it was the coolest thing ever, seeing how all of the stuff inside of that computer worked together. I was also pretty lucky that we first got internet service when I was 5 years old, back in 1993. My parents weren't very strict about the computer (back then, there weren't as many threats to children on the Internet as there are now). So basically I just learned by experimenting with everything. That's what I do to this day.
I started with DOS 4.something (i dont remember, i just remember getting 5.0 and a manual for christmas when i was really small) My dad wouldn't start games for me, he made me learn how to change directories, run programs, exit the programs, park the hard drive before shutting down, etc. Eventually I leaned some Basic by altering that Gorillas game, and skipping ahead levels in the Snake game. I had to figure out how to configure virtual memory in order to get some newer games to load, and i remember a really big thing i did was change the default colors of the command prompt :)
I had a monochrome laptop that ran from 2x 720kb floppy drives, no HD, and no mouse. Those were the days. Consequently, that's when i learned how to solder, because the power cord ripped off the plug one time, and i had to fix it.
You call it excessive, I call it ambitious.
I was exposed to the computer world through my boyfriend, who owned the town's only PC. It was a TRS80 with a cassette tape drive. We spent zillions of hours playing text based adventure games and text graphics games. When I finally decided to PROGRAM instead of play, I took a FORTRAN 77 class in college. I passed that course, but didn't want to do any more. Finally, when I was in my mid 20s, I took a job as a graphic artist in a shop that churned our computer based training. As I worked, I realized that the programmers were mucking up my plans with their interpretations of how the lessons I designed should work, so I took up programming in self defense. I haven't looked back. I'm now a manager for a freight company's web development department. Again, I find I'm not coding, but I know I could go back and sometimes wish I'd never left.
Swisssushi - When the going gets tough, get some tenderizer
My earliest memories on a computer revovle around playing Aracnaphobia on an old Tandy probably somewhere in the late 80's early 90's (born in '87) Funny enough, my grandfather still uses his Tandy and loves to brag to his friends about how it's his best investment - no spam! In elementary school we had crappy 386 terminals which we did LOGO on as well as the robotic widget. At home we eventually got a Gateway 486 which I remember by dad installing a CD drive in (to replace the 5 1/4 floppy). On that machine I taught myself visual basic. I also had my first multiplayer gaming experiences on that machine: Warcraft (dialing up to my neighbor and through Kali) Duke Nukem 3D, and Myth. Anything past that machine seems to recent to mention.
That's basically how I started... My first computer was when I was about 5 or so, and was a Commodore Vic20. It was a gift from my Aunt. I remember the carts and then eventually getting into BASIC and making my own programs. I ended up with a TRS-80, A KayProII, Commodore 64 and an Apple IIe. I ended up programming on this to kill time while my parents fought. Whenever they'd fight, you'd hear those two diskdrives (not at once) spinning and loading up ProDOS... Then I moved big-time. A Compaq Portable. 8088. 640k of RAM (with full size memory expansion card), Hercules compatible Video and two 360k 5 1/4" floppys. This thing was awesome. Started with DOS 3.3, and moved up from there. Then I got a 286 with 2MB of memory and a 20MB hard drive. Ended up starting PASCAL on this thing. Moved up to a 386 SX/16, and then upgraded pretty rapidly thereafter. I remember reading Computer Shopper when it was the size of a small phonebook, with all kinds of tech articles and reading the ads to build my dream 486! I also had Macs; starting from a Slim Mac, up to an LCII (with the Apple II emulation board), a Color Classic, and then a PowerMac 7200 (which I still have). That and my few Mac laptops (which none have ever failed) and my Dual G5 round-out my current stuff in the Mac arena. My half-sister is four. I've already started her on Linux, playing small games and showing her some small things in RQBasic. She is already miles ahead of my mother in the computer user knowledge arena. That's how I would go. Linux. No reason not to. It's got the programming capabilities to start off with, and room to grow into whatever they want. It's got command line (which some prefer to learn on) and GUI capabilities (which others prefer). It's got small games, and I know SuSE comes with far more included games that teach strategy and critical thinking than Windows can even think to include... But, I'm sort of biased here :)
the first years of my life my parents were in the navy, so while one was on tour, the other stayed. While my mom was gone, my dad watched over me, and I got to play video games (mostly card games) on his machine. as I got older, he provided me with cocos (spelling be damned) that I burnt through.
Eventually (ah, the wonderful age of 5!) he gave me my own computer to play card games, duke nukem and Commander Keen on. Since then, I've always had computers in my home, even if they were a few generations old, they still kicked ass.
When it comes time for my eventual kids to use computers, I'm going to give them an old box to play around with, maybe some vintage hardware, children need to appreciate CLI, and do my best to keep them off that micro-crack, but I'll give them rational reasons, instead of the standard "microsoft sucks cause it's the most prevalent. a good understanding of how, and where it came from.
I knew there was no chance of getting it, I could just look at it and salivate. But surprizingly my mom looked at it and asked me if I would want to have one. Of course I said yes. So we got a new black and white TV (this was around 1992, and yes we were poor) and what turned out to be a low quality clone of ZX Spectrum with a blazing fast 3.5 Mhz Z80 processor and a whooping 48K of ram (out of which 16K was used for video memory).
And so it started. All the programs could be stored on audio tapes and could be loaded from a simple tape player. But the most wonderful thing was that it had a full keyboard, a BASIC interpreter and easy access to memory (anyone remember the peek and poke instructions?). Of course there were so many games and applications for it. I remember how excited I felt when I wrote my first assembly program. Then I found a pascal and C compiler for it. After a while though, the cheap keyboard made out of rubber failed. The metal had worn out under the keys. Then the modding started. I had spend a whole week scavenging magnetic vacuum contacts from this archaic fax machine of the size of a huge refrigerator from my dad's work. Then I cut a hole in my machine and painstakingly sodered each contact and each new key. Then I made labels and glued them onto the keys. But why stop then? I also made a seperate keypad to be used instead of my worn-out Kempstone joystick.
Now more than a decade later I am a grad student in computer science in US and have my own family and for all of it I have to thank my mom. She was forced to quit school after 7th grade and nobody better than her knew what it meant not be educated. Another time she came home with a book about electronics. It had stuff about lasers, plasma etching of circuits, superconductivity and all this other cool stuff that she had no idea what it was but she knew I would love it, and she was right. Thank you mom!
... by writing in an assembly language for a mythical computer that I had invented. My father was learning about computers from books and I also read all about them because I was fascinated and knew thats what I wanted to do as a career.
In 1968, working for the British Coal's R&D department, my father bought a Honeywell 516 minicomputer to prove that you could use them to control coal mines.
It had 8k words (16bits) of memory and the only peripherals were paper tape reader and punch, a teletype and some sort of simple parallel IO device (my father was building a massive bunch of electronics - with mag tape loops to represent conveyor belts with coal on - to simulate the coal nine).
I taught myself its assembly language, and started to write a compiler for it (simple Fortran like language that I had also made up).
My school had sent some of us to the local college to learn Algol, and then I had a gap year (sort of - had taken A levels a year early and had some spare time) before University, where I went to the National Physical Laboratory to program for money (on a KDF 9).
Computer Science was not a recognised University Degree back then so I did Electrical Engineering, but joined a British Software Company (Logica) where I did lots of embedded minicomputer projects in those early days before the PC. I still work for the company - but no longer in a technical role - so I get my kicks with open source at home.
My mom worked for an AlphaMicro Systems dealer in Colorado in the early '80s, and she brought a CBM, and later, a PET, home for her and us to all use. I remember playing some very basic games on it, word processing, and even getting into programming a bit on that huge box.
My brother and I later got further into programming when the VIC-20 and C-64 came out, but I will always think of the PET as my first computer.
The best thing, aside from the thrill of the computing experience, was seeing the autographed photo of William Shatner, holding a PET, with the inscription "Glad to have you on the team" on it.
Ja, dot's vot attracted me. Und zen Fortran und das Cartenpunchmachine. Gott im Himmel! Der memory uff it alle!
Sheesh I was reading through all these "My first computer was a and I started programming with it." I feel a little alone seeing as how my first computer I immediately used to find pictures of naked girls.
No sig for you!!
I was in my late 20's back in the late 80's and I got my first computer to help with my job in the securities business as a mutual fund salesman. After 2 years, I decided that I liked computers more than securities (actually the people pissed me of too). I've since learned 4 programming languages, am quite proficient with Macs (preferred), Windoze and over last few years, have become moe comfortable with Linux.
I have a 6 year old son who uses the computer also and he got started with simple things around 2 years old such as Kid Pix. He's now up to Zoo Tycoon nd can help his mother with a few things on the computer. What's the best way to get them started? I'm not sure, but if you are patient with them and encourage them, they will find there way.
"My break dancing days are over, but there's always the Funky Chicken" --The Full Monty
Dad placed me in front of an IBM PC/XT he used (about mid-1980's) to play with a drafting program he used (possibly a very-very old version of AutoCAD). Learned the home row keys and the basics of DOS at this time, including the necessity for booting off of a floppy disk. After about half an hour of screwing around in DOS he said "let's try something that'll make more sense" and put me in front of a Mac. Twenty minutes later I panicked as I tried to boot the thing like how he showed me with the PC and got the floppy disk stuck in the drive, with it refusing to boot with the auto-eject stuck. We ended up spending an hour taking the thing apart (because the whole paperclip-in-the-hole routine wouldn't work either) to get the damn disk out so it'd boot.
Since then he's avoided putting me in front of a Mac because I have a knack for breaking the damn things.
Then about four years later he bought me my first computer (IBM PC, non-XT) at a TRW surplus sale for $125. Monochrome green screen, 10MB hard drive, 5.25" 360K floppy drive, Epson dot matrix printer... it took several minutes for the damn thing to boot and I never managed to fill the hard drive. The only use I got out of it was for typing up my schoolwork with WordStar. It finally died when I reached 8th grade (so I'd had that pile of shit for at least three years) and that's when I started putting together computers out of OEM parts, the first bits donated from my dad's coworkers and later purchased at computer shows.
"There is much pleasure to be gained from useless knowledge." - Bertrand Russell.
yeah... actually its sorta funny, but the first time i fell in love with the computer was when i was playing computer games on an apple2e (i think... i was like 7 yrs old and im not a fan of apple products, too propriatory for my taste). the game was one of those early educational games that came out when apple was trying to sell products to schools back in the mid-80s (learning fractions, basic math, "oregeon trail"!!). Computers really appealed to me at that time (and still do), because they seem more... real... than life did then (or does now for that matter).
and now i do tech support for getting internet/email on pda's for verizon...
"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."
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.
My 4 year old(who cannot read) copies down the names of the shows he wants to watch and then types them in using the on screen keyboard via the remote so he can see when they are on to record. I find little scraps of paper lying around with "X-MEN" or "SPONGE BOB" written in barely legible little kids writing.
There's the art of computer programming for many programmers I know of...
For a very first introduction to computers, I recommend www.headsprout.com - an early reading program, starting as early as 4 or so.
I don't have a recommendation for introductory nonprogramming software for a fluent reader.
For an introduction to programming, I HIGHLY recommend english -> HTML -> HTML server side scripting language -> anything else. There's a broad class of people who would make good programmers but might not ever figure it out if the entire introduction has no positive feedback, which is why I recommend an easy to learn, yet powerful scripting language - Cold Fusion, perl, or PHP. (Of those, I only really know CF presently - and it's awesome)
The goal is that at each step, very early on, you can do SOMETHING that you couldn't do before. Then I'd recommend moving on to using SQL, and then to OOP structures.
Also, a lot of similar discussion went on in a recent Ask about computers and high school students.
Looking for freelance Actionscript (Flash/Flex) or ColdFusion work and/or freelance developers. Email me, put Slashdot
One obvious path, is to download and install some emulators of these classic (and simpler) systems, for the kids to play with, and learn (and get a bit of a history lesson in ancient computing :-).
Love many, trust a few, do harm to none.
Not myself, but a few of my friends have become interested in coding by writing programs for TI calculators. The TI-83 cheap with a nice thick manual, and is programmed in TI Basic. It is one of those things that can be appreciated by non-nerds as you can use it to write programs to solve difficult problems, but you can also write (semi) interesting games for it. There is also an active development community and many games have been ported to it, such as Mario Bros.
...is a great way to introduce somebody new to programming to the concepts. Maya and XSI have excellent built in scripting and expression tools that allow a user to see results quickly, in 3D, and even animated. They also have free (or very nearly free) versions. In addition to the basics of logical control and variables a good 3D package also helps illustrate a lot of the most interesting and cutting edge features of today's computers. 3CM
My early experiences with computers were driven by a desire to explore.
/. so that tells you something.
At my university in 1979 there was a small room that contained two terminals, a couple of card punches and a card reader and a large window into "The Computer Room." Someone showed me Adventure on the PDP-11 that the terminals were connected to. Poking around in RSTS OS lead to the help commands and little by little, a command her and a command there, I learned how to use the computer. Then I started poking around in the BASIC programs like Star Trek to make changes. Eventually I spent so much time in that room that I converted to a math major (there was no CS degree there at the time.) Today... well, this IS
As for kids today... I'm not sure that trying to get them "into" computers is going to be anymore successful than our parents getting us "into" ham radio. For our parents ham radio was more roll your own than it is now. For us, computers were more roll your own than they are today.
My son, now 21, got into computers back in 97 when I taught him HTML. It was common then to put together web pages with a text editor then. It appealed to the roll your own mentality. Today kids can and do create their own blogs. Very soon it will be something new.
My suggestion is to step back and realize that key is to spark the desire to explore, to reason, to use logic, to learn by experimenting, to try new things and to ask questions. The point is NOT to jut get your children to do something that was very rewarding to you. So look for activities that spark those interests and provide access to the resources.
Then step back and watch the real fun start.
Being 14, I hope I can shed some light on the problem.
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.
It was christmas '85 maybe '84. I got my first computer, an ATARI 800. It had 2 slots for carts under a flap and a cassette player/recorder. It must of took 15-30 minutes to load a game. I can still hear the screeching that it made while the game was loaded. My favorite game was Ft. Apocalypse from Synapse. I think they shipped it unfinished... I learned some basic programming on that before going onto using my dad's C64/128 in the late 80's. The apple ][e my mom bought me in jr high had a 80 column card and even a ram card with a whopping 256k of memory. I remember 10mb harddrives costing $1000 back then. I used to type in programs from the apple magazine, and expanded from there. Eventually I was using 'poke' to manipulate the memory addresses directly for faster writes to the video buffer. I think there was some crude pageflipping... In high school, we sold the apple ][e, and got a 10mhz 8088 with a 10mb harddrive and color monitor!
No, find them a club instead.
Nothing beats a trained instructor
...except a club.
taken! (by Davidleeroth) Thanks Bingo Foo!
>> I wish kids were as amazed by computers as I was at that age.
Well, were you as amazed by typewriters then as they are by computers now?
Computer was *new* that time; and because of that, your mind was unformatted. They now come into this world with pre-packaged multi-booting systems.
For Christmas in 1981 my Dad came home with a Vic 20. He wanted to see me write a program, so I wrote the standard print/goto loop. He was very impressed until I hit the Break key to end the program. He asked what I did to stop it. Naturally, I told him, "I broke it." He flipped. It took 15 minutes of comedy before the communication breakdown was cleared up. We played cartridge games on it as a family, I wrote simple programs, and did word processing. During high school, I worked with a Commodore 64 that I borrowed from school.
My first serious programming was in college. We did graviation and E&M fields simulations on PCs in Better BASIC. I took Pascal on a VAX. After graduation, I worked on IBM 370s under MVS with TSO. Ah, the green glow of a 3270 terminal in the middle of the night troubleshooting some obscure ALC or COBOL bug in a race against time to get the nightly batch cycle done!
Since then, I've worked in a ton of languages on a variety of platforms. I'll always have fond memories of the TRS-80, though.
I'm sure the irony of posting as "DocSavage64109" rather than using your real name (and keeping your e-mail address hidden) has not escaped you either?
I'm assuming, of course, that your name is not really Doc Savage, if you are - of course - I offer my full apologies (and send my warmest regards to Mr Stan Lee).
If you fear that teaching your kids Flash leaves them too many chances to stray from nice safe animutations to actually doing something useful (I'm being sarcastic here), another thing you could try is one of the many programming games that are out there.
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 Mac), or an obscure Playstation game called Carnage Heart.
Both feature a drag-and-drop approach to programming. In Mind Rover, this is done via a flowchart, and you program the robots to do just about anything there has ever been a competition to pogram robots to do except soccer. (blow out a candle, battle to the death, etc.)
Carnage Heart, on the other hand, is really a turn-based strategy game with mechanics reminiscent of Axis & Allies or Risk. I personally prefer the way its programming is done, though, simply because the programming is very grid-based - strict 2D control flow with absolutely no subroutines or GOTOs. This limitation means it isn't going to take a kid very far towards learning to use modern programming languages, but it turns the game into a very interesting mental exercise as you work out nifty tricks for packing as much logic as you can into a rectangle that can only hold 10x10 instruction units.
I trace my introduction and facination with computers back to ye 'ole Tandy Color Computer I and Extended Color BASIC... back then, if you wanted the computer to do anything remotely useful you had to program it yourself. The manual was quite well tuned to beginners and children.
:)
It was quite fun doing things such as piggy-backing RAM chips on the motherboard to "upgrade" your memory, or adding LED's to the serial and cassette cables to indicate status and activity.
These are the kind of things that hook a child for a lifetime.
Sadly, I can't imagine Microsoft Visual Basic having the same effect, as it isn't as "needed" and always just "there" at the prompt as part of the OS like coco BASIC was.
I personaly started on a PET, but that's not really important. The real question is 'Where to start?' Regarding programming the answer is simple, the begining. Start with concepts and leave variable types, apis and syntax for later. Psuedo code is your friend. While this may not seem particularly satisfying it doesn't take long to lay the ground work, controls structures, methodolgy and that lot.
/simple/ language. Avoid languages with beastly syntax and apis. Pascal was a teaching language for a reason, it was/is very simple. I personaly moved from 'playing' with basic directly to C.
After the core concepts have been taught, and perhaps in parallel, choose a
I remain to this day of the opinion that C is a simple and powerful language where the fundamentals count. I admit that there are some concepts that can be a bit 'hairy' when dealing with C, pointers for example, but they can be taken in stride. I'm not suggesting that C is the only way to go but syntacticly it's simple, the api is small and straight forward (mostly), types are 'reasonably' understandable and the syntax has been largely adopted/adapted by most newer high-level langagues.
One drawback to C is that while it teaches pragmatic programming, things break if you get careless, without apis it's not flashy. You're teaching concepts though so that should be less important. If you're looking for something with more exciting immediate gratification look to another language.
I'd recomend PHP if that's what you're looking for. Again, it's a relatively simple language, and it's typeless which avoids a stumbling block. It can be combined with HTML to give some 'graphical' results.
Why PHP instead of Java? I think Java's api is a bit overwhelming to start with, but that's my opinion. Why not C++? 1) It needs an external api for graphics. 2) In my opinion it's inheritence/overloading syntax *bites*.
Basicly take things in step. Start with concepts. Move to application of concepts. Next, 'practical' application of concepts. Advanced concepts and techniques will come with time/experience. Don't rush things, no good comes from it. A strong background will make learing other langauges and more advanced concepts, OOP for example, less of a task.
That's 'Where to start?' from my perspective. Of course this is all my opinion, and it's based on my experience, so it may be a bit skewed. Take it for what you will.
I am invisble, and you can't see me.
I pwned that game!
First, I don't think it is necessary for every kid in the world to know how to program. I can't tune my car and have no interest in tuning my car so why should I learn how? If a kid expresses interest in programming, go for it, otherwise, don't sweat it.
What tool? Whatever is at hand. What drives the kid? What kind of thing do they want to build? For what it's worth, the first real programming 'language' I learned and really used was Lotus Symphony's @Macro Language. I had a problem, Symphony was the tool provided, learn to code, fix the problem.
Today, Excel or OpenOffice both have fully functional languages that can be used to make very creative apps.
If they're into db type stuff - html, php, apache, MySQL. Total power, lots of cool stuff you can do, tons of sample code available and a great way to break into some highly useful coding concepts.
Bottom line for this message is to to think a bit outside of the typical 'programming' box and think about environments that include programming features. You may be surprised at what the little buggers dream up.
Doug
How about perl for instant (and useful) results now... possibly initially as a cgi script and let them get the output in the familar environment of the webrowser?
UK Laptops
At our school (Note--I'm still in High School) the math program has everybody use these TI-83+ calculators (they're pretty standard, I think). The BASIC programming language that comes with it is really easy to figure out, and the manual that comes with the calculator's pretty good at explaining it. Lots of kids have written their own programs with it without help or anything... so that might be a good place to start if you happen to have one around.
The authors of HTDP have a Scheme distribution that includes a GUI IDE Called Dr Scheme:
.NET languages. If you're looking to learn practice, network with friends/family and find a professional developer that knows some kind of SDLC inside and out and ask them to be a mentor. There is more to software development than writing code (analysis [talking to users], requirements development [talking with users], functional specifications, design, source configuration management [version control, issue tracking, unit, component, system and regression testing, etc.], software metrics [profiling, logging, debugging], QA analysis).
http://www.drscheme.org/
It runs under Mac OS X, Linux and Windows. It has an on-line help system. It is also used in conjunction with the book How to Design Programs (available from MIT on-line: http://www.htdp.org/) , and Structure and Interpretation of Computer Programs http://mitpress.mit.edu/sicp/.
Basic Scheme is very easy to learn. It even makes for easy tranlation from HS Algebra/Geometry/Trig formulas into code. It will quickly teach concepts without having to learn specifics about operating systems or applications.
If you're looking for a job as a programmer (coder), your best bet is to stick with what's popular - Java or one of the
It depends on what your goals are. The simpler the environment is to get started with, the faster your kid will be able to determine if they're even interested. If they eventualy outgrow the environment and there is enough passion, then transitioning to the new environment will be a possibility (not to mention invalueable experience).
- mortis
TRaSh-80, in Junior High. Our Science Teacher cajoled the school into buying one. I think it had 16k of RAM. A few kids took an interest, and we learned BASIC. The whole language reference was in the computer's operator's manual.
But that wasn't even good enough for some of us, so we mastered Z-80 assembler. I, along with a freind, coded a faux Operating System, which fooled the teacher for about 3 hours, into thinking he was running the system, but it would misbehave, lose lines he'd type in, etc. He wised up and hit the reset button, which blew our evil code out of RAM, and reloaded the real OS.
Two years later, in HS, the school outfitted a lab with a dozen TRS-80 Model 3's running DOS, with 5 1/4" floppy drives.
I totally agree, that it's a LOT harder for a kid to get started in programming these days.
I started my kids off by giving them used iMacs, bought from eBay, running OS X. I started them with a little shell scripting. My 11 year old is starting Java on Blue J, using a downloaded copy of Eckles' Thinking In Java, and a lot of help from Dad.
These are my friends, See how they glisten. See this one shine, how he smiles in the light.
I'm 43, fwiw. When I was like 6 or 7, my mom bought me sort of calculator. It was based on a principle similar to an abacus. There were columns of numbers on the face, with a slotted tape in a groove. The tape was half black, and half white. You stuck a stylus (later replaced with a finishing nail) into the groove near the digit of the number you wanted to add. If the part of the tape was black, you pulled down. If white, you pushed up and clicked to increment the next 10's place up. It's hard to explain, but 30 seconds of playing with it and you could do addition and subtraction with carrying.
I had an early LED calculator in high school, but bought a TI98C (I think that was the model number) for college. It didn't have graphing capability, but was programmable via X,Y coordinates that mapped directly to the layout of the keys ("go over 3 keys, then down 7"), so you could run primitive programs on it.
In my sophomore year at UCSB, around 1982, I took an intro to programming class on a lark. Pascal. Didn't like it much.
In my junior year at UCSB, I was in a Psych intro to experimentation class, where you recreated some experiment. The point of the class was choosing your parameters and variables, and how to write up the experiment. I was really sick the first week of class, so when I went to the professor and found out that everyone had broken up into groups the first day, he suggested doing the Prisoner's Choice experiment, using the department computer to simulate opponent's for each of my subject's (you were required to sign up for a minimum number of each other's experiments so each group was guaranteed to have some data). With only the BASIC manual, I wrote the program and only 2 out of 18 people had any idea there wasn't "another computer lab downstairs." It was only later that I realized I had written a complete, albeit pretty simple, program to interact with users.
Eventually I got a job doing tech support, and then later programming. But you asked about introducing kids to computers. For what it's worth, I'd recommend you teach your kids logic and reasoning, make sure they can do basic math and as much more as they're comfortable with, have them read, read, read, and make sure they play sports or have hobbies. Oh yeah! Make sure they have a social life. It's too easy to spend your days and nights in front of a computer.
I do real estate appraisals now. I use Perl because I have to parse web-based information that would have to be transcribed manually otherwise. I use Excel because I have numbers to analyze and billing to manage. I generally don't use Word. I use Photoshop because I love taking pictures and Photoshop lets me make them even better. I use Panda Egg to access the Internet Go Server because it's hard to find people to play Go with in my area. I use lots of Cygwin utilities because I have to work on Win32, but I love the power of knowing how my computer works. I dunno. Maybe you just need to get the kids interested in something, and see if a computer offers them something in that regard. If not, maybe you shouldn't worry about it. Unless a kid really wants to be a hacker type, they can always learn programming and Word/Excel/OO and the OS of their choice later. Anyone can obsessively learn all the details of using a saw and hammer, but building a house can be as much an art as a skill. Anyone can obsessively learn to use a computer; but if you have no real reason for doing so, it's a complete waste.
Seriously. For most non-geekish people, navigating around the UI features that are already there are beyond most people's patience and skill and memory.
I'd be happy if UIs were designed well enough so that even the features they have were obvious let alone the more obscure tricks. If I had to expose any young person to computers today I'd open up a portfolio of commonly usd apps and take them through their paces using however that person EXPECTS the application to be used.
There's a big difference between computer science and rocket science! Go and ask kids if they've ever wondered how a computer works...you'd be very surprised.
My first exposure to computers was via the Pong game console at a friend's house in 1976. Shortly thereafter the video arcade scene exploded with games like pac-man, tank, red baron, tron, centipede, and zaxxon being some of the cutting edge titles in the years that followed. I spent much grass-cutting money in the intervening time in the arcade.
In 1981 (my Junior year in HS) I saw that the school started a computer science course - building a small computer science lab. This was the first such class provided by my school. We had 2 CRT terminals and a printer terminal timeshared off of the school district mini-computer, as well as several NCR machines and a gaggle of Apples.
I learned Fortran on the NCR machines, and Basic on the Apples and via the CRT terminals. Used the CRTs to play dungeon (precursor to Zork), and learned some hackerly things - not realizing the rare opportunity I had. In later years I often wish I had dug into the timeshared machine with more zeal as it was a PDP machine (but slow due to the many terminals attached to it). We used the terminals mainly to load and printout the output of our applications on the printer/terminal.
At this time my parents bought me a TI-99a PC - which had the basic language built-in (would boot into basic interpretor without game/application module installed. I began hacking the box in every waking moment, and learned how to manipulate the sprites to respond to keyboard control to make a small 'ship' move and turn by the user with the arrow keys.
Lodragan Draoidh
The more you explain it, the more I don't understand it. - Mark Twain
This puppy had 49 programmable steps - but it did not have continuous memory so when you turned it off, the program went away! No way to save the programs, you typed them in every time. I loved those red LEDs.....
... is HTML. people often overlook the fact that it's a simple way to start out 'coding.'
As far as the general question of what lured slashdotters to computing? Yikes, what a dream question! Don't you know that's all slashdotters talk about?! As in "when I was starting out the commodore 64 back in the day" or "You think your pentium 3 can't compile fast enough? Try waiting for a Pc Jr!" all the while stroking the white cat in their laps.
I was lately thinking about setting up a comuter for my six-year-old and maybe start introducing him to programming (probably LOGO), but I am concerned that he will end up just playing games all the time. Recently he started playing ksirtet (a tetris clone) on my wife's computer and now he wants to it it all the time, and I do not want him to spend all his time like this. Maybe he will be able to balance it for himself after a while? I find to do it hard for myself! And I do not want to set it up for him just to have to police him all the time...
...remember good 'ol times when IP used to mean Internet Protocol....
For me, it was a bundle of punched cards and some pages of a FORTRAN program listing. It arrived in the mail in a small blue box, one of a series of boxes that I regularly received as part of a subscription called Things of Science around 1967 or so.
Though I was too impatient at the time to sit down and really try to understand how this kind of notation could express some desired behavior, I know that something important clicked for me at that moment. Computers were suddenly tangible things, and their mysteries perhaps not so impenetrable as the popular media of the day had led us to believe. By 1969 I had managed to get a tour of an actual computer. I don't think I got to submit a batch program until around 1972, and that was in BASIC on punched cards. I was absolutely thrilled to get my first printout delivered to me a day later, even though it almost certainly said little more than SYNTAX ERROR.
I'm mentioning these details because I want to suggest just how compelling the act of programming can be to a curious young mind, even in the absence of a rich development environment. Indeed, one can argue that exposure, simplicity, and rapid feedback are the really critical conditions to encourage programming, while the rest is largely cosmetic.
Of course, expectations are very different now than they were thirty years ago, and it may be harder now to capture the attention of an overstimulated, oversupervised child than it was when a transistor radio was the pinnacle of excitement at Christmastime. But human intellectual capacity has not changed, nor has the nature of algorithmic design. Encourage kids who show an interest in programming, and let their curiosity take care of the rest.
Parity: What to do when the weekend comes.
You ask "What was it that drew you to a life of programming?", and then say it's "Offtopic" if I mention pr0n?
Bunch'a hypocrites.
Anyone remember Wordperfect Shell? That thing got me hooked on computers -- or rather, the fact it didn't work.
Pops installed King's Quest I (in all its CGA goodness!) and put a link to it on what I affectionately called "the blue thing" (referring to the colour of the shell), and assigned it to "K". "Press 'K'," I was told, "and you can play this game where you're some knight or something."
"Cool," I thought as I hit 'K', "DAD!!! What does 'C-triangle-Bad command or file name' mean?"
I watched intently as he dumped into DOS to open the program, and he told me to just call him when I wanted to play the game. Alas, I didn't listen and decided to try to replicate his steps. From there, I taught myself how to get around DOS, wiped the drive with overuse of the 'erase' command, and watched again as pops fixed the thing.
As for programming, I actually got into it via BATCH FILES of all things. I discovered that you could get the computer to run several things at a time if you put commands into one file and run it. I started playing with the 'echo' command and drew little ASCII stickmen attached to 'stickman.bat'. Eventually, I wanted to be able to do more, and pops showed me the BASIC manual. Rest is pretty much history.
As for starting a kid off with programming nowadays: I think the best way to get a kid hooked is to show the kid, "YES, YOU CAN GET THE COMPUTER TO DO SOMETHING ALL BY YOURSELF". Start `em off in HTML (Yes, I KNOW it's a markup language, not a programming language). Like batch files, it's a way of getting the kid to feel like "hey, I got the computer to do something cool, with my 'code'." HTML, while simple, does teach that there is a structure of some sort when you want a computer to do something, and syntax matters (IE in quirks-mode notwithstanding). From there, either throw them into something BASIC (pun intended) or even Turing, which is what they use in our school district. Hell, you could even teach them some stuff using JavaScript and stay web-themed, whatever.
The whole point, IMO anyhow, is to first show the kid that YES, s/he can get the computer to do something, it's not rocket science (my apologies to rocket scientists in the audience for again using this cliché), and go from there. YMMV.
But Maaa! Everyone else has a
My very first program was to compute the relativistic time dilation you get when moving at a walking pace. Imagine my disappointment when the result was 1.00000000. I thought that these big machines that could compute thousands (if not millions) of operations per second would at least give me enough digits to see a slight deviation from 1. The answer was no better than what I could get from my Casio calculator.
By the way, I used to punch those cards with a little pin on the end of a dowel. It was practically medieval!
A year or two later I joined the mainstream: programming ZX80s and BBC Micros in BASIC.
Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
I really wanted the Sony (2 x double density disk drive), but it was deemed too expensive by my parents. They bought the darn PC after quite a time of nagging from my side. It even had floppy disks and quite good graphics and sound for that time.
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.
I'd recommend LISP or Scheme; also Logowriter is a good tool. HyperCard is a personal favorite, but very old. The particularly special thing about LISP/Scheme is that it is a philosophical language: it was invented for expression of ideas, and so it makes for a fantastic introduction to ways of thinking about programming, because it's designed to work the way human languages do--i. e., you learn to "think in" LISP/Scheme.
Times have changed. But I think text based is still the way to get into programming.
Even young kids can learn how to code HTML and make their own web pages. (Not that this is really programming, but it is a step in the right direction.)
Then, Linux and C/C++. Give them a good tutorial (book or online), and show them how to do "Hello, World!" using gcc.
The ones who are going to love it will pick up the basic idea in an hour or a day or few days. Then you give them K&R and... they either love it or they won't bother. Some people love it. They get to do what they love (or waste time, writing about it on SlashDot).
Possible Interesting Projects:
- funny programs where the computer complains that it feels funny, and starts going insane and asking the user funny questions and using the input to ask even more insane questions. Another variation of this is the program that looks like the computer is logged out, so you have to enter your password again... actually, if you tell your kid about this one, they will think it is so cool that within a few weeks, they will have been expelled from school.
- text-based role-playing games ("you come to a door on your left. Do you open it? y/n")
- game-of-life - checker board where each square might be empty or contain a fox and/or a mouse. Or modeling a forest fire or an election or the emotions in the stock market or the spread of a disease and the effect of using the vaccine, or...
- micro game of life - try to make a tiny system that behaves chaotically with 1 or 2 or 3 primary variables - "I say yes, you say no, you say stop, I say go" (actually that isn't chaotic; it is pretty predictable) or 3 girls deciding which movie to go to - try to do a three-body-problem where each of 3 objects tries to act in accordance to what the others are doing. Try to make chaotic behavior.
"When the going gets weird, the weird turn pro" -- HST
I started out playing plenty of video games when I was a kid, and I did a lot of basic programming, starting with the programs printed in a children's book, and going from there. I'd say the things that really gave me the most fun and thinking ability were the open ended stuff: Face-Maker, ChemLab, PrintShop, graphics programs, Wolfenstein 3D with map and sprite editors, Doom editors, simple Web publishing apps. (that spans pre-school age through high school)
Basically, anything that gives the kid control and the ability to do something all of his or her own. I'd recommend choosing gift games on that criteria more than anything else... I'd consider Rockstar's GTA3 better for a child than LucasArts' Loom.
When I was 7, my Dad brought home a new Commodore VIC-20. At the time, the VIC was the first color computer under $200. It came with 5k (yeah kilobytes) of RAM, and a tape drive that loaded and stored programs on audio casettes. (Note: turn down the volume on the dual-casette boom box if you attempt to listen to the computer tapes!) The VIC was neat. It loaded Commodore Basic and I could write programs for it. The instruction manual had some programs to print "HELLO" over and over on the screen, some random POKE 16384,128 type stuff to change the screen colors, and some flying bird animations using the commodore special characters (remember the front of the keys?).
Here's the thing. My parents didn't buy me games for the VIC (except Sargon II chess). But what they did do was buy me a subscription to Compute, and Compute's Gazette magazines. These magazines were a goldmine. They contained program listings that I would type into the VIC and store on casettes. That was how I got games. And that is also how I learned about simple debugging. Half the time (well most of the time) there was something wrong with the programs as listed and they just didn't work. I would have to tediously go back through the listing and figure out the problem. Debugging with print statements at age 7 ! I also had a copy of "Compute's first book of VIC" (11.99 at KMart), and I learned how to create sprite graphics by writing over memory with bit fields and printing them to the screen like characters. I doubt I would have the patience for that nowadays.
In high school, I graduated to an Apple 2c. This was the one with a handle on the back, and was "portable". I programmed in BASIC on the Apple also and by then I actually had a couple of games. Remember HACKER with the network of robot tunnels and trading items for spy clues ? :) And there
were always the Zorks (and "Nord and Bert" if anyone remembers). As for
the programming, it continued with magazine listings. But what really
kept me going was Scientific American articles. Each month I couldn't
wait for the Mathematical Recreations sections to come out so I could try
my hand at writing programs to go along with the articles, which often
had cool algorithms in pseudocode. The AK Dewdney book "The Armchair
Universe" was also very interesting to me and I tried to reproduce many
of the programs in there also. I stayed in on many a Friday night playing
around with the 2c while my friends were out doing whatever because I
found the programming much more interesting (I'm a geek I know). I was
heavily into fractals at the time and remember running my mandelbrot generator
and waiting a week for it to render on the 2c (I wasn't aware of "optimization"
or "assembly language"). When the picture finally finished I was pretty
proud of what I'd done.
In high school I also attended a summer computer camp at Ohio State run by the SuperComputer center. That was the first time I ever saw a UNIX machine. If I recall it was some sort of SUN machine - I remember pressing the wrong button, escaping from the graphical environment and watching a lady there annoyingly type some commands to get it back into graphics mode. (Now I know I probably killed X or something). At the camp, groups wrote simulations on Macintoshes in PASCAL that eventually ran on a Cray X-MP and were rendered to video tape. My group did a simulation of a disease spreading through a population (of pixels). The other summer computer program I did was working in the computer lab at Univ of Toledo. I was supposed to be working on debugging Fortran programs to convert molecular modeling files from one format to another but ... well
the prof wasn't there much so I ended up creating multi-page printouts
of fractals using the wide line printer there and ascii characters...just
can't trust high school kids w
I probably owe a lot to the absolutely batty, wild-haired mother of two of the guys in my Boy Scout troop. I had a fairly clear idea of how nuts she was (I'm not kidding...this whole family was about as weird as I've known), but it wasn't until many years later that I realized just how outright hardcore she had been. She helped a few of us earn computing merit badges one year, and I was the only one who cared at all. I think it was Zork that did it. But looking back, she had a 386 Thinkpad triple-booting UNIX, Dos, and OS/2. And she taught me the rudiments of BASIC.
To tell the truth, I didn't understand how hardcore a lot of my early programming was. Connecting via SLIP to the local university so I could "gopher" things...riding a bike to that university's library so I could do the same thing from a VT-100 (not that I knew what it was then) about a million times faster...that 2400->14,400 bps upgrade.
Man, those were really the bad old days. Thanks Mimi.
Given a choice between free speech and free beer, most people will take the beer.
ceebot3 is "like" logo - however it's syntax is similar to C++ and Java.
Try it out, you'll see what I'm talking about.
You know you're a geek if you've ever replied to a tagline.
If you're really lucky, you can teach them the tenants of communism...
Wow, I didn't realize that communism rented out to tenants. How much do they pay in rent? Or is paying rent not one of their tenets?
Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
ok, flame suity on, but try macromedia flash as a starter. Why? well they can draw and animate things without programming, and then they can start to learn how to code and create simple games farily quickly. I know most people here hate flash, but I seriously think it would be a great intro for kids.
Buy an old atari 800x and those old magazines that had source code in them, now that was fun. My Uncle started me out that way.
At 13, my father ordered (for himself mostly) a ZX81. While waiting, I leared to program on a Control Data Cyber 175. I'd played with the PLATO system before, but that's not really "using" a computer, although I knew how to load programs from tape. ;) strategy game that was enjoyable enough that hours were spent playing it.
I kept the ZX81 for a long time, and managed to get everything there was to get out of it. I managed (in 16K) to write a two-player turn-based (what else ?
I finaly got an Apple ][e (128k!), that was a faithful computer for many years, for playing, working, and learning, until I got my first PC (386SX-16, 1M!).
I then went thru the usual upgrades, and finally stoped trying to possess the latest hardware, being content with a perfectly working, non-top-of-the-line PC.
An now my homepage is hosted on a 2.8Ghz Xeon xServe with 1GB ram, remote-backuped to a 1TB raid 5 array...
But never since the days of my Apple did I feel that I had reached the limits of the hardware. Since then, upgrades came before the need, and sloppy programming and bloatware make sure that the simplest tasks require a 4Ghz CPU with 4Gb ram.
Maybe that's why some of us like the challenge of porting to improbable platforms, or simply to try and do something useful on "old" hardware. There is challenge in trying to do something useful or surprising with limited resources.
In my opinion, Scientology is a cult you should avoid.
I got started with AppleBasic in 1982 or thereabouts. We'd got an Apple ][+ because it had some accounting software for farming. For the most part though, it didn't do anything too special. There wasn't a way to get programs from a network. There wasn't an easy way to buy software, as the nearest computer shop was 50-60 miles away. So if you wanted to do something, you had to do it yourself. At first it was just writing Hello programs (and I'm not talking about "Hello World" ones, the Hello program was what ran when you booted the computer and it looked at the floppy in the drive). I suppose that was the closest analogue to theming I had at that point. You could make some really interesting Hello programs with judicious vtab and htab loops.
Then Softdisk came along. That delivered a disk full of programs once a month. You used it for a month, and sent it back and then they sent you a new one. That was exposure to a whole lot of other programs and they usually had some tips and tricks around.
So pretty soon there were the odd flip-spin-twisties you could get from PEEKing and POKEing at the right addresses, and working through books of Basic code, finding the bits that were wrong and correcting them. I got an assembler book at one point and wrote an even faster flip-spin-twisty, and wrote a flight database program for my dad.
And that was it really.
As far as getting kids to want to do it, or try to do it, I'm not sure there's a sure-fire way. But perhaps there are some things:
Well there you have it, for what it's worth.
My elementary school had a computer lab. A very rare thing (this is circa 1988). The had a small elective class thing for second graders that taught logo. You learned the basic commands then had some time to make your own drawing.
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.
Since you have Mac OS X you can use the free development environment; my younger one spent a lot of time playing with interface builder. Sometimes I'd write code to implement some simple function he'd come up with. I could never interest him or his brother (11 and 13) in actual code writing, but it's there waiting for them if they get interested. You can lead a horse to water, but that's about it...
Enroll them in a management class, and then they can hire students in the computer programming class to be interested for them.
paintball
You can take a look at http://www.ienjinia.com/. It is designed for teenagers rather than for kids but my 9 year old son likes it a lot.
Not kidding either.
:)
In year 9 I got into the schools first 'computing' subject. Our teacher Mr Parker gave us a large picture of a computer on a cardboard printout (someone actually sold these things!) and we spent a couple of lessons going through it. Even though he made us press the 'on' picture, each time we used it I knew it would be cool when we got to play with the real thing.
After that it was BASIC programming on punched cards (posted out to Angle Park) - get your list of errors the next week and debug.
By the end of the term I and a couple of others were privelaged enough to be allowed to type in basic programs from a magazine into the schools one compter (an osborne I think).
I still think my kids dont believe me when I tell them this though
You can't expect to wield supreme executive power, just because some watery tart threw a sword at you
What nobody had a Trash 80?
Adventure City Tours
The first time I saw a computer was when I was 10 years old. My father signed me up for an after-school program in NYC where you can run around with other kids, play pool, games, do arts & crafts, etc... One day they took us to a computer center called "Playing To Win" where they had all kinds of computers including the Atari 800, Apple ][e, Macs, Commodores, etc... They started us off with LOGO on the Atari 800 where we learned to move the turtle around, that was a lot of fun back then! We also played games on the 800 like Agent USA and Gateway to Apshai. But even though playing was fun, I was hit by the programming bug through LOGO and started dabbling in BASIC on the Apple ][e (which quickly became THE computer of choice for many years) and once I was an expert at it I taught myself 65C02 machine language and the binary system so that I could get the most out of my Apple ][e. Man, I had sooo many games on that system! My favorite of all time would have to be Ultima V and the Zork series (anybody remember those?) When I was 16 the Apple ][ was dying and though I was still in denial about the whole thing I switched to the PC and learned Pascal. I was lucky because one of the older volunteers at Playing To Win saw what I was doing and took me under his wing, switched me to the PC world, taught me Pascal and Computer Science 101, offered me a job on Wallstreet where I learned C and Unix on the Sun Sparcstations (I was 16!) Once I got that job the rest was easy, I learned more and more languages and started working as a consultant. I'm 31 now and have started milking the .NET wave (every year there's a new fad!) but I can't help but miss the old days when you could program in hex and know the computer inside out. Nowadays I wouldn't even venture into assembly language programming, I don't have the least bit of curiosity since it's so complex nowadays and besides, I hear that unless you're an absolute expert on the specific chip you're programming on, the compiler would do a much better job. Viva Apple ][!!!
>submit
You have moved into a dark place
It is pitch black. You are likely to be eaten by a grue.
When I was 14 (1990), my friends and I played Operation Overkill on a local BBS. There was a part in the game where you would fight other people and random numbers would be counted down separated by periods. It would tell you to hit the space bar at a certain number and the closer you got, the more accurate your fighting was. So, having had a computer in the house for years, I was already somewhat computer literate. A friend and I found the source code for a terminal program and simply added the code to hit the space bar automatically at the right time. The power of computers became obvious to me then and has always been with me.
I knew other people had probably done the same thing since several players had accuracy stats of %99.9.
I was first introduced to computing at the tender age of 4 when my dad sit me down in front of his Commodore 64. At the time he was into games, somewhat as much as I am now. We'd run out of games to play and pick up the Commodore user's magazine and begin punching in the lines of BASIC code printed near the rear. This was a great introduction into programming for me as I learned how to type and some of the code as I typed it out of the magazines.
The C64 was a great educational tool in computers and has been the foundation of all my computer knowledge today. It was able to teach me the basics of programming, file maintenance (across hundreds of 5 1/4" floppies), and even GUI (GEOS 2.0).
Eventually I migrated to DOS, then Windows, and finally in 1995 I started using Linux. I've tried many things since my C64 days, and thankfully that experience I feel has given me an edge when it comes to learning new things in computers.
My advice for someone who is wanting to learn beyond the basics of general computing, give them something that takes a little work to make it run smoothly, trial-by-error is the easiest and fastest way to educate a young mind.
I've never logged in to a word processor, myself. Scads of executions, though.
I found that Logo is just a little bit to simplistic and unusefull.
My maine idea was to take a way as much overhead as possible (think public static void main) and just keep the student focused on the fun parts, the pure algorithms and output.
What I would have wanted is a slightly tweaked Python in a simple IDE with integrated output window and a simplistic debugger.
Unfortunatley I never had time to finish the program (yet), it is a useable program and the code is open for anyone to read but it is still in early alpha and will so be for the foreseable future :(.
If anyone care to have a look at PyStarter a shortcut to programming http://www.gahnstrom.se/tim/pystarter/ feel free to. It would be fun if anyone could use it.
Tim
Question authorities
If the syntax is only "similar" isn't it basically false advertisement to declare that you will "learn Java, C++, and C#"?
Le français vous intéresse?
Both my boys became extremely familiar with the keyboard by the age of eight with this game.
;-)
Of course, it helps that they're limited to old hardware and games - so nethack seems pretty sexy to them.
Ah yes I remember that. You first had to enter the program that accepted the assembly code. Before the HEX-program, they had a decimal version which had about 30% more typing.
Once, after spending about 16 hours straight entering a program to give me an 80 column screen, I accidentally reformatted the disk. I think that was the last time I bothered entering those programs...
Responding to this thread is like pissing in the ocean, but, here goes: Circa 1980, the Radio Shack in Clare, MI put a new TRS-80 on display. During trips to the shopping center (Clare was too small to have a mall), the young Fletch asks his grandmother to drop him at said Radio Shack. There he spends his time copying BASIC programs from the display manual into the machine. Sometimes I wish I could find the people that ran that Radio Shack and thank them for their patience with that ten-year-old kid that would sit there for hours making the machine print "fart" thousands of times.
// This is not a sig.
my mom had this really bulky brick of a laptop when i was young that ran windows 3.1 and i always played with that. plus my dad had/has a computer he was constantly upgrading. i loved to try and help him upgrade harddrives or ask him what he was doing when he started chugging away at the command prompt. I got a computer around age 10 and i havnt been the same since. I now run linux and windows and im getting better everyday :p
My p[arents though are an interesting bunch because they lived on opposite sides of the us and dated via BBS after that met at at an expo.
-- There is a fine line betwen genius and insanity, i have erased that line.
I think that early home computers, I started on a VIC20, encouraged interest in programming more than todays PCs. The reasons are in my opinion the following: 1) you could not break anything (a power cycle was enough) so experimenting was fun and harmless 2) things were easy, eg. writing a moving bird using ASCII was trivial 3) lack of software, with respect to today's numbers. After playing games you had time to get bored and start writing you own, today you can go on forever... so the conclusion is, why not start with an emulator and write some simple BASIC game/program? maybe MSX was better WRT basic but I love C64 :)
1. Don't always shue them out of the computer room while you're working.
Depending on the age, the level of interest could be:
-> let them do a couple of pictures in MSPaint or something, and let them print it out. Especially when they get good at driving the mouse all by themselves (but, if this gets out of hand, it gets expensive in inkjet carts!).
-> older: depending on their and your interests, help them to a couple of internet pages for THEIR interests, as long as they're slightly real. Having two girls, well, anything with real horses on it is a win for me.
-> even older: they'll probably be good at "doing nintendo". Just get them a PC, or better, a CLI-based unix/Linux. start them playing Nethack, and all those other silly character-mode games that are STILL freakin' addicting.
-> then: there's Netrek, XPilot, et al., all X-based games that can have some freaky-good game play. Sure, they're not hyperrealistic. So?
Show them an environment like Squeak. With a modicum of physics coding, you can show them how to create a 3-body "spring" dynamic simulator. Then, throw some sliders to affect spring damping rate and strength. Swing will let it ooble around in 3-d space, too...
Try to apply computer programming thought processes to their worlds, and get them to try to do it, too.
It's not like their first exposure will be the super-leet Commodore PET w/cassette drive, a line printer playing that old mosquito game, either, sitting in the corner of some staff room...
but I used to stare lustily at the TRS-80 catalogs wishing...wishing...wishing... all those things in the catalog were sort of foreign, but I knew I wanted to know about RAM, ROM, 8" floppies, 8" floppies, etc., one way or another.
The hooks were put there from pictures in various places of mainframes, etc., and I just wanted to know how that stuff worked.
Sie bedeuten, selbstverständlich: Ja ist das, was angezogen mir. Das und die Fortrancomputersprache. Durch Gott! Das Gedächtnis von ihm alles!
I have been experimenting for a while with creating some opensource edutainment titles that should work on at least Linux and Windows (and probably other OSs). I want to create high quality educational titles that are free and cross-platform.
The furthest I've gotten is on my coloring book which should be a nice program for teaching kids basic mousing skills as well as whatever they can learn from the pictures' subject matter.
I've also been working on an Oregon Trail type of program and a couple word/number blaster type games which I hope to release to the public eventually. I'm always looking for other game ideas too. I'd like to make a free version of all major commercial edutainment titles.
I really could use help with artwork. I was going to pay someone to help but I lost my job and haven't had the money to do so since.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
For a kid that old (who probably has a pretty firm grip on Win OS and setting up a comp) I would recommend
A. Teach them what you know. What can YOU do with a comp. Do you know any lang? The best thing to teach them is what you actually have a good grip on yourself.
B. if you have the extra bits, Let them build a comp from the ground up. Preferably with an older win os so it¦s not as easy or even better let them build a Linux box. Buy them a A+ cert book or a network+ cert book or a Upgrading and Repairing PCs, by Scott Mueller; (a lot of stuff they don¦t want or need to know but a lot of other good basic info although a bit dry for most kids)
C. Show them where notepad is. Show them where IE is and give them a book on html or point them to a decent website on html (can¦t think of one right now but there¦s lots out there) or better yet if you have any html skills yourself sit down a share it with them. Html is not exactly the most advanced thing in the world but I think it¦s about the modern level of LOGO these days. Pretty easy to get and at least they can do something displayable (hunt down some freebie web space and they can show it to their friends)
D. Introduce them to something along the lines of chipmunk basic (for us old basic hacks) or if you are really serious go ahead and set them down in front of visual basic or c or c++ if you yourself have the skills to teach them. Don¦t under estimate what they can soak up.
E. If they have a game they like, look into if there is a mod community for it and see if they can do some elementary modding. Although this can be a very hard place to start. (and the tools needed may be out of reach) some games like neverwinter nights and FPS¦s like farcry have good map making and/or modding tools built in. Although this is not really programming there can be some creative aspect to it shows them a bit about what goes into a game. This is also a great place for would be artists.
F. Spend time with your kids while they use their computers. computers are not babysitters, hang over their shoulders. See where they browse, what are they interested in see what they know and try to build on it. Show them how to set up dhcp if your house has a server. Show them how you set up your printer, how you shared it with the other comps in your house.
Please forgive my at work and typing fast spelling and grammar
"tell the ones that come after me that 5 is to much"
Am I the only one who's never heard of LOGO? My computer knowledge started when I was 8 and my uncle gave me his old TI-99+. I used to spend days inputting games in TI-BASIC from the source books he had...
Bell Labs made CARDIAC a cardboard computer similar to the one you describe. I actually bought one just a couple of years ago. Here's the contact info I used:l :comspace@aol.com
Comspace Corporation
117 Engineers Drive
Hicksville, NY 11801
Phone:516-942-8191
Fax:516-942-8193
Emai
Webpage (hadn't been updated for a while):
http://hometown.aol.com/comspace/
As of 2003, CARDIAC was 19.95 or a plastic version (for overhead use) was 22.95 + shipping
I got interested in computers just from influence from family and basic necessity. I didn't really get into programming until junior high and Pre-Algebra. I got tired of doing area, perimeter, and volume problems so I wrote basic, 10-20 line programs on my graphing calculator.
.81 seconds what once took you 5 minutes on paper.
A few years later in Geometry and Algebra 2, I wrote other ones for different types of problems. It all came down to me being too lazy to do the really time-consuming problems on my homework. It got to the point where I looked forward to each lesson so that I could figure out a way to automate it. After writing 60-80 line programs (though each line only averaged 10-15 chars) on a calculator, I broke down and bought the linking cable with what money I had. That let me write the programs on my computer then transfer them to my calc and made things a lot more practical.
After wrapping my mind around the logic of it all and learning how to account for every possible situation, things became a lot easier. I dabbled in some C then picked up PHP. I wrote a few web applications for myself and worked on a website for a local company. After seeing I could make money for writing some clever logic statements and database work, I was hooked.
Since then (it's only been a year), I've been doing more in PHP, learning ActionScript, dabbling in flash, and playing around with some of NOAA's XML weather feeds which are going to be the basis for my website. I'm 16 now and I can't help but feel like I've gotten a comparatively late start on it all.
So as for the 13 year old that wants to get interested, well what I did seems to be working for me so far. I had always heard that people either love or hate programming and so far I love it. I mean there's nothing like the joy of making a program work just the way it's supposed to and seeing that you did in
*I* said it was "like/similar" to logo - *I* never advertised anything. The company selling it makes the claims you mentioned - and FWIW they are correct there as well. I am a customer - not the developer.
Ceebot3 uses the logo notion of drawing using a syntax like java/c++/c#: penup();pendown();move(5);
Ceebot4 has more advanced things to do with the robot, and it's A LOT of fun.
Like I said, try it out for yourself.
You know you're a geek if you've ever replied to a tagline.
The first time I used a computer was when my mom , who worked for Apple, brought home one of the first Apple II's. We set it up on the hearth and my brother and I played pinball. In my neightbor hood it was the first computer so all the kids came to play the next day. I also remember years later playing with the first Mac. My mom has told my brother and I that we were Apples first "Aplha" testers. On the weekends my brother and I would go with my mom to the office ,Banley II for those who care, where an Engineer would set us up with some app. and we would play/mess with it until it would blow up. Then the Engineer would come back read the log, fix the bug...
My mom also has told us that we were partly responsible for the design of the Apple II case because we used to sit on them and collapse the lid. Oh the fond memories of when Apple was a fun place to work and play.
My family has been in the computer buisness for decades. My mother helped Apple start its MIS dept. and my Dad came from Apples manufacturing side.
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
Too much Law; not enough Order.
Video games. The whole idea that you could remotely manipulate and interact with imagery on a tv screen just engrossed me.
Wargames with Matthew Broderick.
(note, I suppose Hackers *might* qualify with the "wow" factor, assuming you knew very little about how computers really operate)
That is ridiculously cool.
Asking "How do we get kids interested in computers?" on a website like Slashdot is like asking "How do we get kids interested in working on cars?" in an automotive magazine.
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.
paintball
Much as I hated my Grade 3 teacher, she did a few things right. One week we looked at computers. She held up a diagram with 3 parts and called it a computer. Input, Program and Output. Given two of the three eg Input and Output, we had to figure the third eg Program.
Next was high school. We had access to the Angle Park Schools computing facility. Once a week we would mark our APL cards with a HB pencil (programs often could fit on one card) then next week we got the output.
Finally at Uni I was looking for a half-subject to do along with Botany and I recalled the above two experinces as interesting so I enrolled and the first year was on Card Punch Machines. I think the Grade 3 experience helped a lot.
Slashdot: Where nerds gather to pool their ignorance
from tape.
My sophomore year of high school I took a "computer math" class, the first one that was offered. We were programming in BASIC on Commodore, both the 64's and um, the Pet? Is that right? Then I took a 10 year lull and never touched a computer, but knew I was missing what I should be doing. And look at me now. Still have an old TRS-80 lying around.
Never argue with a man carrying a water buffalo
Neko. A game that I played on an old solaris machine.
If you don't know what it is, neko is this cute cat that chases your on screen mouse and you can try and lure it to sleep then sneak away. It's still fun.
I cut my teeth on an Wang 2200B at high school. Three small-suitcase-sized boxes, a console the size of a SOROC or similar character terminal, a very slow cassette tape storage unit, BASIC and no graphics.
:-) in Z80 macro-assembler.
:-) of rapidly spinning disks or running a HCF* instruction with the interrupts off, none of this namby-pamby blue-screen stuff for us!
The next year I entered the business world with exposure hpBASIC on one of their fabulous colour terminals to CP/M-80 on an S-100 box, then the Apple ][ europlus, Hitachi Peach and Sirius 1/Victor 9000. The Hitachi has "real" colour on a 640x480 screen, the Apple had faux colour at lower res and lots of interesting software, and the Sirius had "Ooooo...!" resolution in black and white (no merely monochrome, but one bit per pixel).
Everything else (except a Cromemco Z3) was character-based, including the DECsystem-10's glass-teletypes and LA-36 DECwriters at Curtin University (then WAIT, the Western Australian Institute of Technology). Nevertheless, us all wannabee hackers loved it and spent ages (plus much printer paper) using hijacked demo accounts to write and improve Star Trek games and the like; I clearly remember being disgusted at having to type a number to get a short range scan, and replacing that with a mnemonic system using some obscure function like STRING$() (different to today's STRING$, which merely replicates a string) to convert that into an index.
Then there was Murphy, the Alpha Micro AM-100 at the Uni of WA's Computer Club. ACC Murphy, because he was so registered with the Hungry Jack's Kids' Club (ACC for A Computer Called). Murphy was a reworked PDP-11 and essentially an open system, since the club had source for everything (legally or not, I have no idea), and since the glass teletypes were the most primitive terminals they had (in the form of the EME-2 kit), I now had actual cursor positioning to play with. It was a revolution.
We could do trivial things, and grow them. For example, the "MAKE" program, used to create an empty file like Unix's "touch" (so you could then edit it) would print "Not war?" if you typed "MAKE LOVE", so I built an expanded version. SiMat was fond of starting transient/testing programs with the sequence "MAKE IT", "EDIT IT" and was quite startled when one day typing "MAKE IT" got the response "Make it what?". MAKE had a whole list of responses now.
Murphy also gave direct access (on one screen only) to a memory-based 64x16 character S-100 display board (DG-640) which could be convinced to turn each character into a 4x2 array of blocks, for a massive 128x64 pixel black and white (again, not even monochrome) graphics display. So Kevin, Indulis, Frank, Graham and Greame and so on wrote things like a 3D lunar lander for "the VideoRAM" while others contented themselves with marching bell-character Space Invaders off into the system monitor and killing the machine. We completely wrote significant portion of the system like the console driver, and devised a program called MONSAV, a precursor to modern power management which would scrape a copy of system memory off into a system-monitor image, allowing the machine to be rebooted and working in about two seconds instead of about a minute.
The 64kB memory limit also occasioned some ingenuity, such as bank-switched versions of the VideoRAM kits
By the time Linux arrived, the kind of hackery which is possible here was already second nature. (-:
I used that commercially to vandalise the postage-stamp-sized (well, maybe 4x3") display on an Osborne 1 to display 160x75 graphics using a 3x2 block-graphics character set and also turned this into a shoot-the-spaceships game (and found a genuine use for the CPIR instruction, how many of y'all nappy-wearers can say that?
In those days, crashing a computer consisted of putting the hard disk heads through the hub of several tens of kilos (yes, bytes and grams
Ah, the fond memories of The Schad0w's double-decker t
Got time? Spend some of it coding or testing
When I was about 4 (14 now), my grandpa was in a computer club. He had numerous different computers, from 20 years old to a month old at a time. I played with the C64 and got interested in the way it worked after I played some games on it. After that, computers just "clicked" with me. I went from playing games on the computers to messing with the insides of them. I just thought of them as INCREDIBLY interesting things.
I hate to say this, but I think I learned a LOT by button pushing.
Most of it went like this: "dammit...shouldn't have hit that. Now, hmmm...how do I fix this damn thing?"
Your child might to leave out the profanity, though.
Usborne does have a great-looking book on sale now called "101 Things to do with your Computer".
In the back of the ZX Spectrum manual was an ASCII chart/instruction set dump. Strange terms like EB-extended and DD-extended. No idea what they meant. Then Electronics & Computing Monthly started a series on Z80 programming. I was hooked. I bought the HiSoft assembler and dove straight into it (at 15 yrs old). All of a sudden those slow BASIC functions became ultra-fast. I was hooked.
The next year, at 16, I bought an Atari 800XL. Wanted a C64, but that was more expensive. I bought the Atari Assembler/Editor cartridge and starting writing 6502. I couldn't have written more than 100 lines of Atari BASIC in the 3 years I owned that machine.
In 1986 I bought an Atari ST (wanted an Amiga500, but it was more expensive). It came with a book (the title of which I can't remember) but it covered 68000 assembly. Oh my God! So many registers, instructions and addressing modes. First order of business was buying HiSoft's Atari ST assembler "DevpacST" (Andy Pennel, the author of DevPac for the ZX Spectrum and Atari ST now works on developer tools at Microsoft, I think). It didn't take me long to learn 68000 and pretty soon I had software sprites flying around on the screen. Big fun.
In '87 I started University, which gave me my first introduction to UNIX. All the Computer Science machines were UNIX. Over time we did 'C', and I got into UNIX systems programming, sockets, networking, etc. In '88 I used my first X Window System machine on a Digital DECStation 3100 and was appauled by the size of the binaries.
One summer vacation I bought a Tandy TRS80 (I think) which had a 6809. Just for fun I learned it and wrote a few little programs.
My work since I graduated (1990) has been mainly networking embedded systems. It has been mostly 'C', occaisionally C++, a couple of times a little 68K, and when I have managed to swing it, a little micontroller work in assembly (just because I love doing things the hard way).
A couple of years ago I discovered the Gameboy Advance development group GBADEV and for the first time in a long time the childhood itch to program a new platform really hit hard. I bought a FLASH cart, downloaded the GCC port for the ARM, bought the ARM book and taught myself ARM assembly and got to work on a couple of projects.
The GBA is really quite retro. It's pretty much impossible for a solo developer to write anything really interesting for the PC. The bar is just too high, with art especially. The GBA, being a relatively trivial system allows hobbyists to get to a level on par with professionals... or at least to be able to see the bar from where they're standing.
Programming is what I do for a living. It's my job, and as such it doesn't give me the pleasure it used to. Protocols and systems programming isn't fun. Send a message from A to B, do shit, send a reply. Nothing visual. It has its challenges, especially making things scale and be performant within the constraints of the protocol and/or the system, but really... yawn... been there, done that, and I can do it again and again (which is why God invented 30yr mortgages). I dabbled with Wind
"Because taking things apart is fun. :)"
Hey, Deemaunik! I took your car apart. It was fun.
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".
Got time? Spend some of it coding or testing
My degree is in MUSIC. Once we started having kids, I decided to pursue another, more lucrative interest - computers. I started out (sucker) pursuing MCSE training at a local community college. Fortunately, the class was canceled after a short time. I'd seen some scripting, though, and became interested in programming. I've learned and done as much as I possibly can since then in every language I can get to.
I'm now working at a school, and we use ASP, Java, Squeak, SQL and Flash to teach the kids. It's really exciting to see kids working with this stuff - I wish I had been exposed to it in high school. It'll be pretty amazing to see where THEY take us.
http://www.cravistan.com/
My answer the same + your in first spot so I'll hop on and answer the question here :-)
:)
:)
:) It would've been a completely different story for me would've had the Internet when I was born! Many here have intense souvenirs of the first couple of times they played doom or dune 2 I'm sure ;) I sure wonder how it would be if I'd be 5yrs old all over again today!
:) I had bunch of different computers when I was young thanks to my parents for believing in my ideas even knowing nothing at all about video games (my dad idea of a video game stop at a pinball machine methink, well I remember he raced me a few times on my t1000 as the f1 game with the big square ugly joysticks :)! Also, I bought my first computer when I was 11yrs old, it was a 486DX2/66 with a 300mb HD. It was a built in canada clone sold at Wallmark that I had for a bargin price of 1600$!
I built my first pentium clone when I was 12 :-) Of course I capitalized on the fact that at the time I know more about computers than 95% of my smalltown population... Thanks to Linux! I must have done thousands of windose reinstall for individuals who had brand new computers but had no ideas how it worked or how to make it work. I couldn't have done it for this long without having my stable linux distro waiting for me at home! But also the open source community and slashdot and all the hackers out there heh.. thanks!
:-) But then maybe Mac OS or BSD
What was it that drew you to a life of programming?
Zillion by Sega 1987 japan. I was 5 yrs old at the time and I just had my first ever console (a sega master system!) and Zillion was available for rent in a nearby corner store. I rented it so many times that I probably paid the cartridge 2 or 3 times... I enjoyed this game so much that made me realize I wanted to create cool games like this for everyone to enjoy!
Of course today masterpiece games aren't mariobros like simple 2D scroller anymore and I now learn advanced mathematics to create better software and of course write cool 3D engines for video games
Anyway, I had tried Qbasic before but realized it wasn't what I needed by the time I was 6 and my parents knew far less about computers than me at the time... oh and where I lived no internet before 1996 although I owned a bbs for a short period of time in 95. But it was in 94 I had my first power C compiler (with no docs! I had to learn reading the headers at first). Anyway.. All these adventurer with compilers and the back than mysterious world of computer programming was fascinating and gave me alot of knowledge. Like english, DOS and QBasic is what bootstrapped my english learning process
In 1996, I also discovered Linux (when I had the internet!) and I was so glad to have a decent alternative to windows 95 back then I spent most of this year learning how to install first slackware then I tried redhat and didn't like and went on to Debian! As soon as I had mastered the basic X stuff and knew how to compile and learned gcc, I discovered about Sam Latinga work on SDL (Simple Directmedia Layer) and his C api to write crossplatform games! I spent most of my time during my last 3 years of high school writing simple 2d game engines at night in the basement of my parents house (and playing lots of games of course!)
I added alot of details in the above story to better point out the fact that today with Internet and the games things changed aload
My first computer was a Tandy1000 when I was 3yrs old and I recall the event of my 51/2 floppy drive dying as one of the saddest event in my childhood
What pieces of modern software do you think would be a good way to introduce today's kids to the world of computing?
Depends what kind of kids and how old he is. Linux is the best answer I can find too because nomatter how old you are you'll benefit from using a windows free OS
Yeah that's great! Children and computers. Lull them in to a false sense of security!
It'll make it easier for the Machines when the day comes to enslave mankind.
I'm totally with you. Great idea (nudge nudge wink wink).
-- Machine-posing-as-Human #405334
------ The best brain training is now totally free : )
Computational structures and concepts second?
I am trying to figure out how to introduce advanced mathematical concepts to my child. For example: it seems like even young kids could intuitively grasp concepts like rates of change (differentiation) and areas under curves (integration). Both can be demonstrated by (potentially fun) physics experiments.
It would seem a better use of formative brain-years to grasp universal concepts like this before jumping in to specific computational structures. Would seem that the young-un would be better prepared to learn *many* structures and languages after that - and maybe even develop their own.
Thoughts?
...'coz it had more colours and sounds than MBASIC.
Got time? Spend some of it coding or testing
I had doinked a little w/a Commodore-64 but never really got into it (didn't know it could do anything beyond word pocessing) but then a high-school physics teacher was wielding a soldering iron over a defunct full-height 5.25" floppy drive from an old TRS-80 somebody had donated and when he was done it worked! So I asked him, out of idle curiousity, what was wrong with it and he told me - damn him! :)
Anyways, I have to say it really took off for me once I started to run my own BBS. 2400 baud on my 286, TriBBS if I recall correctly. Setting up Fidonet wasn't the most enjoyable tho but I have to say I learnt alot both programming and configuring software.
I started my kids at age 2, well not programming but getting them familiar with computers. My daugther is 5 and has been able to switch cd's and play all her games since she was about 2. Educational games are pretty good, they teach and are actually fun.
If she gets more interested i'll teach her how to install new games, start using productivity software like Word. Next year she starts getting real homework so it may be handy. Then i'll show her some other apps, maybe she'll have some school assignments where I can work in some other software.
If she actually starts getting interested in programming i'm not sure where i'd start. Maybe something similar to visual basic or web page stuff..... If she yearns for more then i'll get serious, C, Java, Perl... It will all depend on what she's interested in.
Long time to ponder that tho.. Maybe i'll have my computer reduced to a pile a pulp by then. I don't think i'd recommend the industry to her, i'd advise something that didn't involve sitting behind a desk most of the day.
"Thanks to the remote control I have the attention span of a gerbil."
I started out on a black-and-white all-in-one Mac, when I was somewhere between 4 and 7. I only used Kid Pix and what was probably Simpletext at first, but later my dad bought us a computer with colour, and I learned Photoshop. I'm 16 now, and still enjoy Photoshop on both Mac and PC (the non-MDI Mac versions are, of course, far superiour, but what can you do).
This little code snippet was useful back when they had atari and other computers on display in department stores. While mom was off shopping, I could type in a quick program that would clear the screen and print the command prompt (which is all those displays did back then). Then the first person to walk up and touch a key would be greeted with a big error message and random screen color fireworks. Yes, that would amuse me back then.
f u cn rd ths u cn gt a gd jb n cmptr prgmng
GVR is like karel, but with more python coolness. They also maintain a list of a fes karel-related links on their site.
My first direct experiences with computers came through school. First from field trips to the local Christmas train show, where the local utility company ran the display on a really interesting looking computer, and gave the kids ASCII art printouts after the tour. My second early memory is from a gifted program in 1st-3rd grade, where we had access to a Pet computer (if memory serves). Alas, access to that was ended because I was in the program for reading (I was reading on the adult level at that time), and they ended the reading, but not the mathematic program.
:)
:)
Two things I think can be learned from that. One, giving kids early experience with computers is really important. Two, since I did have mathematical ability as later demonstrated, and a lifelong interest in computers, not giving kids access to programs when they show interest is not a good thing.
From there I remember buying a popular electronics (?) magazine in 1981(?) with many articles and ads about computers and reading it over and over again. I was determined to get a computer at that point, and soon I had a Timex Sinclair. Power!
After awhile, I graduated to a C64. At first I only had a tape drive, but eventually I had a disk drive, and a modem too - which had autodial, but it was pulse! Lol, 300 baud, those where the days. Having a modem opened up the computer world, as I was able to connect to other people interested in computers. I remember pouring over listings in computer shopper (?) and CompuServe, and calling long distance boards until I finally found local BBS's. At that point, my fate was sealed. FYI I still remember Adventure from CompuServe, and Zork afterwards on the C64 and Apples at school. Those Text adventures should be revived, maybe with voice input/ recognization, because they came closest to the way computers should interact with people, by verbal commands.
I think from that that communication, being able to connect, and well written manuals (that C64 manual was well written btw) is important for growth.
Also, co-operative spirit is good. I still remember some of the most helpful people at the time, like the person who spent a lot of time giving me an xmodem listing in basic, so I could use it to transfer over a better terminal then I had, or the ham radio operator of the grocery chain based locally who ran a bbs.
Also, like organizations and being able to get together can be important, like the chess club, or the L5 society, or the computer club. Good entertainment promoting the occupation can't hurt either, like star trek, or star wars.
Lastly, it was a good bet that I'd be interested and exposed to computers. My father was an aerospace engineer for McDonald Douglas before the layoffs in the 70s, and sold mainframe and mini computers for a long time after that, and my mother finished a computer science degree in the early 80s and worked as a computer operator at the time. I still remember logging onto the Vax system at her college. Recently, I found some old transcripts from my grandmother and found out that she took computer programming classes in the 60s (with A's), so it probably runs in the family!
I remeber the day our $2000 486 with 48 MB of RAM showed up. One of the first things I remember doing on it was sitting there with my dad (this would have been around 5 or 6) as we took a picture of a spider and zoomed in and out to ridicuous proportions. I was fascinated by the fact that as you got closer, the detail changed (as an obvious result of the resolution, I realize now), and at a certain point, all you could see was a blank blue screen (not Windows' middle finger, for once); in any case, I ended up enthralled by computers.
Eventually, I got my hands on a copy of the DOS manual, and became somewhat of a DOS wizard (for being about 7), and was dismayed to find the absence of QBASIC. I so wanted to program in that skiing program!
Anyway, interest soon shifted to Command & Conquer: Red Alert, and the endless after-school days of 4 pixel bloodshed whist pitted against my best friend over a 14400 modem (he had the glorious 28800 with a second phone line).
By freshman year, my interest in real computing took off, and since I've learned a few real programming languages, but mostly lived off online tutorials of CSS/PHP/SQL...whatever I didn't know yet.
And now, this weekend, I plan on installing a version of Linux (Which should I try first: SUSE or Mandrake? Send your recommendation to adlaiff6@gmail.com--suck it, spambots), and what new wonders could await?
Then it is Logo, just with different syntax. What you have described in no way teaches java/C++/C#, it teaches you Ceebot, which you can then easily translate into a knowledge of Logo. penup() and pendown() have nothing to do with java/c++/c# except for the similar syntax.
And syntax is probably about 1% of learning programming.
Le français vous intéresse?
I work for a group called the Learning Technology Center at the Science Museum of Minnesota.
We use Microworlds to teach 9-12 year olds how to make some pretty fun video games. Microworlds is built on top of Logo, which I still think is one of the best ways to learn programing.
But at a younger age just teaching kids how to mouse and click it pretty important. The same company that makes Microworlds also makes My Make Beleive Castle which is a great little pre-programing introduction to controlable actions.
Sin lies only in hurting other people unnecessarily. All other sins are invented nonsense. - Robert A. Heinlein
10 Print "Hello"
20 GOTO 10
That was it. I was about 6 and my dad typed that in. I could easily understand it and soon was typing up all sorts of programs. This was back in the good ole C-64 days.
Make sure you use Linux if you want them to feel safe.
this is primary reason she boots Linux on her computer
First computer i saw was my uncles ibm /50 doing morse translation through all kinds of gadgetry from his kick ass ham kit.
i say this as i sit with a sun box, athlon 64, ibm rs 6000, PA-RISC, netbsd laptop and god knows what else around me...
a memory way too good to be ignored to be posted to slashdot and ignored as AC
that got me into my sisters C64 (which she attempted to use for DTP..)
fun fun fun
Anybody have any experience with Dark Basic?http://darkbasic.thegamecreators.com/
My son has made some simple 3D games that look good to me (I am not a programer), but I am wondering if this would eventually have some limits and if his time might be better spent on something like Python.
My younger son got hooked early on Bryce, the unique 3d graphics program. At the age of fourteen he could do things with groups and inverted space that I would never have thought possible. He topped out developing web sites with imagemapped renderings so that from a browser you felt as though you were moving through a Myst-like game.
Now he wants to use Maya, but not with a watermark, and he does not want to blow a couple of thousand on the full release.
So now he is a FF-XI junkie. I hope we get the Maya thing resolved soon, so that he gets back to being creative.
To summarize, learning computers is no longer limited to programming or sys admin chores. The PC's role in new media has redefined roles -- these are not your childhood computers.
Gary Dunn
Open Slate Project
REALbasic is a great environment/language for beginners (and experienced programmers for that matter. It's visual and has a modern, object-oriented version of BASIC.
http://www.realbasic.com/
By useing Visual Pinball http://www.vp-originals.com/dload.php?action=file& file_id=29
http://www.vpforums.com/modules.php?s=&name=Downlo ads&d_op=getit&lid=8
http://www.flipperless.com/modules.php?op=modload& name=UpDownload&file=index&req=getit&lid=175
XP SP2 needs a new exe that is hear
http://www.flipperless.com/modules.php?op=modload& name=UpDownload&file=index&req=getit&lid=257
There tables hear
http://www.vpforums.com/forum/
and hear
http://www.shivasite.com/
aslo get vpinmame to play real pinball games with it too
http://www.pinmame.com/
Regarding the follow up question about what to teach young people today, I would suggest that maybe Flash from Macromedia could be the perfect choice. It's a peculiar tool, as its fundamentally divided into design/animation and coding sections. However both sections are failr proficient at what they aim to achieve. The nice thing about the Actionscript language, in terms of learning,is its immediate visual responsiveness. I used to love typing a line in Basic, hitting run, and watching what happens, without tedious compile times. Actionscript provides this, as well the thrill of simply manipulating potentially dazzling vector graphics with a single command... The language itself has evolved quite considerably form a few years back, and is now quite nicely object oriented (based on ECMA Scrit ala JavaScript), so paves the way for introductions to higher languages, its syntax is also more similar to C/Java than Basic/Pascal, saving that awkward jump later on. Of course one great bonus that any creations can be immediately put up on the Web, and viewed with a browser, this alone makes it, in my view, extremely interesting as a teaching tool.
Really Logo wasn't intended to teach programming (though of course it did that). It was intended to teach math, and algorithmic thinking, and thinking in general. And, paired with the right teacher and an interested pupil, it's really great at that. Without realizing it, a child can end up learning not just geometry (through the turtle graphics), but a lot of pre-algebra. I think programming is a far more accessible way to introduce algebra than the traditional techniques; even young children can understand variables in programs, when the declarative variables that are used in mathematics are much more challenging.
It's also a better language than many of "teaching" languages, like Basic. It's an old-school version of Lisp, with a little tweak to avoid the parenthesis. And don't be fooled by things that call themselves Logo when they are just turtle graphics. Turtle graphics are cool, but just a piece of the equation. (Though not-so-coincidentally, Python has built-in turtle graphics).
If you are really interested in programming as education, I might recommend the book Mindstorms, which is a classic about some of the theory behind teaching with Logo. It's not a practical guide, though many of those also exist.
If you are looking for a Logo implementation, on Windows I would recommend Elica, MSWLogo, and UCBLogo, in that order. On Mac or Linux, you can use UCBLogo, Turtle Tracks (a cross-platform Java implementation), or on Mac one of a number of (rather expensive) commercial Logos. If you are a programmer and feel like fiddling alongside your child, you might try my project PyLogo, which is cross-platform and written in Python, but quite rough around the edges. Or if you want something that is Logo, but pretends to be a general-purpose scripting language, look at Rebol. Or for a slightly-lame but functional embedded robot Logo, Cricket Logo. Or for older people, NetLogo is a massively-multitasking implementation to use to play around with autonomous entities (e.g., ant simulations). NetLogo is kind of the successor to StarLogo.
For more information on Logo, you can look at the Logo Foundation, or get in touch with many helpful users in the LogoForum Yahoo Group.
My dad went off and bought a TRS80 Model I one day to use it for 'work'. He never did, but from that day on I would be up in the study until all hours of the morning. I wrote a filesystem for the audio cassette, a couple of games, and numerous other software hacks.
:-) ), and got it moving via software. It was cool. I only had forward/reverse, and a couple of microswitches to detect objects. So I could only do basic stuff, but it was still cool.
I also used to have capsela, (?sp), which comprised of these plastic building blocks that could be joined together. They had gears, motors, and switches. I connected the switches up to the parellel port of the Trash 80, (Back EMF? What's that?
Those many hours on a Trash 80 were cool. That was when hacking was real hacking, and none of this GUI stuff.
-- main(s){printf(s="main(s){printf(s=%c%s%c,34,s,34
O how I absolutely LOVED my mac LC II. I would play dark castle and the pseudo-3D spectre untill my heart's content. The Mac OS rocked in those days compared to text based dos prompts, I had a full graphical GUI at my command.
Operation Desert Storm was Bungie's (you know, the halo people) FIRST GAME. It was mac only and so much fun to shoot at other tanks. Minotaur (another early bungie game) was a hoot playing multiplayer with other macheads across Serial ports on a Localtalk network, when windows networking was still in its embryonic stages.
The mac always had a strong shareware base, I remember downloading Ambrosia's Maelstrom from AOL and waiting FOREVER for it to finish.
Some others weret Pirates by Sid Mier, or the Origional Railroad Tycoon. SimCity was first to the Mac, and its still Will Wright's platform of choice.
Apple is and always will be a company of innovation. I am so happy I was Drinking the Apple Kool-Aid during those first years, and my were they fun.
In high school I was required to purchase a TI-82 graphing calculator. This was 1993 or so. I saw other kids had some kind dragon quest role playing games on them so I wrote my own. It was a football game that was choice based..."Do you want to run or pass?" "Do you want to punt". It used the random number generator to generate yards per play..."You completed a 23.445683 yard pass play". Something like that. I didn't know I was programming at the time. Years later I learned HTML to create my own porn sites, and from HTML I tried VB, which led me to C++.
Look, I'm apparently not getting through to you - I think I've been pretty clear and you manage to completely miss the point.
This should be clear enough:
DOWNLOAD IT YOURSELF AND TRY IT!
K?
You know you're a geek if you've ever replied to a tagline.
The first programming class my college tossed me into was a Programming Logic course and besides covering the fundamental structures, we had to create small Java apps to start seeing how the things worked. Granted we didn't get far because most of the class were bogged down by the logic side of things, but it's a really simplistic start. Plus there's TONS of resources and tutorials out there to get somebody started.
Stagecast Creator.
When I was 10-11 (1990 or so) years old my father got an obsolete Prologica CP500 (an TRS80-clone made in Brazil in 1981~1985) and teached me and my brother simple (ROM-) BASIC programs. 10 print "enter code" 20 input A 30 print "you wrote: " A After the first game I executed on the machine (it was Asteroid) the (two!) floppys died, so the fun was to write thousands of lines of code only to turn off the computer after run the thing, losing all the work.
He was among the first to show up to meetings with a computer running Visicalc. One of the execs would always want to quibble about some number, so Dad changed the number and recalculated. The execs would then be so fascinated by the computer, they'd forget what the meeting was about. They'd spend the rest of the meeting having him change some number or another just to see what it would do to the figures. After which they'd sign off on nearly anything he asked for.
Eventually, he came to be the exec; CIO, to be precise. Not that he could ever have been a PHB; he knew too much about what was involved. (Besides, he had no hair.) I remember working in my summer job and a couple of guys -- obviously angry -- were talking about me with raised voices. I wondered what I had done to tick them off. It took a bit for me to realize they weren't talking about me. They were mad at Dad for not buying one of those new color lasers that had just come out. (They couldn't cost-justify the thing, and Dad was still an accountant.)
Not that Dad always kept up. One night I found him in the kitchen with a bowl filled with little scraps of paper with numbers on them. Turns out he just needed to generate "x" random numbers between one and "y" with no repeats. I rolled my eyes, went downstairs and banged out a BASIC program on the DEC Rainbow. Next day he took the code printout into work and made some poor shmuck code the same thing onto the mainframe so he could do it at work. Another time, I remember trying to talk through a code problem and he suggested that I dump core memory. I spent the next half-hour trying to explain interactive debuggers.
It's not surprising I wound up working in computers. Looking back I realize that Dad was a piece of history, one of the guys who made business communications work with acoustic couplers and 300-baud modems. Who put together the Information Age with punch cards, bits of wire and hexadecimal arithmetic.
Damn, I miss him.
===== Murphy's Law is recursive. =====
A slightly more economical alternative is MindRover, a "3D strategy/programming game" where you program robots and have them battle each other and solve mazes in a 3D world. It has a native Linux port, too!
Keep on the alert for ANY form of computer addiction... *especially* games and internet (browsing).
I got addicted to computers... games espescially (VIC20->C64->PC->Amiga->PC), that cost me years of my life.
I teach programming (among other things) to students in grades 6, 7, 8, and 9.
I teach languages in this order:
Grade 6-DRAPE
Grade 7-LOGO
Grade 8-BASIC
Grade 9-JAVASCRIPT
I highly recommend DRAPE as a way to teach programming concepts in a simple fashion. It is a FREE programming language with a simple point and click interface. Check it out!
Click HERE to go to the DRAPE homepage.
An invasion of armies can be resisted, but not an idea whose time has come. - Victor Hugo
At 11, I was really into science, chemistry, electronics, basically anything technology. I copied everything down in my "files." Unfortunately, that meant a lot of paper and no way to easily look it up.
I had no idea what a computer was or how it worked. Although my brother-in-law had a TRS-80 and I loved being able to make words appear on the screen just by typing.
Then, I found an analog "computer" in the Edmunds Scientific catalog (remember those?) and, not knowing anything about memory, assumed that I could put all my "files" into that. Good thing I didn't buy one.
Around age 16 (?) I found a CoCo at Radio Shack one day and typed in a BASICk program from the book, not realizing I had to press Return at the end of each line. Wasted an afternoon.
Then I saved up and bought an original VIC-20 ($399), typed in all the interesting programs in the book, got a "VIC-20 Reference Guide" (Remember those?) and then it "clicked." I was writing machine language soon after.
Also bought an original C64 at $595.
Damn, that's a lot of money for 64K, 1.07MHz CPU, and 16 colors.
Lots of times dads are hiding something on the computer, i.e. PR0N, emails from the mistress, etc. ! So it may not be an issue of trust, it may be that he is hiding something in a little locked corner of the "Family PC". I have heard plenty of these I found my dad's pr0n stories.
Being stubborn and not wanting to disappoint my parents, I learned how to fix it. That's how I learned it, and it's still my best way of learning to do this day. Blow shit up and find a way to put it back together
Berto
My first memories of computers was some old text based machine that could only do text stuff. I think I was 5 at the time (I'm 14 now).
I've always had a computer in my house (at least one) since I was born (parents bought their first home comp in 1978, an Apple ][, I was born in 1979). I always pretty much delegated myself to playing games, but when I was 5 or 6, something I didn't appreciate at the time but I really do now, is that my Dad spent his entire Christmas vacation one year, 5 or 6 hours a day, and taught me the basics of BASIC. I spent the next few years writing my own little games, and it sparked the creative knowledge in the analytical part of my brain. At 25, I'm still a programmer, and will always be a programmer. It's my hobby and my love, and it's a great field to be in.
-- Jinsaku
3demon?
it had The Entertainer for music
wang 700, Scientific Data Systems, Fortran 1970
then IBM 360 assembler 1972, Then Burroughs 5500 Cobol 1973, Then DEC machines of every flavor, OS and Language [you all remember BLISS, right?]. In other words, I was simply starved for programming oportunities from the day I was born...its a nice extra that they pay for programming [even in India!]
No one showed me to a computer...I broke into places to get my hands on the blinky beauties!
Being a geek, I married a geekette. but surprise surprise, our first kid turned out to be a hippie...absolutely hated the computer summer camp and never did more than word process and play computer games on the Mac. Now 30 something, she thinks nothing of downloading BIOS upgrades for her laptop...but that level of interest and experience was 15 years in the making.
Our second was all but born at a keyboard, can't handwrite a legible word but learns any app you put in front of him in about an hour, excelerator keys and all. I gave him a Mepis live CD last week and he was suddenly liberated from MS. He installs HW and reconfigures SW with RTFM. He could not get a computer of his own soon enough.
REALLY it depends much more on the nature of the kid than on what the parent does.
SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
Wargames too.
--
"Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
I first started to use a computer when I was 4. My Dad had a Commodore 64/128. He use to surf the BBSes all the time. I remember calling my mother over and saying "Watch this!" He then printed off all of the passwords and usernames of a particular BBS.
I wanted to be real smart like that. As I got older I had a Sega Genesis. I had been fooling around with C64 BASIC for awhile. I was playing Sonic Spinball for the Genesis and pondered on how they could put all of those graphics on the screen or how they could move two objects at once. My programming mindset was very linear. So I theorized and came up with many stupid theories.
Eventually I got a hold of a GB emulatator that did decompiling. I watched all the registers and studied how that machine functioned. Just tracing through all those lines of decompiled programming taught me lots on how games and computers worked.
My first introduction to computing occurred when I was ten years old and my dad (the electrical engineer) was building a robot in our basement out of a car battery, a Z-80 chip, and the usual collection of stepper motors and sensors. He taught me the basics of assembly language, and I was hooked by being able to control the robot. For this reason, I tend to think that Lego Mindstorms were one of the best ways to teach kids how to program.
Another awesome tool that I ran into was called TWIPS - the twelve instruction programming system. It was essentally a tiny model of an assembly language system with only twelve basic instructions. You were given 1000 spaces of memory in which to store all instructions and data and had to write functional programs in it.
This system made it a snap to explain stacks, heaps, registers, endian, binary numbers, and dozens of other basic concepts in computing. Unfortunately, with higher level programming, many of these ideas may be entirely superfluous. Nonetheless, it was quite a bit of fun.
Does anyone out there have a copy of the original TWIPS? I wrote my own for teaching my friends, but I'd love to get a copy of the original.
Wake up - the future is arriving faster than you think.
"Ok, son, whatcha got going on, there?"
"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!
Farewell! It's been a fine buncha years!
Is this where I get to reminisce about how:
...or is this where I go sit in the corner, gazing out the window, and drooling on my bib?
the only computer I got to use as a kid was the roll-printing adding machine at my dad's office...
I learned to type on a manual (i.e. non-electric) typewriter...
the first computer game I owned was a B&W Pong knock-off...
the first "real" computer I got to use was in a high school class for advanced nerds (first a card-punch terminal, then a CRT terminal connected to a DEC PDP, and finally a TRS-80 model I and an Apple ][+)...
the first computer I ever bought was an Atari 400 with 16KB RAM and a cassette drive...
I wrote my college papers on a C64, and did my programming homework on VT101's connected to a new Vax 11...
I mail-ordered (by postal money order) a "Turbo PC" XT clone from a Texan kid named Mike Dell...
my career got started as "the PC guy" developing financial models with Lotus 1-2-3 rel.1a...
I operated my first Web server on a 486 running Windows 3.1...
http://alternatives.rzero.com/
You were lucky... ... Bah, I'm too tired, you figure it yourself... Something about moving stones uphill on hands and knees.
I started out playing some DOS games. Never really got into computers then. After a while my friends and I got into digital media (a crappy snowboard videos) and me being the nerdiest of the group decided to make a website. I had done stuff before this that was more game related (some really stupid maps). It was the combination of games and web dev. that got me into computers. Ever since then, I have been doing all sorts of stuff, and love learn about computers. My current topic is graphics, I got Quake 2 code and started learning OpenGL + C. I love this crap.
Anyway that wasn't really the question. Just try to connect computer use to whatever kids do. Lego Mindstorms is good, how about music recording, or crappy snowboarding videos? Make it fun.
Got time? Spend some of it coding or testing
why introduce childrens to computing anyway? i mean, look at us... ;)
Pretty inexpensive to get started with, something that you don't come in contact with on every visit to Wally World, and quick easy projects that actually do something in the real world! Check out the "PIC Microcontroller Project Book" to get more information on getting started... http://www.amazon.com/exec/obidos/ASIN/0071354794/ qid=1104802358/sr=2-1/ref=pd_ka_b_2_1/103-1303745- 1158269
My first real exposure to technology was in the form of a Radio Shack 200 in 1 kit. These are those kits where electronic components' terminals are attached to springs to allow for the experimenter to rewire them as per the instruction booklet. My friend encouraged me to try connecting parts randomly to see if I could make something happen. Of course I couldn't get it to do anything, but the experience piqued my interest in tinkering with things. As my upbringing was not conductive to.. let's say.. education, I turned to computer programming since the Internet had tutorials that I could read.
--------
It's OK to be social, just don't tell anyone about it.
Here's three free, current programming environments that are suitable for introducing programming (that no one seems to have mentioned yet.)
1. Design by Number
Created by John Maeda of MIT, this is a very simple graphics-oriented programming language. Maeda created it for artists and there an associated book. Like a sparse Logo, it keeps everything to a bare minimum. Has a web applet that allows interpreted programming to try it out.
DBN web site
2. Processing
DBN is no longer maintained, and a more complex graphics language emedded in Java (with a single-line interpreter for ease of use) has been developed by Ben Fry and Casey Reas of MIT.
Processing web site
3. Robocode
Developed at AlphaWork at IBM, this is a Java environment for programming your own virtual robots that then shoot each other. Has a 2d battle arena in which little tanks move and shoot. (Classic idea, just a nice implementation). You can program as much or as little intelligence as you wish. Designed for teaching Java.
Robocode web site
I was around 5 when I used a computer, a C64 that my parents bought for my brother and I. I never really did start programming, but played around a little with BASIC, but mostly played games (Space Taxi and Bruce Lee!!) I got into computers from my brother mostly, and as I got into computers my little cousin who hung around me started getting into them too.
Therefore, I don't think that putting a kid in front of a computer will make them like computers. You have to just set an example, and your kids will be interested in what you're doing. If the stuff you're doing is just too complicated, but they show interest, maybe check out DarkBasic. It's a BASIC like language that is used to quickly create games. I took a quick look at it a couple year ago and it seemed pretty cool, and simple.
Don't trust a bull's horn, a doberman's tooth, a runaway horse or me.
Our Highschool had a planetarium. We programmed it with a paper tape. A loop was just that, you looped a piece of the paper, taped it with cylophane tape, and then reproduced that in the tape reproducer.
There was a switch that you clicked when you wanted the program to advance.
This ran the stars and planets and the lights.
It was a lot of fun.
Then I got a TI calculator that was programmable.
Before that I built switching networks with my HO trains. That taught me about ground loops and relays. I didn't know these were switching networks, but that is how I first got into networks and wiring.
The TI calculator had a book about trains and relating that to programming, so that turned me on and made programming easy.
After that it was punch cards in college. Even though we have CRT's on the computer, the upper classman hogged the permissions. The card decks batched at top priority so I was able to run those between classes. This was for a fortran class.
Now I use KATE and do PHP scripts at home making websites.
I was 8 or 9. Father had an Enterprise 64 home computer.
:) :)
No permanent storage device(tape recorder). Just the computer and an IS-BASIC cartridge.
My first program that I remember was an alarm clock. I remember setting it with my brother and sister and then pretending we were asleep so we could wait for it
Next was a dice-throwing game, complete with graphics, and a failed attempt at a space shoot'em up. And then we got a tape recorder and I started playing games
So I guess my advice is "don't install any games". And have QBasic or something installed, and a good, simple book on it somewhere accessible.
When I was in 6th or 7th grade (don't remember which), our school got its first set of computers. All 16 Apple IIe computers were lined up on one wall of the library until somebody could figure out what to use them for. The school had very few programs.. Oregon Trail and a typing one, mostly. Some kids had Apple's at home, though, and very quickly, BurgerTime and Mario Bros joined the list as unlabled disks that we all knew about.
Anyway, I was in "honor study hall" back then since I always finished my homework quickly and never needed to study. Bored smart kids are good at coming up with creative mischief in study hall so they shipped 10 of us to the library instead where we could do whatever we wanted.
What we wanted to do was play Mario Bros and BurgerTime on the new computers. The librarian, though, wanted us to work for it. She happened to have a subscription to an Apple magazine.. type type that, back then, always had BASIC program listings in them. The C64 equivalent would be "Run" but I don't remember what the Apple one was called, anymore. Anyway, she had a rule that if we wanted to play a non-educational game, we first had to type in and correctly run a program from the magazine. Smart lady!
The first program we typed in was a "word muncher" type one where letters came down the screen and we had to type it before it got to the bottom. It was very simple (the letters weren't random, the speed was constant, the location was constant, etc). We all finished it and the other nine kids showed their work to the librarian and promptly started playing their games. I, on the other hand, was fascinated by what I had just done! By just typing a few simple things, I could make the computer do what I told it. I remember feeling almost euphoric when I realized how much power I had over it.
Very quickly, I started playing with the code. I would change a few words here and there and move things around... just to see what they did. After a few weeks, my word muncher game had levels of increasing difficulty, sometimes two or three letters at a time, and of course they were all random. The fact that I could do that hooked me forever.
Now what about the other kids in the study hall with me? Well, they saw what I was doing and they were impressed... and they even played my game when I was done (I learned later that it went into circulation as an "official" game in the Library for years to come)... yet whenever I tried to explain how it worked or convince them to make their own changes, they wouldn't. They didn't care at all. I couldn't fathom how they could see this magic taking place and now want to have a taste of it... but they didn't.
In years to follow, I took up BASIC, assembly, and then C on a C64 and tons of other languages on other systems but I never forgot that first intoxicating taste of raw power that I had over that simple little Apple IIe
The lesson I learned from my fellow students' reactions was almost as enlightening. They were just as smart as me (and in one case, although I would never have admitted it back then, smarter than me), yet they showed know interest at all in it. I would learn as the years went by that this reaction was actually the normal one and my reaction was the oddity.
That's why, in a few years, I will push my daughter to do some programming (probably in Python) but if she doesn't pick it up almost immediately, I'll drop it. Either you recognize the wonder or you don't.
Ahh.. that was a fun stroll down memory's lane.
I made someone go epileptic in Harrods circa BBC model B. I still feel guilty, but since then I've since 4-6 people go wobbly since. That wasn't my fault. I saw a question today .. how do you stop the XP flashing MSN Messenger thing? It is a spasm monster for some.
TweakUI, I guess.
and a lot of those types of games. Eventually my dad moved me over to duke nukem and bunch of other weird 2d sidescroller games.
If you want them to learn programming, I'd say start with html. It may not be object oriented (as everybody is friggin obsessed with) but they can see the results immediately and it only takes a month to memorize all the basics. Then you can move them on to css/dhtml and javascript. See, HTML is a gateway language!
On a Commodore VIC-20 right when it came out. Then I graduated to the C64, and eventually the C128 and ultimately the Amiga. :)
;)
I went on to work on UNIX boxen, and from there went on to be the uber-hacker/computer scientist/engineer that I am today at age 35.
GJC
Gregory Casamento
## Chief Maintainer for GNUstep
I hear kstars is good to hook to a telescope for control.
I like to run kstars so the time advances a day at a time. That way you can see the progression of the days in relationship to the sun and the planets. It shows you a very cool animation. If you do it in exact 24 hour increments you can really see how the planets and sun move relative to the stars. I did it once and watched for a few hundred years of times.
My first programming was for a planetarium. Your daughter could maybe do an internship at one. We had paper tape running the stars and planets.
That was very cool. I was a 'planetarium aide' in high school. The computer was a twenty year old surplus machine and essentially just switched a lot of relays on and off with the push of a button. We did multi-media productions. It was very cool. This was in the mid 1970's.
Ya Realy. I started screwing around with our new Windows XP, Id had some experience on a friends 98, but not much. Then for christmas my mom got me a copy of Maximum PC. I downloded some suggested freeware apps to make windows bareable, and then..(bum bum bum bum) I stumbled across their 11 sites every geek should bookmark, one of wich was slashdot so I tried it. I read some article I dont know wich one but it made me want to program. I started with JavaScript and the rest was history.
- Shrödinger's Cat is Dead, Or is it?
Like many here, I learned the "old school" basics first. They were simple, fast, and gave immediate results. You could concentrate on learning the language without all the overhead getting in the way. And you could learn a LOT before you reached the limits of the language. I am getting ready to introduce my kids to programming, and I'm going to use SmallBasic http://smallbasic.sourceforge.net/. This is a small project on SourceForge that has ongoing development. I've been very happ with it so far.
YMMV.
I was eight years old on a road trip to the grandparents' house. I told my dad I was bored, so he threw me a copy of PC/Computing and told me to shut the hell up.
A year later I edited his win.ini file to tell our 512K on board video chipset that it could do 65,536 colors.
Memories...
to me math and music and the human ear were the keys to my 'getting' mathematics.
Once I learned about the s-plane, and time to frequency domain transformations, then it all made a lot of sense to me.
I could hear how frequencies sound. I could see the time domain equation. I do the transformation and then see the s-plane interpretation.
it seems to me that if we teach frequency domain at the same time as we teach time domain then kids will just get math a lot better. The frequency domain is where everything really happens. Time is a creation of the human mind. Frequencies can be heard. We can see them on an oscilliscope. We can map them to a string on a guitar or on a note on a keyboard. A time domain equation is a fantasy of mathematics because it exisits from + to - infinity. Where as a frequency can be heard and we can see what it does to the air or to electricity. And so to get a child into math, tell the child about how frequency is a better way to think about signals than the cartesian time domain way of thinking about it.
I love the fact that every browser has a programming language built into it: JavaScript. I think I would start out a kid with HTML pages (color, size, font face, etc.), and then show them how JavaScript can calculate expressions too.
It seems to me that JavaScript could be the "BASIC" of the next generation.
What I did with the kids at a local college several years ago were labs, not on the language but the concepts. Out of 3 semisters of 1-15 each time not one was a programmer, and why they were even in CS majors is a mystery to me. Lab 1: 1-plastic table cloth 1-loaf of bread 1-jar peanut butter 1-jar grape jelly knive, and lots of paper towels I am a robot and they are to tell [program] me how to make a PBJ sandwich. After ripping the bread open [flying everwhere], getting jelly open, bread in one hand knife in other we got jelly on the bread [and everthing else] then they agreed for me to put the bread down.....turned hand over and right down to the table jelly first ---splat--- you should have seen their faces. Lab 2 1) I am blind 2) have on laced shoes that are untied 3) tell me how to tie my shoes If you can learn to do this one you need to sign up to be the next leader at the democratic convention........ Explain to them that they are already a programmer. They do it every day. Asked class what is the last thing they do at night. Pray, brush teeth, etc. Nope wrong answer...... If Today in [Sun,Mon,Tue,Wed,Thu] then set AlarmClock OFF else set AlarmClock ON [nothing worse than that *($#@ going of at 5:30am on Saturday morning] Get my reasoning here....... Kids today have no clue...... FYI began programming on a Sperry/Univac back in 1975, flip the data switches, flip the memory switches, press write, read next line of hand written/edited code, lather, rinse and repeat ad nausem. You can take that Jiva C-- crap and stuff it, there is nothing like hand optimized ASM. --Trey Pattillo
I started playing video games in DOS 5.0 on my dad's IBM PS/2. It was a 286 Processor with a 20 meg hard drive. I think the first game I played was "The adventure of captain comic". I've been hooked since. My parents even have a picture of me staring hypnotically into the monitor.
My first computer was when i was four, and my father brought home a Tandy from RadioShack. I remember him teaching me within a couple of weeks in BASIC
10 PRINT "something";
20 GOTO 10
at least I -think- that ';' was there. I don't know why, but I vaguely remember being able to use a ':' or ';' or ',' there or something.
Anyways, I took great delight in doing
10 PRINT "my brother is poopoo"
20 GOTO 10
That is how I got into coding.
A friend asked me just before christmas about programming languages for his 12 year old son. After a brief search I realized there was a void that needed to be filled for today's kids. So, I've started a project http://www.andesengineering.com/EZGL/ CHeers,
My first encounter of the computer kind was when my brother got one back in say 93. I remember playing Sam and Max: Hit the Road and Police Quest. I started using the computer more and for different things as I grew.
I never really liked coding at first, but I decided to take a course at school anyway. I had a really good teacher for the class, which was Visual Basic 1. Thats what sparked my interest in coding.
I think my first experience on a computer was when I was two. My dad had a Macintosh SE that he hadn't been using for a couple years since he uprgraded to a more powerful mac, and basically just gave me a computer to mess around on. He put on some edusoft-type programs, Crystal Quest, a word processor, and Mathematica, Kid Pix, and let me run with it. I don't think I did all that much with it, but it definitley got me hooked on technology. Between that, messing around on his other, more powerful, mac, and discovering the internet, I basically became hooked.
My Dad bought me an HP Pavillion (200Mhz Pentium Pro, 32 MB ram, 8 mb graphics card) when I was six, and he did the same thing as before, and let me mess around that. This time, I had an internet connection and a PC to do whatever I wanted with. He even bought me an IDE for BASIC that I learned to program in. That was my first programming experience. Between the two computers, I was pretty much hooked.
It was Marathon, an early Mac first-person shooter by Bungie, which first got me really interested in computers...especially when I discovered the tools for modifying the graphics and physics model, and for creating maps. I loved the idea of creating a virtual 3D environment.
Then I discovered POV-Ray (http://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.
The first computer I was ever introduced to was the Macintosh Plus and it was very hi-tech for it's time in 1986. It was there I learned the very important nature of computers, gaming. Though brickles and load runner were fun, I was eager to learn more about this powerful machine and what it could do. I quickly discovered text-editing programs. We purchased an additional computer, similar to the Mac Plus, but the name eludes me for whatever reason. I believe for the christmas of 1996, we bought an 'upgrade' from that no longer hi-tech computer. Very sophisticated for it's day, the Macintosh Performa 6400/180 entered my life. This computer was a dream! It was a huge leap and it could actually multitask. I learned about the internet on this machine and how it works, utilizing the local freenet in my town (back then, 28.8k was remarkable!).
Although I've forgotten specific dates, the computers that entered my life after that included a Toshiba Laptop (first introduction to windows!) and many dell computers. Still to this day, I own a dell and I love them to death.
I believe introducing children to computers is best at a young age, as early as kindergarden! Schools these days have kids doing research projects in the 3rd and 4th grade! Introducing them to educational software at first is best, as they can learn from it and get the correct motor skills to utilize computers, as they will only get better from now until eternity.
Yeah, basically, I think you're right. But today's world of computers is quite different from the one I remember as a kid, growing up.
Part of my initial excitement with learning the computer was the thrill of making it do things I'd never seen done before. (I remember getting ahold of a neighbor's TI99/4A which one of their kids actually won from a contest on the back of a cereal box. I spent hours over there, just typing in lines of BASIC code from the manuals, to do things like draw a jumping "Mr. Bojangles" on the screen.) I would have played with it more, except their parents thought it was "unhealthy" for kids like me to be sitting around in their basement, staring at a computer screen during the summer, when it was "so nice outside".
These days, kids have already had so much exposure to awesome computer graphics and sound by the time they're only 2 or 3, coding simple little things like this isn't too likely to be very "awe inspiring" at all. The stakes are so much higher, today's youth have to practically be expert artists, musicians and good software developers before they can code anything their peers would look twice at!
As some others have pointed out, when you sit kids/teens down in front of a computer today, they're more likely to view it as a way to grab up a bunch of free music or a substitute game console than a system worth really learning more about.
I don't think this is "bad", really.... just the inevitable result of change.... so parents will have to be a little more keen on observing their children as they use the computer, to see if they're really spending the time honing useful skills, or simply using it as yet another TV-like entertainment device.
I got into computers because my grandfather got into computers.
This was the mid-80's and he had just retired. He'd always been a funny man, so he invested in a 8086 with monochrome screen (or something along those lines). He learned BASIC and started creating all kinds of programs - printerprograms, wordprocessors, genealogy programs, etiquette printers, even some really funky games. All of it was text-only and it was gorgeously fun. Almost everything on that machine (except the DOS operating system) was handcrafted by him.
So every now and then I'd venture across the river from my parents to visit my grandparents and get a chance to play with the computer. I was somewhere around 8 or 9 years old.
After a while he upgraded his machine to a better one (80286 powah!) and he let me use the old machine to learn how stuff worked. I learned som BASIC, how to handle DOS, I read all his litterature on computers and finally I was hooked. Line, sinker and rod.
So here I am some twenty years later. What do I do for a living? Computers! What's my biggest interest and biggest hobby? Computers!
(albeit though, I don't do programming. But everything else I've done. Networking, servers, assembling computers, graphic design, webdesign. You name it, I've done it.)
I enjoy large posteriors and I cannot prevaricate.
I started off at my school when I was 12 with DOS on a 486 machine. Then came Windows 95 on a black and white monitor (!!!), followed by Windows 98. Then I shifted to Linux and used it simultaneously with Windows XP.
Take a look at realbasic.
It is very very convenient to use, and is great for beginner students. Beginning students want to be able to drag a button into the main window, double-click on it, and get access to the method that handles the buttons events.
It's a very well-designed sytem for beginners.
I don't know if there was any one thing which got me into computing. I certainly have a vague memory of a table-top space invaders game (as in the cabinet was a table, and you looked down onto the screen) one year when I was on holiday with my parents around 5 years old; my parents had to tear me away from it all too often. I just seem to have always been fascinated, and always wanted to learn more.
/ideas/, not skills. Why? First, computing science is more about ideas more than the skills, and the differentiation should be made clear. Second, the moment a teacher has kids on computers, he or she has lost control of the class; the teacher has to be confident of the materials if they are to be used at all.
It's an interesting topic, because I too have often thought that it's so much harder to get into computing these days, when compared to systems like the BBC Micro which had BASIC on ROM and loaded on boot. Turn on, start typing.
It's something that academia is attempting to tackle, in many different ways. It's been clear for quite some time that children in schools are being taught ICT, and not computing science; ICT is often mislabelled as computing, so people get confused. Kids often think they are learning computing, when they are learning information technology.
The project I was involved with over the summer involved creating materials for schools (late primary to early secondary education here in the UK, that is, around 10-12 years of age), which would teach simple computing ideas. The materials were unusual in one key sense - they were entirely offline materials, teaching
It's surprisingly easy to do. We produced hundreds of ideas, which will continue to be refined, rejected, and added to, as the project continues. Simple ideas include sorting lists; scheduling and ordering events before a party; concurrency can be taught with team games teaching different ideas, such as locking shared data structures, producer/consumer relationships; networks and distributed systems can be taught using different teams at different desks. Yes, we really were teaching 10 year olds distributed systems ideas without the aid of computers.
Having seen this, and a number of other projects aimed at children, actually work, I suspect that if (or when) these things become widespread in education, lots of kids will be exposed to computing for the first time in formalised education, and not necessarily when left to their own devices. Obviously some still will, but a computer is no longer this mysterious box in the corner.
If she doesn't get interested in SOMETHING before she's a teenager, she will become obsessed with sex, drugs, and rock and roll.
My other first post is car post.
I can't believe this one didn't get mentioned. Virtually every app on the apple uses AppleScript as a macrolanguage. In addition to that you can tie apple scripts to interface builder and create pretty neat programs using the apps as your building block a modern GUI.
We got the family 486, but my old man wouldn't install games I borrowed from a friend. So I went along and learned how to access the floppy, change directories, run the installer, etc etc.
Then the computer started running oddly... so I quickly learned how to use "deltree" (fortunately properly, so I didn't deltree C:\*.* or anything bad). Turns out the games weren't the culprit... but it's amazing how such things promote fast learning.
I know this is a strange idea, but what about a LISP variant? Interpreted, immediate feedback, no need to declare variables, and the kids don't have any preconceived notions about what a programming language ought to be.
(Just be sure to use "first" and "rest" instead of CAR and CDR).
Am I wrong?
I started with computers both going with my dad to his office and when I was put into a GAT (gifted and talented) class in the 4th grade. The GAT classroom had a dumb terminal that connected to a timeshare system. We programmed in BASIC. After a couple of years, we got Apple II's and learned Pascal under the P-system. The school also go Franklin computers (Apple II clones) and they had a CP/M card so we got exposed to that OS as well. I did a lot of programming in Pascal, and finally switched to PC's and Turbo Pascal back in 1982-ish. I also volunteered at a camp, and we taught the kids LOGO. LOGO taught the kids simple logic and made them thing about the problem at hand. They I Today, the kids all use Windows and use Instant Messenger. There is no jumping off point where they can actually write a simple program that will run/compile easily. Expose the kids early to computers, and involve them in logial thinking. Encourage them.
I am not sure Java is the best solution for kids. You can avoid the object oriented aspect of it for a simple game by putting everything in one class and coding as if it was C.
I would be pretty tempted to bust out a C=64 and sit down with the kid and learn on that using BASIC and then move on to Java or C. Learning by making simple games is the way to go. Kids love to play games and love to show them off to their friends. There used to be a series of books called "Kids and the Commodore 64" or Apple ][, or Atari 800, etc. I haven't seen anything similar.
My son is prohibited (not by me) from playing any game that he didn't help to write, so he and I are going to have to figure something out. Get back to me in several years when he is a bit older and we've figured out how to deal with this restriction.
Lasers Controlled Games!
Oh, and from http://thepulp.net/docsavage.html
In my case, it was at my Dad's company hacking away at his Teletype. It was connected via a leased line to a General Electric time-sharing mainframe that he used to run custom engineering simulation routines (this was around 1967 or so, I think) As it happens, I got a lot more mileage out of the clear plastic bin that held all the tiny round things from the paper tape punch. I would throw them around like confetti (which did nothing to endear me to my father.) Still, when the late seventies came around and we got an Apple ][, at least I knew what the Enter key was for.
I still miss the little round things, though.
The higher the technology, the sharper that two-edged sword.
i was a high school senior (1971), barely passing my second year of algebra. we had a six week unit of computer something or other. i remember a row of keyboards (like typewriters, but there was a button to press to spit out the greasy blue tape) and greasy blue paper tape with punched holes. it was hell. i couldn't type, i didn't understand binary, and i sure as hell had no idea how to solve algebraic story problems.
the school was wired to ITT with a modem speed that prolly was slower than sending a courier onna moped the fourty miles to the damn what i assume was a mainframe.i remember being humiliated in class by my teacher cuz i had a typo in my "address" section of my program (i'm sure they hadda stay late, sans overtime to feed the tapes through). the funny thing was my program was ok.
so what has changed? i still suck at math, yeah, binary; on and off...but i do run and administer a small home LAN of debian boxes. i have written some bash and perl scripts when i was hyperfocused (i am undiagnosed ADD, that's another boring story) but alot of the other stuff is just copy and paste from linux how-tos. my grandkids can login to my desktop. i prolly should set up a proxy filter deally but the display faces a common room and they are polite and ask to login first.
grampa, are you using the xbox, or can i turn it off to play halo2?
now if i can just get them to help me with my kernel OOPS problems on my debian sid desktop with the shiny new 2.6.10 kernel.
Serenity now, insanity later.
:D
Boy does this all make me feel old. I got started in programming when (at 13 or so) I went to a computer lab at the U of Illinois (the PLATO project) asking for computer time to run a program I had written based on a Fortran manual I found somewhere. This was about 1964 and computers were something only a company or a university could afford. The first computer I used was a Control Data 1604; 64 K of 36 bit words in RAM, no disks, just mag & paper tape. Took up 4 refrigerator-sized cabinets. IIRC it used discrete transistors not IC's. RAM was tiny magnetic donuts strung on a grid of wires. Anyone else around here remember those?
My babysitter had a commodore 64 when I was ~5.
I got an Apple II when I was 11, wrote my own code to format the disks so I could create epic Basic games with fat 24x24 or whatever graphics.
Made streetfighting games in programming class.
Mm.. the good old days. Just randomly writing this down before I read other's stories.
I have just noticed my overblown sig but am too lazy to change it.
Hi
Yes, my parents paid for a nerdy kid to spend their x-mas vaca on learning Basic on an Atari 400. Then making my own text adventures on my C64 (not as good as Zork or Hitchhiker's Guide, but fun).
Remember 300 baud phone coupler modems?!?!?
*sniff* *sniff*
The text book was McCraken and Dorn's "Numerical Methods and Programs". Holerith cards, batch jobs, come back tomorrow for your output and all that. I quickly became an early hacker as I figured out that the grad students hung out at the ILLIAC and I could fake a job card and get my output back in a few minutes. That was the era when engineering students carried slide rules around and portable digital calculators didn't exist.
:-)
After graduating I worked for a company that used GE's timesharing service with a model 33 teletype machine as an interface. We would punch our fortran programs onto paper tape offline and then load them all at once so as to save those precious fractions of computer CPU time.
My first computer at home was back in 1977 and was an evaluation board that Mostek put out for their F-8 microprocessor. It had 1K of memory, used a teletype machine for I/O and I programmed it by hand assembling code and typing the hex code in. Yes, I had a TI Silent 700 teletype emulator terminal of my own by then that I used with my ham gear through a ASCII to Baudot code converter that I built with logic circuits on wire-wrapped boards. Where did I get all that energy?
My next home computer was an Ohio Scientific with a 6502 processor and a whopping 16K of salvaged 2102 RAM chips. I wasn't into gaming and mostly used my first two computers as development tools for some products I designed using first the F-8 and then 6502. To this point all programming was assembly language hand assembled. None of that fancy assembler stuff as it was too expensive.
My day job had me using an Intel development system with 8" floppies designing products, first with the 8085 and then later for the "bleeding edge" 8051 chips.
My first home computer with a real OS was an Osborne running CP/M. Then in 1981 IBM came out with the PC junior and Apple soon followed with the early Mac with no HD and a single floppy, both of which I had to have. My wife ended up grabbing the Mac for her college papers and the PC was mine, running DOS 2.1. I was using Wordstar and SuperCalc back then for my "Office suite", and xasm85 for product development. To this day I use the same cross-assembler to maintain and update legacy products that are still in daily use. Ah, the memories.. sigh.. The Mac is long gone, but then so is the first wife.
"Do the Right Thing. It will gratify some people and astound the rest." - Mark Twain
"Do the Right Thing. It will gratify some people and astound the rest." - Mark Twain
The very beginning of my interest in computers was in a small class held in a local library in September 1983. They had a couple computers in there, the ones that were used were the Atari 1200XL and the Apple 2e.
:-/ I read through the whole document and had a (spotty) grasp of how computers worked. Although there were some incidents I still laugh about now.
:-/ D'uh me.
:-/
;)
I still remember some events from those days.
I had been given a dozen printed pages stapled together with some basic explanation of the principles of computers. We were supposed to go over them with the teacher, but I couldn't wait. At that time, I was actually a good student.
One was when the teacher had unsheathed a 5-1/4" floppy disk and passed the disk itself around. He asked us to look at the disk to see what was on it and then pass it on. I spent a good minute staring at the disk, then reflecting the light off of it to try and read the data. It turned out he was talking about fingerprints.
As for the other...
The Atari computer was a goofy little gadget. It had four function keys, Start, Option, Help, and Select (since it was from a game company, that would be the obvious choices). Whenever you had a floppy disk with a binary program on it, you needed to hold down the option key while turning the computer on. If it was a BASIC program, or it worked with BASIC mode, you simply flipped the switch.
Now, at the time, I went through a couple books, trying to find out exactly HOW to tell if the disk was Binary or BASIC. I had imagined it would be obvious by some physical manifestation. When the next class came along, I found out that the programmer would tell you if it's binary when he gave it to you, or, in the case of purchased software, they would tell you in the instructions.
By the way, to this day, I still have a habit of looking WAY too deeply for the obvious...
I also remember playing my first computer game on both the Atari and the Apple computers... Spy Hunter. I preferred the Atari since the Apple's was displayed on a monochrome screen. I've always had a thing for colors... praticularly bright ones.
A couple years later, 1985, My father bought the family an Atari 130XE. Now, I am one of three siblings, so you can imagine the wars such a scarcity produced. Over time, however, the novelty wore off on my sister and brother, leaving me with the machine a good portion of the time.
Now, originally, there was no floppy drive on this computer, so I had one of three choices... either play the pac-man cartridge that my father had also purchased, type in the various listings found in the Atari computermags (Antic & Analog) at the local library, or learn to program the damn thing myself.
Ultimately, the second option slowly migrated me into the third one. As I duplicated the lines of code displayed in the magazines (by this time, I was also devouring "COMPUTE!" magazine), I started seeing ways I could combine those code fragments with other code fragments from other magazines, and ultimately came up with some fun, but simple programs.
After a few years, we traded the Atari for a Commodore 128. My father also purchased the floppy drive and a two-mode monitor for it (a switch on front allowed me to choose between RGB mode and the CGA-Compatible monochrome mode, used by the 128 mode), as well as a new dot-matrix printer, the 1200.
Suddenly, I was once again, delving through the COMPUTE! magazines, this time grabbing all the Commodore goodies, and playing with them, and this time, I saved my... *ahem*... "masterpieces." W00t!
Funny part is, my father was bringing home games all the time; I didn't know the first thing about Piracy, and my poor line-worker father hadn't a clue as to what he was doing. All he knew was that a friend at work was willing to give him copies of games and other programs, and he would bring them home for me (and sometimes
The Penguin Producer
I was expecting something like:
Ok Computer, this - is a 'Child'.
Or should the post actually be 'Introducing computers to children'?
And your kids will soon learn the joys of hacking...
It says she and her daughter and son were in a house with a lot of old things, when her daughter (the older child) found a typewriter. She had never saw one. The girl uses the thing, and then starts explaining to the mother how wondefull it is, because it doesn't need wires or "expansive ink cartridges"... Then they got a piece of paper and started using it. The girl was marvelled "look!! You just type and the letters are already there in the paper!... The only problem is that you cant's change the fonts, , but it doesn't matter. There's no trouble with saving files, printing... You just type and it's already there!!"
I can even translate the story if anybody is interested. I love it, because I care so much for the subject (I almost cry when i read it :_) ). Imagine what is it to discover this "new" paradigm... We're so used to computers we forget how difficult they really are. Of course the girl will eventually find that computers have a lot of advantages, but we should never stop questioning the real usefullness of our tools. And children are great for that.
Now, my political agenda. I'm very pro-(command line interface). I found this article once (trough slashdot I believe) about someone who teached command line to people who never user computers before. This article says a lot about how command lines are more dialog-like, while the mouse interface require a lot of abstraction, and thus the command line is near to the normal relationship with another human, while graphical interfaces requires a lot of metaphors and parallels...
Anyway, I believe children should be exposed to things like LOGO. It's an important way to look at things.
Once I asked professor Vibeke Sörensen (I'm her fan :) ) wich approach she tought artists should have when dealing with programming: graphical interfaces (like with fluxograms) or text programming... she said it's the same thing, it just depends wether you like working with a painting or with a poem... I think this is a great insight on the thing. People learning to program should be at least exposed to all approaches before learning deeply. So, I think if you want your children to develop a good view on computing, you should look for some command-line driven programs, since this kind of environment is getting rare those days.
Back in my old school days (ouch, my back!), I was forced to do a lot of "dir"s and "cd"s, and to know what was "a:" before loading my games... And I believe this helped me to start to like dealing with computers.
I would like to add just one nore thing: I learned a lot of english (I am brazilian) just because of computer programs. I had to know what was "file", "save", "open"... I also learned a lot because of sierra's RPG adventures like King's Quest and Space Quest. What I mean is that I owe a lot of important knowledge to difficulties I had with informatics those days, and I simply don't know how to make my future sons learn all that without making them playing Prince of Persia in an old XT!... :)
I don't know, I believe my children will be writting perl scripts before 12!...
Nicolau Werneck - NIC1138
"The secret of genius is to carry the spirit of childhood into maturity" -- Thomas Huxley
i was 9 or 10, and my first real computer (as in not one that used the TV) was my friend's dad's computer. first thing we found was his pr0n. It was printout lenghtwise across 7 or 8 pages of that computer paper with the perforated holes along each edge, and green and white stripes... in ASCII characters so that if you stood back, you could see this nude lady standing in full frontal. wow! then I found the "Star Trek" game that printed in ASCII on screen, and you were a little asterisk that got chased around the "galaxy" by klingon ships and whatnot. text based battles, basically you had to keep your shield % up and not let your weapons overheat. i printed out the source code (along with the pr0n) and took it home with me. I tried to "port" it to my friends TRS-80, but never got very far. my parents didnt see the value of computers then, and i wasnt motivated enough to fight them to get me one. so i just goofed off on friends computers trying to write D&D text adventures, but mostly just generated a plethora of characters that never got used.
I was making Choose-Your-Own-Adventures where Turtle would redraw the screen every time you made a selection. I worked out the grid on graph paper and coded on paper, debugged it, and entered it at school the next day. I also made a fighting game composed of two little bitmaps (I forget what they're even called) on top of eachother, one for punching, one for kicking.
My son already uses our computer, but most of his interest is "Wanna watch Magical Trevor!" or "Wanna watch Weebl pie! Pie pie pie pie pie! PIE! Wanker!" We do have a little screen saver, though, which is tamper-proof and lets him type away. If he hits a letter, it comes up on the screen in 164-point font, and it says the name of the letter, and it has a sample word under it (our son also head headphones so we don't go batshit fucking loco).
I am trying to find something to let him explore computers, since he'll soon be at the half-way decent typing skill level. Anyone know how to run Logowriter on a mid-range (1.3 GHz) computer?
I like to place meaningful quotes in my sig, so people will know that I know what meaningful quotes are.
The idea of programming a game from scratch which is anything like a game you'd buy and play is certainly hard now. When I started (with Basic on an Atari 800), I could find the code for an entire game printed on something like 12 pages of a magazine. Obviously that's not feasible now, not for games which seem like commercial games.
But there are also good tools now which there weren't then. Here's some thoughts, only one of which I've tried.
Neverwinter Nights comes with an extensive toolset to build your own modules. It can be a lot of fun just building a dungeon and putting monsters in it, but you can also do really fancy scripting if you want (the scripting language is C-like, missing some important stuff, but also missing many of the opportunities to screw yourself). There are "wizards" to help put together scripts, which you can then edit. So, a 12-year old who likes the D&D kind of thing can get creative and do coding, while riding the coattails of graphics engine and 3D art which is already done.
I'm sure much the same is true of other games. That's the one I know. I've tried this a little bit with my 7-year old godless daughter. She didn't get into the scripting, but had some fun building a little space where (for instance) two dragons tried to kill each other.
There must be plenty of other possibilities. How about Flash? I haven't done anything with Flash myself, but it seems like fun minigames could be made with that.
Maybe the real way to teach kids about computers is denying them software. (I'm a mean dad.) When I had those early computers, we had games that were kinda fun, but really by far the most fun thing you could do with the computer was one or another kind of hacking. Now, particularly if there's net access, there's a zillion other interesting things to be done.
A few months ago I started plans to learn Python (once and for all!) and begin writing a book for young kids on the subject. (Probably just publish it online...)
Anyway, sadly, I haven't had the time, due to work (and Tux Paint, of course), but already have a few people gathered who have offered to help.
My thought is to write something similar to the old "Atari BASIC: A Self-Teaching Guide," which I read as a kid back when I was 9 or 10 years old.
Email me privately if you're interested in helping or can offer resources (like mailing lists, web space, editing skills, kids to beta-read bits, etc.)
-bill!
After this, I discovered APL at our local community college and was hooked for life. An interpreted environment encourages experimentation and the immediate feedback keeps you constantly informed if things are working as you think they ought to be.
These days, I'm showing my daughter J - a free interpreter (jsoftware.com) - though the suggestions about POVRay, Flash, and Python make a lot of sense, too. In fact, even HTML might be a good place to start as it also is like programming and provides immediate feedback. My daughter has done her own web page in hand-coded HTML.
She has shown some interest in J, especially when I show her how I can get an interesting picture with a short expression like
'surface' plot +/~1 o. 0.1*i._60
Also, the language works at a high conceptual level with ideas like applying functions to arrays without the busywork of setting up loops. Of course, it helps that she likes math.
A Macintosh Plus :) Seriously.
:)
Knowing that the whole computer thing could be mastered with a few simple concepts (point,click,drag) really helped me get interested.
From there I branched out to DOS, and eventually Linux.
The ease of use of the Mac combined with a (then) newfound love of programming got me started. Being able to write a program to print my name on the screen was pretty cool.
When I was about 8 my grandfather gave me an old 486 to play with and showed me the inside and I was absolutely fascinated. He gave me several more computers and I loved to take them apart and put all the good components in one machine. Around this time I got a BASIC book and taught myself how to program in QBasic (these were all DOS and Windows 3.1 machines). I loved making the computer tell my little brothers things...I would program it to tell they're ugly and print out their name and things like that! ;) I don't think it matters what operating system the computer has or even if it's modern, give them a few pentiums to play around with, since it doesn't matter if they break anything. I got hooked at computers and here I am ten years later and I still can't tear myself away from them.
My kid (now 14) got into computing because I bought a 486DX just to play Doom, fart around with AutoCAD and explore CompuServe. He was pretty young at the time and that was when the Broderbund software was popular, so discovering all the bits was entertaining for him and me (watching him discover). I wonder if that stuff is still popular for the 3 to 5 year-olds.
Me, I'm just an older fart that got into it later in life but I'm looking into high-powered specialty engineering software at this time. It's very interesting to understand how software works (and what the author was thinking) even though I haven't programmed anything more complicated than an HP 41c calculator.
Pull the old c64, 1541, and four shoeboxes of disks out of the attic and set 'em up! Even if the kid doesnt get excited about it, the old school geek in you will have a hell of a good time. :)
directly cloned Apple's interface
Who stole it from Xerox PARC I might add...
My first was a home built RTL adder.
Well..... (Wavy lines) for my 5th birthday my grandpa gave me and old motherboard (don't really remember what it was) and about 200 dollars...He said "hey Chris, figure out how make a computer." The real problem was to resist taking it apart, all of the little capacitors and chips look so cool "like a little city" I think I described it...but once I got past the primal take apart and destroy phase, I did a bunch of research (as much as a 5 year old could do) and got an 8088 processor, a meg of ram, a 10 meg hard drive, and dos 3 or 5, don't remember to well and WordStar 1.0.... I managed through a lot of trial and error to get the computer to work...after that I mostly just messed around with the computer and pretended that I was a cool hacker of sorts. I constantly "broke" the computer and had to reload it. But I personally think the best way for any kid, and what I am going to do with my kids, is to hand them some basic component and let them build and learn everything from scratch...let them be independent. I think in the long run it will help them solve problems better and develop the right way of thinking to fix or learn how to do anything with computers.
I began programming in BASIC, using the Commodore 64 at school and some workstations at a local university. None of this amounted to much, despite my efforts.
My current computer knowledge traces back to my early word processing on IBM PCs using Word and Wordperfect. I was writing a book, and the computer was a useful tool. I wasn't trying to use a computer at that point; I would have used a typewriter if that were all that was available. But, I got so much experience using a computer writing that book that it provided a solid foundation for my computer knowledge. It helped me a lot that I spent so many hours in the Adult Learning Center at Albuquerque T-VI, where the director provided me with a lot of patient, personal instruction in computer use. He was always available to answer my questions, and he was very knowledgeable.
At the same time, I was taking a correspondence course from NRI in Microcomputer Repair. I assembled my first computer from that course. I went to college for Laser Electro-Optic Technology. Eventually, I had to build hardware and software interfaces to computers as part of my program requirements.
If I had been given the opportunity, I would have done a lot more, a lot sooner. I still feel frustrated about that.
Taking stuff apart since 1969 (TM)
When I was 5 my father who worked at Texas Instruments brought home their prototype computer... yall might remember it... big beige monochrome monitor and a keyboard with a slot loading cartage bay for programs stored on pre-8bit Nintendo cartridges...
there was no on disk storage of any type...
Well, He showed me BASIC and LOGO on the system when I asked him what else it could do besides play games... and my biggest accomplishment was making it count to one Million.... which took 4 days to do.
When I was 6 I had gotten really good at LOGO and LOTUS coding and Texas Tech brought me, a 6 year old kid, into a programming class for a week to teach adults how to work the system.
My parents got a 486 when I was 12 and took a trip to the movies that next day.... so out of boredom I took the system apart in my bedroom.... my parents came home to their new $4800 computer laying in pieces...
In high school I got into hacking when I realized that there was more to the web than meet the eye... and once I rooted my first e-comm server I was hooked into hacking for the next 3 years...
I was able to apply my hacking knowledge to productive coding in my Senior year and got a job in CA working for a Dot Com making $95k / year... the Job lasted 2 weeks before the company went under... so I never really count that as a job, but it introduced me to real web design which is what I have done successfully for the last 7 years.
And to think, my trip into geekdom all started with a simple question... "Now what can I make it do?"
The Code Ninja is swift with his tool, precise in his delivery, and deadly accurate in his execution.
First things first: teach functions / subroutines.
Start off with basics of a computer language. Pick anything. C++, Javascript or PHP (epecially if the kid already knows html), whatever.
Then help them create a procedure that takes a number of pennies (1534) and formats it correctly ($15.34), and prints it. Don't bother explaining how alert() or printf works, just use it for now.
With that task, you'll teach how to do math (1534/100), how to keep accuracy (using the right kind of variable), how to parse strings, and how to print stuff on the screen. You could even teach him about the concept of separating tasks into functions, as a way of organizing your code.
Congratulations, the kid now know 50% of what he needs to know to be a programmer.
The rest is getting good at learning languages, breaking down requirements into logical procedures for accomplishing things, specifics of each task such as how media encoding works or how you interface with devices on various operating systems, data storage, etc.
But the core concept is just manipulating single pieces of data, and formatting an amount of pennies into dollars and cents is a great way to get started.
$8.95/mo web hosting
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.
Microsoft Paint for Windows 3.1 at my Dad's office. Not sure how old I was, but I would guess around 6.
Before we got an IBM PC we had a Commodore 64 on which I played games like Fischer Price School Bus Driver and Firehouse Rescue and a Dinosaur game (whose name escapes me at the moment). After we got a PC (RadioShack brand (Tandy) 386...oh ya). I grew up on all the Learning Company games in the Super Solvers, Reader Rabbit series Treasure (Mountain, Snowstorm, Cove, Galaxy) series. But mostly, as I wasn't old enough to have alot of money, I lived off Shareware and Demos from Epic, Apogee and Sierra. Jazz Jackrabbit, Raptor and the Sierra Demo discs are what I remeber most of.
The first time I used a computer was in the 1st grade. Within a week, I had thrown a handful of magnets into the box of floppys with all our homework on them, crashed several boxen, and added a recording that said "F@*k Mrs. Teacher" to the startup folder of one.
I remember seeing this board on tv. Maybe a motherboard for some crappy computer. And I was enchanted. I couldn't have been more than a few years old. And I saw Mr. Wizard's world on Nickelodeon and I liked when they had robots on there. And my brother kept setting himself ablaze with batteries and things you're not supposed to use D-cell batteries with. I was loving it all and couldn't wait to get my hands on a computer.
I finally got my chance when my mother got me a Pocket PC (radio shack, not windows). It had a 1-line display, could be programmed in BASIC, and had an assembler. Then I went to a computer themed middle school, computer-themed high school, and got my degree in Computer Science at University. It always came naturally to me and I didn't need anybody to turn me on to computers.
I think Squeak would be good because it's just fun-looking. You get to play with the race car and the mouse's eyes follow your cursor around.
Even better would be a Lego Mindstorms set. Lego has got to be the coolest toy ever and it's programmable. And I don't care how old it is... LogoWriter is big fun. It was compiled, had methods and variables, and we could draw with it. I wish I could find a copy of it.
I was introduced to computers via my workplace, my kids have used computer from the earliest age. I advocate purpose built devices like speak and spell etc, with changes in OS it is silly to focus on the OS, as many schools do, and not on the documents. As a family, we wasted a lot of money on educational software for ages x to y, only to find that with a solid reading, writing and computer background, my kids were years ahead of the available software. That software was written by experts who were having to learn computers and adapt material to the new medium, my kids were better computer users and so the edicational software was a couple of levels too low for them. Kids need to write their our material, DON'T stop them reading books, and only teach programming if it of interest to the child, I mean you dont teach them plumbing, why force them to program.
There was an unknown error in the submission.
Our 3yr old has a pc of his 'own'. It's a linux box running gnome. He has limited web access and some little games. SO (the one who programmes) has set it up so he has no access to damaging things. It sits on my desk next to my box and he usually only wants to play when we're using our boxes. He is rarely on for more than 20mins.
We decided to give him his own as he was getting up to mischief on ours. Now - we have two sproglets and the 1yrold loves playing too. Text editors are great for this age - set the letters to be as big and bright as possible and they're away.
They love to do what m & d do - so it works well IMHO. The kids feel like they're 'grown up' and we dont have to worry about losing anything.
Ahh, the old Apple! I loved the manuals. My parents still have the whole thing, but I'll swipe the manuals next time I'm home. I don't remember the names but one had a light brown color, complete with fold-out schematics and some hairy, low-level shit that impressed me even though I was only 12.
I have two nephews and I'm also thinking about how to introduce them to programming. The older one(4) can already type/send me emails. I think a take-off on a game I enjoyed as a kid would be a good introduction. Basically, you have a series of rooms guarded by evil robots (with frickin' laser beams!TM) You can reprogram your own robot to go into the room and grab the item. In the old Apple game, you had logic gates and simple sensors but I think I would change it to software/programming challenge. So you learn to make wall-hugging robots, criss-crossing robots, concentric-circle robots, etc.
Anyway, it's on the back burner. Mebbe it already exists? Ah hah, Google tells me it was "Robot Odyssey (1984, The Learning Company)" and that there is a GNU Robots. I don't know if it is easy enough for children, or for me!
I started out in 1982 or 1983 w/ a TI-994A. It could play games through cartridges and had a very simplistic TI-basic language as part of the bootup if you wanted to use it. We added a 5.25" floppy drive to the thing at a later date and used floppys on it to run programs and play games. At the same time at school, I had Apple II and Apple IIe computers in our elementary school. They also had a simplistic BASIC interpreter and I got my first introduction to LOGO. I learned BASIC and logo pretty well for what little it was worth to an elementary/Jr. High kid and went on too study BASIC in more depth in my sr. year of high school. I wish they would have been able to teach us Pascal as planned that year but due to a room assignment screw up, the programming class got the Apple 2gs lab which only supported BASIC at that time. I went on to major in Computer Science in college and got my first real exposure to PCs. I got a Packard Bell 486-SX 20 for my HS grad present and got my first exposure to MS-DOS and windows 3.1. I didn't mind DOS so much but Win 3.1 and 3.11 were sluggish on my PC. I didn't use them unless I absdolutely had to. So...to answer the question, I would start kids w/ something simple...something educational but it has to be fun or they lose interest. Introducing upper-elementary school kids to linux also wouldn't hurt if they seem to be the techno-saavy type. Gives some cmd-line experience... my 2
...quicker, easier, more seductive the darkside is...but more powerful, it is not.
Agree. Apple did at least have the wit to change some of the core concepts. Generally for the worse, but you get that. (-:
Got time? Spend some of it coding or testing
Want to move your children towards computers? Simple. Just keep a computer turned on in the house, and don't freak out when your children get close to it.
In terms of programming, the first thing that got me moving in the direction of coding was probably playing with physical lego blocks. Being able to think of and build subcomponents and put them together into larger designs is the basis of code design.
first programming language? think it was basic and logo at the same time.
but why are you so intent on forcing your kids into technology? push too hard and they might hate it.
or push too hard and it may affect other skills of greater importance in life -- like socializing skills and full body motor skills.
the analogy is with walkers. forcing a baby to walk when they want to crawl doesn't help 00 it hinders. Similarly,
It's great to stoke the flames of nostalgia and reminisce of our original geek awakening moments, mine was filling out those FORTRAN grids and then typing my ten liners onto cards by hand. Unix was the coolest damn thing ever and I was way stoked to get a hold of a user's guide in highschool. Whoa! I was maybe a bit cooler than those other kids! (yeah, well, maybe not!)
But reality check here. The world is way different. Computing is everywhere and kids are saturated with it. One progeny has had required computer classes at the local elementary since the first grade. Are they teaching programming? No! It seems the fundamentals of powerpoint presentations are far more important to the generally computer illiterate teachers. The Intel gifts of donated windows boxes to schools reminds me of the handing out of free cigarettes to WWII GIs. Gotta dig those tiny mice though.
Kids care about games, music, email. And they already understand that Dad's computer is way better than the semiretired machine sitting on their desk. They see computers as media delivery machines, not something that can be tinkered with.
The fundamentals of discrete math would be a place to start, followed by scheme or squeak, or both. Logic needs to be in place as soon as possible.
I think Python is a good choice to teach programming. I think there are other things that a child would have to learn before a programming language. Unfortunately, I don't have any ideas there.
There are many reasons I think Python is a good choice: It is easy to learn and makes very clean and readable code. That means it's easy to look at someone elses code to learn from it. It is also object-oriented and lends itself to object oriented programming. The good courses I've seen on Python, like Python for the Absolute Beginner, start off on classes and objects very early. This makes it hard to not learn object oriented programming.
There is one other reason why I think Python is a good choice, although the reason is not as obvious. If you want children (or programming students) to really get a good taste of programming and to understand it well, they need to enjoy it. What better way to do that than with Python. Python is so loaded with powerful libraries, that it makes it easy and quick to write powerful and useful programs. That's why Python for the Absolute Beginner is a good choice. It walks you through writing games, the last of which is pretty cool and involved.
Beyond making it fun, the many libraries make it easy to learn new things. The socket library is a good example. What better way to learn sockets. The POP3 and SMTP library are pretty cool because they make getting and sending email almost trivial.
Well, that's my two (or more) cents.
A powerful yet relatively simple language to start any new programmer on is PHP. It is similar to the C family of syntax's and is on its own pretty powerful. Plus, since it is more of a scripting language than a programming one, it is fast to see your results and errors.
An added bonus from PHP is, of course, once its paired with MySQL the young little coders can make their own blogs and what not, a very popular thing.
PHP and MySQL are available for both linux and OS X so that isnt a problem and with an internet connection and an ftp account on a server someplace, you have worldwide access to your code!
Because we all know that no one now reading slashdot got started in computers before DOS 5 came out...
Sheesh. Someone just two or three years older than you wouldn't have had QBASIC to start with.
I mean, I'll admit that my first programs were in a BASIC variant, but they were on my TI-99/4A (which has been mentioned a few times here). After that, logo (TI LOGO II) on the same machine, and _then_ programming on a DOS box (gwbasic), followed by BASIC and 6502 assembly on Apple IIe's at school. (using a wonderful microcode simulator at first)
By the time QBASIC was available I was past using BASIC and had moved on to Turbo Pascal. (and intel assembly)
"everyone" else. Kids these days...
Designed for kids education (see eToys) by Alan Kay and others. See http://squeakland.org/ and http://www.squeakland.org/kids/kidshome.html.
It's not really that different than, say, cars.
In the 50's, 60's and 70's. "tinkerers" gravitated towards cars, something a tinkerer could work on. In the 80's and 90's, cars got too complicated (read: required too much equipment) to mess with, and the new toy became computers.
Computers are going through the same transformation. It's only thorugh very direct daily contact with computer design that I maintain any familiarity, and a kid today would have a tough time getting thorugh the numerous abstraction layers of OS in order to see real hardware and, say, code assembly.
But that's ok. There are things on computers kids can mess with now that were not available to us then - like SQL backends to webpages, or using reporgrammable microcontrollers for... whatever. Just because what we USED to tinker on has become so advanced that kids can't really tinker on it anymore doesn't mean there isn't something else that's taken it's place.
paintball
Uhm, so it's ok to murder if someone else commits murder first? Is this the best response we can come up with? Apple stole from Xerox, so we can steal from Apple?
I'm pretty young compared to most of you guys (17 now) but I just had to throw in my two cents. When I was a kid I would always mess around with technology. Not computers because at the time my parents could not afford it but I would be able to do stuff like Entertainment system hookups and I would play on my Sega Genesis. When I was about 8 I finally got my first computer. It was a Toshiba Infinia with Windows 95 and 2 GB of hard drive space. 16 mb of ram and for the time a decent graphics card. 8 MB!!! The guy that set the computer up installed Doom on the computer and I just started messing around straight away. I broke the computer atleast 10 times. Which now that I think about it, I simply messed up some setting and made it crash or something. The tech guy would always get really mad at me. Haha At this point I've learned a lot of NT and *nix security and know quite a few languages. Just getting to this point was a lot of fun.
Well, not that I care, but I once ran across this:a ls.html
http://www.mtsu.edu/~untch/karel/fundament
About programming a simple virtual robot in C called Karel. It could be easily ported to Java.
Another way that I see most people getting interested in programming, is, they start building webpages, process like this:
1. ready made html editor (Frontpage?)
2. fix html with notepad
3. add flash/php
4. start on C/Java
5. profit?
You don't need to see my
I first used my parents' Win95 box with 64MB RAM, Pentium II and a 6gb hard disk. I first used Linux when I used Knoppix to surf porn without leaving evidence at age 11.
I too, started on a TI-99/4a, around age 9. Me & my brother had plans to buy a game console, which gave my father the perfect excuse to buy a home computer: "Here you are kids, now you can program your own games." Needless to say, when he wanted to toy around with the machine he'd just send us off to bed ;)
After TI-Basic (and Extended Basic), it was BasicA, GWBasic, QuickBasic 3, QuickBasic 4, at which point I'd already be mixing Basic and assembly language. Only then QBasic came into the picture, which I must say wasn't an improvement. It couldn't produce executable files. Bummer. In the next few years I used mainly assembly for programming, after which I had to admit to myself that it wasn't a very productive language to work in. Turbo Pascal entered the picture, and I started getting into Linux as well, getting me interested in C/C++. As it turns out, cross-platform programming is quite a pain in C++, so over there Java entered the picture. For simplicity, suffice to say that I've run into many other languages in the process as well, mostly web-related. I'd say web-based programming is possibly an interesting place to start as well, because the complexity of entry level is relatively low and there's a quick payoff.
Visit http://ringbreak.dnd.utwente.nl/~mrjb/growingbettersoftware to download your free copy of the book
I started with a 100mhz box when I was about 10. However I wanted to have a computer like... as soon as I could talk. I always was fascinated about them. So when I got it (it ran win 3.11) I broke it like twice a week "playing aroung with it" (wow you can put the resolution so high your monitor can't deal with it..., hey what's that file... autoexec.bat never saw it before! It's occupying precious discspace! Let's delete it) After I while I discovered this QBasic interpreter that ships with Windows (at least it did) and was like "look ma, I can do circles on my screen". From then on I learned to program. However Basic sucks, it slow and 16bit and alows you only to use 64k ram. So I moved on to c++...
So I would introduce children to computers by giving them an old, crappy one on which they can't play all those eye-candy games and teaching them how to program and how to use the commandline. Probably I would run Linux on it (there aren't so many games on linux) and some kind of pascal (pascal sucks, but it's better than basic)
See pictures of tits
Try Lego Mindstorms. One thing that gets every kid is wanting to build a robot, and with Mindstorms you actually can, and then you can program it using the simple kit that comes with it. And once you have outgrown that you can go to the Mindstorms hacking sites and get the more advanced stuff. It will grow with a child.
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.
You are lost in a twisty maze of little standards, all different.
There should be many reads - it's the boot writes you ought to worry about...
Back in the day my dad bought me and my sister our own Vic-20's. It had 5k of ram or something... I forget now.
I remember studying the Basic manual and hacking the automatic random sentence generator, by replacing the nouns and verbs with all the bad words a 12 year old could think up. Hilarious. Kept us entertained for MONTHS, literally.
These days, I would recommend learning programming with python and a simple text editor with syntax highlighting. Hey, I'm using that now!! =)
#6495ED - cornflower blue
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 (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. 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
I'd say you first introduce him to a girlfriend, before he gets so interested in Linux or Windows or BSD and/or becomes a new representative of /.
:)
I post this AC 'cause my gf would be angry if she read this.
They didn't steal it, there were stock transfers and such like...
read up on it if you dare.
Of course, later in life, when they are bombed by a guided missile from North Korea that is powered by embedded Linux, they will wish they had learned to use the Mac instead and resent you, but you won't care because you'll both be dead.
Well gee, what a *smart* analysis, but then, it's not like being ignorant of how embedded Linux works will save your life from an embedded Linux powered missile anyway.
This reminds me of when I was a kid, my parents told me that if I closed my eyes, people wont be able to see me naked.
Steve? Steve Ballmer? Is that you?
Surprised I've not seen this mentioned? http://www.nvg.ntnu.no/bbc/history.php3
MSWlogo has 3d. The turtle can "take of" using commands that act like airplane controls.
My 10 year old son uses several versions of Logo but prefers MSWlogo.
dewd jo0 r teh lame.
i just wanted to say that. thx
For LOGO software look here: http://el.media.mit.edu/logo-foundation/products/s oftware.html
http://www.cs.uu.nl.nyud.net:8090/people/markov/k
A version of Logo that is easy for little kids is r-logo (http://embry.epcs.com/rLogo/ that is Java-based and can be be used on-line (i.e., go to the website and play). My 4 years old son likes playing with it and watching the instructions he gives to the turtle using the control buttons being recorded in text.
I remember in third grade I had a psychopath for a teacher, who would shake you really hard by the shoulders and scream at you, spitting all over the desk. We got a computer (pc) in the classroom at some point, something revolutionary in teaching apparently, but this text adventure game just had me enthralled until the day I was caught staring at it from across the room for about fifteen minutes (daydreaming probably) and not responding to the teacher
Then there was Granny's Garden and Captain Comic in fourth grade on the PC with some excellent graphics, and this racing game on the amstrad (right next to the pc!) where the drivers would give passing vehicles the finger. Amazing stuff.
Video games really was a romance with technology, they were these worlds removed from our own where the imagination was kind (or queen ..) - especially in the early days when there was no real desire for better graphics, a game either had them or it didnt .. it still got played and was enjoyed.
However I didnt actually start programming until a highschool course in robotics, wherein I got a Lego crane and conveyer belt to pick up bricks, dump them on the conveyer and then sort the bricks by size. From there, believe it or not, it was straight into PHP and then Java.
PHP is excellent for learning .. it can be simple or really complex, very forgiving and you always get a result of some kind. With Java its conceptually simplier (I believe) to express to a first time programmer - "this is a 'person' object, it models properties of a person, this is a 'bank' object, a bank has an impatient 'queue' of 'person' objects" etc ... however Java, like C/C++ have really really shitty compile time error messages that make figuring out where you went wrong (for a newbie) really difficult and frustrating. It just requires some perseverance.
Perhaps there is a market for an IDE that can provide varying levels of difficulty (accessibility?) to a language. Master one level and you get access to a 'higher' level of complexity ... combined with tutorials or in a game context, this could turn out to be more enjoyable for a beginner than being presented with a vast api. ;)
Of course the winner is the one who throws it away and dives into the language
"Those who do not want to imitate anything, produce nothing." -- Salvador Dali
well... my father (chief angineer) bought me my first computer 12 years ago.. now i am 22. he didn't have the slightest idea about computers and neither did i ;)
that was the biggest mistake of his life, cause he's been paying for upgrades since then :D
Progression:
1) Atari 2600 game console. This is where I first saw there was something like programming, when I saw a cartridge to do programming.
2) Learnt how to program on my school's Apple IIe and ZX Spectrum (BASIC)
3) New school, learnt how to work a Genie and Genie Colour, as well as a BBC B, and a BBC master. (First saw Elite here... hehe)
4) Vic 20 with 8K expansion card - my First computer!
5) Then upgraded to C64 - games games and demos
6) Then Amiga 500 - My first 3D Cad program written (15 years old - 1985) (Learnt LOGO, Amigados and Pascal)
7) At university worked on PCs, and AIX boxen (Learnt MSDOS, LPC, C, C++, awk, sed, perl) Bought my first PC - installed Linux, OS4 and later NeXT and NT3.5)
Now I own:
1) Laptop DELL Inspiron 9100 running XP
VMWare: Running Win 2000 and Mandrake
2) Sun Sparctation 5
3) Apple iBook 900 MHz G3
4) PC Running Windows 2000
5) Amiga 1200
6) PC Running RedHat.
I would say LOGO was a good start... better than Pascal.
Others have already said this bit the e-toys in Squeak are brilliant for teaching kids programming. My 8 year old was designing and running simple programs to drive a little car around the screen within about half an hour. And most of that was self-taught, I just showed him the basics and he was off and running.
Children should get out more and play more rather than get stuck to the keyboard and games !
Chris ,
Php Programmers.
It's much easier to type that crap right (like, who's to tell?) than to speak it right.
Got time? Spend some of it coding or testing
Even since then, I have loved computers.
I see teach them with assembly language!
... Computers program children...
....
...
...
...
(evil grin)....
That's the way I learned... all those peeks and pokes.... and a z80 assembly manual.
If you really know what is going on at a basic level... all else is just abstraction.
or... in soviet russia
or
1 aquire beat up antique computer and manual
2 make a kid
6 PROFIT!
That's what started my computer interest. :-) I got one when I was about 8 after trying one at a friends house. At first I only had one cartridge with just one game, so if I wanted to try other games I had to type them in from computer magazines. That's how I started programming; by typing inn code, trying the game, and just hoping I didn't make a mistake so that the machine would have to be rebooted. Debugging was a pain I'll tel you!
After a while I got a tape recorder to save games, and from there on it was almost straight to a PC. I used a friends Commodore 128 for a couple of years, then another friends 8088, and finally got my first PC around 1990 (an 80286). From then on the computers "multiplied", and I now have 3 servers and I'm-not-sure-how-many computers at home.
The first attraction was the games, but the programming is what makes computers fun these days, I think.
This message has been ROT-13 encrypted twice for higher security.
My first memory of computing was a long, long time ago- relatively speaking. I am 15. 16 on the sixth of February. My earliest memories are that of learning how to play shuffle puck café on a macintosh LC (1!) when I was about 2 and a half. Then monkeying about with push-push and diamonds on an old - but then wonderful - Centris 610. My first expereience with "Programming" was Applescript, when I was about 6- I wrote a constantly-running-background-script to change the desktop picture every 30 minutes- and then later, when I was about 8, an "Hello, World!" in OS 8, badly written. I remember writing an advanced linux cron script to do something as well around then, but at the time I didn't have any x86 architecture, only an ageing Performa 475 that was my fathers'. I then fully discovered the joy of gaming. C had to wait.
/. code is constructed, and then let him play? Or, just show him the basic C functions, and then open vim, and tell him to type gcc ~/foo.c ~/ when he wants to see how it works?
Unfortunatly, It did. I got besotted by the G3 processor, and worked out a way to "Enhance" UT Tex packs to look like close family members. I saved up all my christmas and birthday money for three years. I bought an N64. I loved it. I still think that OOT OWNS.
When OS X came out, I nearly had a heart attack. All of that lovely linux stuff. In a pretty operating system. I saved up again, for almost three years, and bought a Beige G3 300 (With Full Audio personality card). 10.2 "Jaguar" was like living in ecstasy. I delved deeply into C, Obj-C, Creating pretty guis for things with project builder, and just using gcc to compile basic stuff. About a year ago, I got a 450 Dual G4. I haven't looked back.
Where others may have memories of learning to ride a bike, or swim, I only remember finally beating Myst Two Exile on hard mode; or writing a nice applescript or evil macro. Ironically, swimming came naturally to me! Where people might remember breaking their arm, or falling off the slide, I remember my first hard-drive crash, first dead PRAM battery, first f0rked resource forks. And I loved it.
I don't mind not having any childhood memories. Infact, I think that it's rather a good thing to have grown up with computers in such a way that they are as much a part of me as I am of them. I could touch type at 65 wpm when I was 9. I'm now up to 81. And I still can't use the Apple-Pro Keyboard!
I think that just playing about with stuff is the way to go with computing in general, although programming requires help. Code hints are j00r g0d. Really, they are. Why not just put the kid infront of code view in dreamweaver, and show him how the
My UID is prime. Is yours?
This is just my 2 cents. I started on a TI-99 back in 83 I think. I was 5. I played a few basic ANSI graphic games but I remember one Sunday morning I came into the family room as saw my dad typing in BASIC from a computer magazine. I remember having a radio shack tape recorder to save the program too. Well, after about 2 hours of typing either he or I tripped over the power supply and I remember him cussing about losing everything he just typed. Next thing you know I'm retyping everything from the computer magazine, later that day I was playing an ANSI game flying a helicopter to save people from a burning building. Then in the late 80's my Dad regained his interest and picked up an Amiga 500 with a Star Color printer and 1200BPS modem. I spent a lot of time on BBS's, they didn't seem to have a purpose but I was fascinated with what an E-mail was and that I could talk to another computer. The modem went in a box for a couple years. Fast forward to High School, the 500 was still kicking and pretty well. I met a couple kids who asked if I had a modem once they learned I had a 500, they showed me what BBS's has become. I took a programming course in High School. I was on the football team, we all took it. We went through GW Basic, but a lot of us couldn't wait to show off and see if we could learn C. Fast forward passed building computers and all that junk. In 96 I walked into Best Buy, asked for a job, they asked me what I knew about. I looked around, not really sure and said computers. So they interviewed me, one question was "What is a Pentium Processor?" I remember saying "It's a dual 32 bit processor which has [whatever the raw processing power was]". I was hired, then I found out I knew a lot more about computers than I thought. Back in 96 was when all the kids who grew up learning on the computers were just entering the part-time workforce, we were good, a lot better than kids you run into at these box shops now. Fast forward again, I landed a career with a Fortune 100 company, still working with computers. I thought the way to go was networking, as of right now, I'm a consultant and do a TON of intergrating and programming. I also started my own consulting business scripting in CGI/PHP to coding in Java/VB/C++. So what is my answer? Well, it's simple. When I was 13 my dad bought me an RC plane. I flew it a few times and crashed it, I wasn't interested in it again. I'm 27, 2 months ago I suddenly started buying RC planes again because it was something I did when I was younger and I have some great memories. So, I say expose a kid to computers at an early age. They might not to take it, but there is a good chance as they get older they might really want to learn exactly what it was they experienced at a younger age. Also, tell them not to do it, when you tell a kid not to do something, they automatically are interested in it. I remember that anytime I was told something if for High School or College kids, I instantly wanted to do it. So tell them it's for the big kids, all little kids want to be like the big kids. So, if you want them to learn programming, who cares where they start, it's where they end up that matters, you can't force a person to become a person, they have to do it on their own. I would suggest if you want to get them into programming, have them write a basic program in your language of choice that actually accomplishes something. I interview people all the time who took programming in college but didn't have practical use for it. They had no interest in learning what a class was, or proper syntax. They need to program something where they can directly see not only a result, but a use. I can teach a kid 'Hello World!' in any language, but the gratification of that doesn't last very long and just gives us web sites that popup annoying practicaly joke alerts over and over. Find something your kid is interested in and have them write a program for that. Learning to change a tire, now that's practical. Kids don't want to learn it? Weird, how'd this tire go flat
How's this for a route:
ICL mainframe at age 8 (30 years ago)->BASIC programming Animals game->ZX80 BASIC, copying games listings->ZX81 with 64K Rampack, writing own games->Atari 800, writing own graphical adventures->Sinclair QL, writing multitasking applications->Learned "real" programming at college using ALGOL-68 and LOGO on a Prime mainframe->C on PDP-11 and Sun Workstation->progressed to a clutch of lanugages including COBOL, Prolog, APL and ADA.
Today, professionally I use Java, PHP, Python, Javascript and some interpreted BASIC.
My 8-year old daughter wants to burn her own CD's and make movies. Why bother showing her computer languages when inquisitive kids of today have much tastier fare to spend there time on than punching commands into a monochrome command line?
If your child wants to learn more about what computers can do (as programming isn't for everyone), partition the disk and get them to install Linux - I'll be getting my son to do this with Ubuntu and Agnula soon. Then get them to reinstall the other partition with Windows XP. They'll learn a lot.
Andrew Yeomans
My first peek into the digital world, although it did not boast such a name at that time, was through a Nintendo NES. I played Mario Bros for ours at a friend's house. At some point, my parent's got a computer. An apple Macintosh LC 4/40. I was a bit disappointed because my friends had PCs, but, heh, that was a computer. And I found Hypercard. It was a revelation. You could actually do things with a macintosh. It was a high level, easy to learn computer language that taught me the basics (flow control and such), as well as some not so basics (events, so called "objects" like buttons, and so on). After that, I met some friends and we all bought HP48 calculator. Again, one of the best machines I ever had in hand. It's programming language (RPL) was slow like hell, hard to write, but when you did write something it was a reward in itself... My friends still had amigas (it was 1996), and were "true amigans"(TM). So they convinced me to buy an amiga, which I did. They shoàwed me how to code using assembly language. It was nice to finally see how it was done inside (but you can argue that Assembly on an amiga is hardly core programming, since this machine was designed to be programmed "high level" in assembly language, and all of the OS is at your fingertips). Shortly after I read the K&R, and I began C, to know what, as a true assembly coder, I loathed. Not so long after that, I began to understood that C wasn't such a bad thing after all. Then came C++... Today, I code in Visual Basic .NET for my work, and it's not a bad language at all. But I wouldn't advise it fir teaching, as most of the concepts are quite difficult to grasp (as with all object oriented languages)
Finally, it might seem this is not a really common path, but it's what did work for me.
I just relayed this story to someone else. Odd.
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.
Acts 17:28, "For in Him we live, and move, and have our being."
I think it was '87 or '88. It was 3rd grade, anyway. I was over at a friend's house and his older brother was playing Space Quest on their family PC. I was blown away. We stayed up all night and beat the game. I went home and told my family that I wanted a PC, so we got one for Christmas. SQ was the first game I got, and I quickly had learned to type better than any adult I knew. Still, I mostly played games, but in those days you had to know a lot about DOS to play games. Like the difference between "extended" and "expanded" memory, the autoexec and configsys, loading DOS into the UMB, that kind of stuff. I had to upgrade the hardware in order to play the newer games, so either I learned to do it or I didn't get to play them. Not to mention that in those days you had to set jumpers for everything. Installing my first sound card nearly drove me insane.
Also sometime around '92 or so, a friend introduced me to BASIC programming and the BBS world. Both completely blew my mind. I started writing programs based on the stuff I had seen him make. And I got a 300 bps modem and started connecting to the local BBS to play door games and to download.
A couple of years before college, I got into HTML of course. Graduated with an MIS degree, fast-forward a few years and now I am a sysadmin and do freelance web development part time.
When I was in elementary school we had these weird calculator things that would print a math problem on a strip of pape tape and then we needed to punch in the answer. My dad brought home an IBM 5100 and I learned BASIC and APL on that. When i got to Jr. High School My friends and I started Hacking the PDP8 by writing scripts that mimicked the logon screen so that when the computer teacher logged on it would send his name and password to another machine then fake a crash. My friend Glen got an Apple II and I was introduced to the wonderful world of BBSing and the rest is just my life. My kids (11 and 13) are into writing Flash animations and are now learning JAVA. I am an old guy so they are smarter than me. I am hoping they will throw me a bone and teach me how to use this stuff. . . Oh well, It sucks getting old.
That should demotivate them enough!
Funny, but a similar story a few weeks ago led me to find Alice and HANDS, two beginner's language projects. HANDS is not presently available (though you could talk to the author), and, though it presents a very interesting computer model (something children can more readily understand than the Newton machine), it is a bit limited.
Alice is more conventional, but it's completely drag&drop (preventing syntax errors and making block limits clear), and it has a nice library of 3D objects that children are so fond of playing with these days. And it's freely available.
Sorry, but you'll have to google for them, as I don't have a link handy.
(8-DCS)
I didn't have internet the first 5 years or so of my computing life. And thanks to that i didn't get access to any games. And thanks to that i could concentrate on learning some basic programming skills instead =)
GAAH! MY PRINTER IS ON FIRE!!! PUT IT OUT! PUT IT OUT!
Microworlds rocks haha. Yeh i would definitely find this a good start for children. It allows them to control the GUI & have so much more freedom to create little snippets of code. rt 90 fd 10 rt 90 fd 100 etc. With a small environment its good to learn and keeps children interested. after all kids these days need to see graphics instead of the BASIC output etc.
My Dad bought an IBM PC Jr in 1984 so he could run Lotus 123 from home. He showed me how to get started with BASIC, and soon I was writing my own programs. Eventually we bought a 90MHz x486 and I would log on to BBSs in the neighborhood. Then I started calling long distance to connect to BBSs in California, such as Tower of the Screaming Electron. My Dad eventually got me an Internet account, complete with a text-based interface to the WWW. I never realized it then, but the purchase of that first computer set the trajectory for the rest of my life. I don't know if I could give my own kid that same experience with all the pr0n and pedophiles online.
Those IBM PC's also had BASIC built into their BIOS. If you booted them without any boot medium, you would automatically get a rudimentary BASIC interpreter, in which I wrote many a program. I was soon writing clones of Hunt the Wumpus.
My dad also bought us a Sinclair ZX81. It must have been around 1981 or so, so I would have been seven years old. I remember writing an elaborate (for a computer with 4K bytes of memory) spaceship-console emulator. The ZX81 had a "fast mode", in which it would not update the screen (it would turn into something resembling shark fin soup), but your code would run four times as fast.
We later got the 16K expension pack which plugged into the back and enabled you to run Psion Flight Simulator (truly amazing that they could fit a fully functional flight simulator into that black brick). You had to be careful to keep the ZX81 perfectly still though, because if you wiggled the expansion pack it would reset.
But my love for computers and computer programming was really cemented when we got a ZX Spectrum. Color! (The first one we had had red and green reverserd, which was interesting.) Sound! 48 KB RAM! Real keys! I spent many happy years with my friends waiting for tapes to load and playing Manic Miner, etc. I learnt machine code programming and all kinds of advanced programming techniques such as the GO SUB command...
When it came time to choose a major for college, there really was no competition. I briefly considered physics, but computer science easily won me over. I guess it was inevitable, with my dad working at IBM (although he never pushed me to go into IT), and the many computers which were laying around the house. I'm now a Java software engineer, and I've never looked back.
Heh, LSL is the first game I got where I really started to learn how to type. I started off on a TRS-80 CoCo playing very few word games, mostly Zork and Dungeons of Daggorath. Plus the TRS-80 keyboard was awful. I did very little programming on here, probably because I was about 5 when my parents got it. I then went to a Texas Instruments TI-99/4A which was an awesome computer for me. I did most of my programming in Basic on this machine because it was mine. My parents got it for me when it was at the end of it's life for fairly cheap. Unfortunatly I lost all my cassette tapes with the programs I wrote. :(
I started using PC's in 1987 on an 8088 with an amber monitor playing Lesiure Suit Larry 1 :) First PC game I had ever played. I started to get away from programming when I switched to PCs because of lack of tools. Then around 1990 I got a 2400baud modem and that opened the world of BBS's to me. Shortly after that I downloaded a copy of Borland Pascal and started teaching myself. I started my own BBS and wrote a number of my own BBS doors in Pascal.
Around 1994 I got an internet connection, downloaded Linux and things just took off from there :)
The first computer I ever purchased was an Amstrad 1512DD. Wow, I remember it had not one but two 5 1/4 floppy drives and no hard drive. Lots of disk swapping to say the least.
,Himem.sys , OH MY!
Next,I remember trying to squeeze as much memory out of my PB 386SX 16. EMM386, XMS
Every game had different memory requirements. I remember spending hours setting up boot disks just to get the game to start up. Sometime it would start up to the manin menu then die when you tried to play. Talk about memory management!
Instead, I learned in the summer of '76 on the mainframe at UF while in a high school summer science program (NSF funded program). Punched cards and 300 baud terminals ruled. FORTRAN was fun....
I got started with a terminal that dialed up to a large company's mainframe, via 300 baud modem. I don't remember how old I was, but I'm guessing this was late 70's early 80's. My father would log me in so I could play rouge. Good times. Cool thing was that I later remembered some of the basic unix commands, like 'ls', in the 90's when I got into Linux for the first time. In any case it was a good start. I immediately began trying to reprogram every thing: stereo volume knobs, escalator stop, buttons, etc. Pushing buttons does cool things!
I think the (learning) vehicle should be transparent, and real. Look at plastic. When plastic first came out, everyone strove to make it look like something it wasn't: wood, leather, stone... fake, fake, fake. People based it on what they knew in their present world view. For a long time, people were stuck with the glaring image of plastic trying to be something it wasn't. It was hard to see beyond the imperfection. What plastic really had to offer, was a new aesthetic. A new way. It took a while for that to happen. Now, look at computers. Why have your child learn to count by clicking fake apples into a fake box? The child is much better off with real apples and real boxes. Now take it home. Real computers... new ways of learning. What do computers do that apples and boxes don't? Total immersion, virtual reality, computer games and... and... and... who can imagine where we will go from there! Let's not burn our energies on fake wood.
That was the first computer I ever seriously used. My dad, being the elder-geek, bought one back in... I think it was 1981, about a year before the Commodore 64 hit the market. It had come down in price since its release, and he thought it would be a good deal to pick one up. Started with just the computer, datasette, hooked up to our 19" Heathkit TV. Later, he built a computer desk, and added a 5" sony b/w TV, then a 12" b/w TV. He later wanted to do more than 22 columns of text, so he bought a 40/80 column adapter, and a green composite monitor. That worked well, though the 40/80 mode was only monochrome, and high-res color monitors in the early 80's were really expensive.
:)
So, with 5K of RAM, and a datasette to save my programs on, I started to learn BASIC programming. My dad had been way ahead of me in the programming realm, as he was working on his Article Filer program (Later morphed into Flexi-Cat 128, for the Commodore 128, and he sold the program to LoadStar, and it made it onto one of the LoadStar 128 Disc Magazines) for quite a while. He decided that while the monitor had no audio, and we kept killing 9v batteries out of forgetting to turn off the external sound amplifier he built, he built that board and speaker INTO the computer. Neat trick, worked well, no more batteries. RAM was hacked and expanded from 5K to about 32K, a C1540 5.25" SS/SD 170K floppy drive was added, as well as a 9-pin dot matrix printer. Oh the joys of printer interfaces.
From those times, we moved up to a Commodore 128 in 1985, did the usual ROM, Video RAM and other updates to it. 20MB SCSI HDD, better Monitor, Stereo sound, multiple 5.25/3.5" floppies, laser printer... we had it all. Even a RAMBOard... if anyone remembers what those were...
Long live EagleSoft.
-- Liberalism is a mental disorder.
Weenie.. :)
;)
I too came from a Commodore background, but my uncle had a Tandy. He used to set me in front of it to mess around when we had holidays at their house. Usually that involved running some shareware program like Maze Runner (gotta love those old, weird Tandy joysticks), but I decided to start exploring the system after a few.
I had to figure out the DIR command (after forgetting what it was and trying CAT and CATALOG and other things that seemed likely), and then just ran all the other commands to see what they did if I couldn't figure out a likely candidate from the command name.
Not recommended on today's systems. You'd probably end up firing up a Trojan installed.
SYS 64738
Quoted from my blog, my article on How I got to Be Such a Geek:
.NET platform.
It all started because I lived out in the middle of nowhere. I had nothing to do buy stare at a computer screen. I learned to write simple programs in AppleSoft BASIC when I was 10 in "Challenge Class" (as it was called in those days) in elementary school.
I learned to write text programs, and some HLIN VLIN graphics, but I couldn't afford a computer of my own. I found a used Commodore VIC20 at a garage sale and I FINALLY had something to program. It came complete with Tape drive, but didn't have the ritzy graphics caps that Applesoft did. Didn't bother me a bit.
I bought a used mac 512K for $50 in 1992, and my neighbor who was a CS prof at the local university died of lukemia, and his family gave me all of his books and programs. Sad that it took such an incident, but the lot included an MS-BASIC interpreter, a pascal compiler, LightSpeed C and Mac Assembler. I joined APDA (Apple Programmer and Developers Association) as a 12 year old, and bought the series of Inside Macintosh books. I checked out a few books on Pascal and C from the local library, and took myself for a test drive in those languages too. I settled on C, and I wrote my first series of games. A popup shooter (arcade style) and a space invaders clone (Which I might add was a lot more fun than space invaders because there were more weapons and bonuses and stuff) I learned blitted graphics, and my final mac Enterprise was a black and white clone of the game Dragon Warrior cross bread with the Legend of Zelda. By this time I was 14, and System 7 for the Mac was out. To me, it was the holy grail, but I still couldn't run it. Never made it that far. My parents bought me a 486 and I ran qbasic. I made a zork-like game, an evolution simulator, and by this time, I was seriously hooked on computers.
When I was fifteen, I began ripping apart my computer and adding parts. I got a job at the local bank holding company working three hours a day as a help desk technician, and then moved up to full time in the summer. By the time I was 19, I was in college working on a degree for CS, and I got an internship at a DoD contractor, where I stayed for two more years as an intern, and eventually was hired. I still do a lot of development work (especially web development) on the side for fun, but most of my real life interaction with computers is as a Sysadmin.
Soon after I began my internship, a fellow CS major of mine introduced me to Slackware Linux. It was a match made in heaven, and all of my beloved C programming skills flooded back to me. I eventually saw Redhat evolve into the dominant disto, took it up, and I'm still following with the Fedora series. In the meantime, I've learned PERL, Java, C++, and the various Microsoft pervesions of them in the
A contest/school project in my senior year of college exposed me to my first round of embedded programming. I learned how to wire circuits and code for microcontrollers (MC8H11 and BS2) and I've started myself a hobby of robotics.
I've always been very proud of the fact that I've had my hands in every facet of computing, from the text based early days, to wiring circuits, to the opcodes and operands I used to do some RTOS raw coding. And I have only recently discovered MMORPGs (Massively Multiplayer Online Role Playing Games) and I'm hooked. Techie by day, gamer by night, I live with my beautiful wife, and we're expecting a baby in June. I hope that I don't seem like such a geek to my kids. It's going to take all that I have to not force my geekliness on them.
Speak for yourself.
"When I was young, we only had BASIC"
"You were lucky! We had to chip bits out of the RAM with a chisel."
"RAM? Luxury!"
There's being a geek, and there's being a boring geek.
Today's computer kids are like today's young motorists: they only want to drive 'em and drive 'em fast. The technology is advanced enough to get some other poor human to program it for you. Oh. That'd be us then.
"You have to PROGRAM it?"
Say that to kids today and they don't believe you.
this is just a test of my new sig.
The first time I ever saw a computer was as a college freshman. However, my brother had taught me to convert numbers to binary and back as a kid. I thought that was really cool!
My first programming language was FORTRAN on a CDC Cyber 70. I quickly learned BASIC and then came to love Pascal.
For kids, I would expect them to want something that's easy to use, somewhat GUI, and I think it's important that it has aspects of a real programming language like decisions, branching, looping, stored data (variables) and such. HTML, for example, doesn't include those. (Though I have witnessed a teenager this Christmas become fully fascinated with HTML, after I showed him how to write it, because he wants to develop his home page).
The best suggestions I've seen here are LOGO and Squeak, I believe, and probably BASIC which is hard to beat (but also not as ubiquitous as it used to be, sadly in a way). BASIC might actually be the best.
As I think about it, though, I think most of us were movivated in a different way. We saw the computer itself as a fascinating thing and BASIC was a way to get into the computer and make it do something. Today, I think kids usually take the computer for granted, like they are one or move levels up from where we were. They might want to make something happen in the level they are interested in. So maybe the BEST thing is some popular game or environment which sneaks in decisions, data storage, loops and such in their enviroment, such that it's programmable.
My daughter has been playing millsberry.com a lot. I know it's customizable but I don't know if it has the above characteristics. If it does, or such was added, I think that would be a superb environment.
There's no reason, in this day and time, that you need to start with a LOGO triangle turtle crawling around. You can have a fully functional robot, person, or even avatar, that's programmable in some rich world.
I'd say, take something like Millsberry and, when the kid builds their house, let them make the lights come on automatically when you enter a room. Let them make particular music start playing based on who walks in, etc. Make the programming environment a text-based language (at least optionally) so they get used to that.
I would also promote the idea of reusable code in such an environment. There should be a way to use some code they've previously written as a re-usable chunk in other code.
My first programs were actually on an HP-25 calculator, before I took the FORTRAN class. I have to say that writing low level programs, that did *really useful things* in an environment that was stack-based, essentially had registers, and memory, and a fully functional set of instructions, was wonderful prepearation for programming, assembly language, stack-based languages, and even higher level programming.
Today I love object-oriented Perl on Linux.
It's 1969. I am 7. It is summer in Alaska. Jack, my friend, and I are building a robot. Constructed of cardboard boxes and aluminum foil, it's brain is my older brothers Kraco Reel to Reel portable tape recorder. Jack and I are already avid scifi readers, so we know enough about robots to record Asimov's three laws on a tape.
Fast forward to age 12.
My father's workplace, the US Army's Atmospherics Sciences Lab at White Sands Missile Range, is a small space stuffed with all kinds of cool gizmos. In the corner is a Data General Nova hooked to an old paper-tape equiped teletype. My dad puts the thin strip of paper, punched with lots of holes, on the reader and hits the run switch. With a flurry of kachunks the tape is read in and my hand prints out noisily on the teletype.
K CLUBS
10 HEARTS
10 DIAMONDS
8 SPADES
2 CLUBS
1976 - the US Bicentennial Year. Tall ships in the harbor, a restored Statue of Liberty, Jimmy Carter. I discover the computing center at the local University. They do not seem to mind a 14 year old sitting down at one of the terminals, opening a book called "APL Plus" by AJ Rose, and starting in on the excercises.
I am hooked. Addicted. A lost Soul. A thread has developed that will knit the phases of my life, no matter which direction they take. Submariner, Instructor, Security Guard, Shipyard Worker, Designer of Manufacturing Machines - no matter what my *job* is, my vocation is computing.
The Present. Job and Vocation have meshed. Now a system administrator at a University, I finally get paid to do what I love.
I had a 200 in 1 kit from radio shack, and I would spend hours building projects from :)
:>
the book that was supplied with it, and then moddifying them. I also took components from
old, broken toys, and add them to the board.
I took an old neon lamp from one, and used it to
back light the analog meter on the front panel.
I loved that thing, but my only gripe was that
the %$$#$ individual LEDs on the front panel
was so easy to burn out. The 7 segment display
was protected with resistors, so I never had
a problem with that, but my box had plenty of dead
LEDs.
Just throw a pile of integrated circuits on the living room floor with a manual and leave them alone with it for a while. Usualy, they will come to your home office after 15 minutes asking you "Mummy, what's a tri-state?"
For all of you looking to reclaim that first programming experience, LOGO is still available. It's been updated a bit: multiple turtles, color, even 3D IIRC. If you head to the link above, you'll see lots of talk about modeling comlex environments and such, but it is really just LOGO with a bunch of MIT geeks writing webpages about using it. ;)
I handed off my exercise deck (yep hollerith cards) to my Acct/DP teacher who handed it off to a student 2 classes later. He took the deck home to his dad, who took it to work the next day and submitted it. The kid brought the deck back the 2nd day to my Acct DP teacher, who sat on it till next day when the pile of compiler errors was finally returned to me.
Turnaround time of a 30-second batch job: 4 days.
And I thought I had it good!
That which does not kill her only prolongs my agony.
I started this life with c-64 and amiga512 but early on a single book was captivating. 'Cuckoo's egg' by Clifford Stoll. got me into astronomy, hippies, and hacking.
Ben
I started out when I was 7 or 8 years old on a TRS-80 CoCo. I originally wanted it for the games, but my father was smart enough to see the potential for a lot more. Sure enough - when I got tired of the games, I picked up the BASIC programming manual that came with the machine and started poking around. It was a only a year or so before I was typing in programs with hundreds of lines of code from magazines and picking them apart and modifying them to make them do what I wanted.
:) I would probably teach Python as a beginning programming language even though I rarely use it myself.
I have no idea what to recommend in today's world, though. I have three kids and none of them have shown much interest in the computer outside of games and web surfing so far. I remain hopeful, though
I recall the teachers all telling us whippersnappers how lucky we had it that we had not started in the punch card era. And I was grateful that we had not... :-)
emt 377 emt 4
I talked my parents into getting me an Atari 800 in the 4th grade - 48k of ram, no disk (tape cassette)... a few years later finally got me a 5 1/4" floppy drive and a 300 baud modem (screaming!).
The beauty of the early days was that if you wanted a game, you'd get a computer magazine and type it in. So you'd pick up a lot of code while you did so. I'd find myself changing colors or sound effects. My friend Joey and I started trying to make our own games hoping to get published.
Everybody back then had BASIC and many had other languages as well (LOGO, Assembly cartridge, etc.) Now things are different. The magazines come with cd's you just pop in and run. Most people have windoze with no programming language. Not even a really popular scripting language.
If I was gonna try and get a kid into computers today, I'd go with a mac... teach them how to use applescript to get some things done. Get them making some dashboard applets (coming out w/ tiger - done w/ simple html). Get them to make themselves a homepage as well. I'd say html and simple scripting would be the easiest way to get people into programming these days. Once they get html down, show them some emca script (java script) and maybe flash. Then on to php and perl. Next thing you know, they'll be working at Google (if they don't get consumed by somebody else).
I got started on early Sierra games. Then I ended up learning C after my parents moved to a rural area when I was 11, mainly out of lack of anything better to do. I learned enough to write a DOS-based pong clone, then quit until college, where (from what I've seen) most graduates still couldn't write a pong clone. My advice would be to allow your kids to explore programming if they wish, but don't force them. My parents didn't encourage it or discourage it, and left me to my own interests, even though my dad was a programmer who was fairly passionate about computers (at least at the time). C was my first language, and I think it is appropriate for a kid to learn, despite what other people say. But seriously, I would have been a lot happier now if I didn't spend as much time in front of a computer when I was younger. Encourage your kids to go out and play, so they don't become nerds who only learn that they don't really care about computers until they're 5 months from a BS in computer science (like me). Programmers, especially those from newer generations, are typically not well-adjusted. Don't propigate the cycle if you don't have to.
When I was 9 years old (1982), my dad worked at a Sears store as a product demonstrator. Right across from his department was electronics. They had a TI-99/4A, Commodore VIC-20, Timex-Sinclair (with that nasty bubble keyboard), etc. The VIC-20 usually had my attention. One day, a shopper showed me how to make my name fill the screen, using everyone's first program:
10 PRINT "DAN"
20 GOTO 10
And I was hooked. A year or so later, I owned my own VIC-20, later replaced by a Commodore 128 (I skipped the 64 altogether). I didn't get my first "real" computer (a 386) until I was in university studying computer science.
I owe much of my early computing learning to RUN and Compute!'s Gazette magazines.
There, fixed that for you.
What do you mean by "Linux" code? You must not mean "free software" or "GNU software" since Sun workstations were a useful target for most free software while most Linuxheads were still shitting their diapers. It's always been an easier target than AIX or IRIX, as well.
Now before I get modded down, I be to remind whoever might read this that what I am saying is FACT. - bogaboga
I was first introduced to computers when i was 4 years old. I was blessed to be going to a school where the teachers had decided to put our story telling skills to the test by making us use a software program which gave us certain main blocks of a story (i.e. introductory paragraph, main body, conclusion), made us choose from different scenarios, and put it all together for us. If we were finished fast, we were allowed to play a game for the rest of the lesson. Needless to say i was often finished well before everyone else.
We left that country shortly after and my dad started really getting into computers. Of course we had the usual game consoles (who loved the Atari's??), but when he got the first computer in 1989, i remember us being strictly forbidden to touch it. That one soon died (god knows what he did to it) and the next one we got was in 1992. We were now allowed to touch the sacred machine but only when my father was present. The rest of the time it was locked away and only he had the key. I was already very curious about how this whole thing worked and by the time we got our 3rd computer (this time with an internet connection!!) i was taking computer studies classes in school which taught us BASIC and the rudiments of computers in general.
We left the country we were living in at that time and ended up in a place where schools did not have computer labs and even if you did like computers, by the end of high school you were strongly encouraged to forget about them, and directed towards law, medicine or tourism in university. Well i did my piece but ended up hating what i was studying because i knew i didn't like it. When i finally told my parents i wanted to study computer science there was quite a silence, then my mom came out with "But honey, you're a girl!"
They had always been against me staying in my room for long periods of time, in front of my computer. I know i'm not the only one who has had to suffer the "But we never see you anymore" speech. I eventually managed to convince them to let me try it out in university, and i don't regret it one bit.
As for my own children (whenever they would happen) i'm not sure. I think i'll just let it go the way they want (okay, they're not getting their own computer before 16 unless they can pay for it). If they feel compelled to study that branch of science then go for it, if not, i won't be disappointed. And if my daughters (oooooh girls!) decide that Comp Sci or anything relating to that is what they choose to do then good for them. I will encourage them as much as i can.
As a high schooler myself, the things I used on computers are probably a lot more recent than others'. When I was a really little kid, I remember my dad's Apple Plus. Sim City (the original) was fun although confusing for a 5 year old, but there was also the paper airplane game, the puzzle game, the lawnmower game..
Then came the big bad PowerPC Macintosh with COLOR (angels sing). Tetris, and al those awesome games. It wasn't until we got an IBM that I began to get interested in the actual workings of the computer. Maybe when I was 9, my dad tried to get me learning Dolphin Smalltalk. Partly because he himself didn't know it well himself and the fact that all I accomplished was a bunch of multicolored squares and triangles moving around the screen, that didn't work out too well.
Next was Java, which as you mentioned above, was pretty boggled down. No good. But I did manage to learn HTML and am currently working up my PHP knowledge. For little kids interested in learning basic programing/scripting, I would recommend HTML and/or PHP. No constant compiling and giving the opportunity to show how code can produce something quite different.
Also, the BASIC-like system of RPG Maker 2000 is simple to learn. The programming language of Game Maker is also easy to learn. Anyways, Ive said enough.
Hmm. My first computer would have to be an old Apple iBook. I was about six years old and I worked with that thing constantly. It was so trashy looking at the time that my mother kept begging me to throw it away -- she had no idea what I was actually doing with it. Later on as my life progressed, my mom ended up buying me my first desktop, which was an iMac and later on, I build my first system at the age of 10. At that time though, Windows was getting popular, so I installed Microsoft's deadly operating system to my system.
The biggest thing that really got me into programming was my love of video games. I was a huge gamer (and still am) since the age of three and ever since then, I've been engaging myself in an assortment of video games. Later on, I wanted to design a website about video games -- I ended up going to one of these template generator sites and making my layout... only to get bored with it later. I eventually took up learning HTML and with Frontpage at my side, I coded my first website about video games. That sparked an interest with me and programming (even though HTML is just a markup, it's the fundamentality of the fact). So a little later, I wanted to make my website more advanced -- I learned to use Photoshop 6.0 to do some graphic work for my site, and I learned a little bit of JavaScript to make some other scripts for my site. Later on after playing with JavaScript more and more, I began to notice an emerging new language by the name of PHP. I had read a good bit of articles on it and never really thought to use it until I saw how easy it was to set up my own Apache server. I then began to take tutorials to learn this new PHP language.
I didn't do a lot with it but configure stuff at the beginning -- I installed phpBB forums to my website, set up PHPNuke to update my site's news, and wrote a few small scripts (counters, polls, etc), But just learning that language was a fascinating thing. After stumbling through IRC channels and Usenet, I heard about another language -- Python. It, besides C++, looked very interesting to me and I just wanted to set out to learn it. But at the time, I couldn't really find anything on it. And anything I did was for GNU/Linux (didn't know what it was at the time) and UNIX systems. So after searching far and wide for a Windows port of Python, I took a look into other operating systems -- mainly SuSE 6.0. Wow, just reading about the entire structure of this language and how it works -- it being more flexible and stable than Windows was a miracle. I then took my time and effort to read about and eventually install SuSE 6.0 to my computer. And boy, was I impressed. From that moment on (my parents also bought me another computer from a yard sale, which I installed an older version of RedHat on) I read everything I could find about Linux. I went over to a friend's house to use his version of UNIX (because he mentioned liking it better than what he knew of Linux), but I just laughed in his face. Nothing could drive me away from my Linux boxes (well my RedHat box eventually fried). But I finally was able to install and check out Python -- which I later fell in love with. Python, even today, is my most widely used language. I know more about it than any other language and I can do more with it as well.
Now... throughout all this time, I've read about the powerful C++ language on BBSs, Newgroups, etc but I figured that I could never get into it -- it seemed more professionally driven and I could never understand it... until I actually sat down to take a couple of tutorials on it. I wrote my own Tic-Tac-Toe board, a text-based adventure game, and a few other simple things. I learned a pretty good bit about the language, but I never chose to keep it going that long. I later went back to it to learn more for an assortment of things. I also managed to take up learning Perl, which I dropped after some time (because #1, I pretty much discovered it late and #2, anything I wanted to do with it, I could do with Python and PHP easily.) So I guess I never had the chance
"Instant gratification takes too long." - Carrie Fisher
My first programming experience was on a TI programmable calculater in the 70's. I never touched a computer until I was in college.
There are still interpreted languages. For the purpose of teaching programming I'd recommend Scheme. Nice little language available in lots of forms. If you want to teach something that will be a decent learning language yet still useful commercially I'd go with java.
A good way to get a teenager interested in and learning programming concepts is to help them with a scripting language. I got some programming basics from the IRC program mIRC's scripting system. Set them up connected to a computer and let them build some bots while chatting with new found friends. Just make sure they don't test bots in real channels, let them make their own.
Same as a lot of people we had a C64 in our house to teach me the new ways of computers and actually be able to do something with and not remember what I learned in school what the words ROM, RAM and VDU meant.
... :)
But what actually happened was I bought a lot of those gaming mags which had program listings which you had to type yourself to get a program happening and play the game.
Weeks and weeks of typing.
Then,
RUN
SYNTAX ERROR
A few weeks later you'd be damned happy that you had a working game.
Doing all this made me finally try that music synth program which was mentioned in the manual and got me interested in MIDI and computer music.
So what next ensoniq samplers.
Something called the toaster and the PAR on the Amiga
Cubase on the Atari ST
And now Logic, FCP, AE etc on a MAC
Computers made me more creative and opened up a whole new wave of opportunity.
And there is a synth based on the C64 sound chip the Sidstation , it all is just too good. Circle complete.
hypercard is a cool program to get kids started on apple computers. also some of those robitics kits are good, where u can program a little robot with heat and light sensors.
Trying to learn a language through a book that teaches the parts of programming can be a pain. I'd suggest that you instead find an existing program that you can modify to work on.
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 that's already there than to try and think of (and implement) a whole new package to program from scratch, especially when you're still a novice.
paintball
When I was little, I was introduced to programming by accident with my Apple IIe. I was loading a program when it suddenly stopped. I guess there was an error or something (rarely happened). So I typed a command (I think it was 'list') and there it was. Tons of code before my eyes ...
...
.NET can always be taught later on once the interest is there and the foundation has been built.
20 Print X
25 Goto 10
Back then, the basic interpreter was built right into the system so all you had to do was start up the computer, press a couple of keys and you were instantly sitting at a prompt, ready to code away. Apple made it so easy. I remember writing lots of loops. I made a rocket ship out of ASCII characters and made it cycle vertically thoughout the screen. From then on my interest in computers flourished and the rest is history.
Ahem...
Anyways, the point I'm getting at is SIMPLICITY. That is the key. The system was so simple I learned by accident. Well almost. I think the best way for youngsters (preteen) to learn programming is to stick 'em with a DOS prompt and some type of interpreter (ie. Basic). Keep it simple. Not OOP. Something where they can see the results immediately. Keep the difficulty low and the feedback from the machine high. The likes of C++, Java and
Pure luck. The first job I got when I dropped out^W^W left collage was as a computer operator feeding punch cards into some "Big Iron" that was about as powerful as a Game Boy Advanced. I got this job because it was the first place that hired me. From there it was just a matter of tripping over events which let me down the path to PC Support then Programming (COBOL under MVS) then Web things (under Linux) to UNIX Sysadmin (Linux and Solaris) to Network Admin to Teacher/Consultent.
> How old were you when you first used a computer?
I was 17 and a senior in high school. It was a BASIC programming class where we used TTY's.
> What pieces of modern software do you think would be a good way to
> introduce today's kids to the world of computing?
A Mac. When my son was 4 I game him an old iMac and put OS X on it. It took about three weeks before he was training me in the use of the frelling system. I'm 100% serious.
> I'd like to ask my fellow Slashdot dwellers what tools,
> languages and approaches they have used to help
> introduce new people to programming?
FWLIW here's an idea -
- Start with "Programming From the Ground Up" by Jonathan Bartlett. This would give a good, solid foundation in programming fundimentals
- Next scripting with Bourne shell.
- From there maybe Python or Ruby, if you want to jump into OOP. Stay away from perl!
- For compiled languages I'd recomend SmallTalk or Eiffel.
- Once a good and proper foundation is set then let them into C and/or C++ (but not before!)
Once good, solid programming basics are learned then the language used tends to be less of a bottle neck.But this is just my opinion. What the hell do I know...
--
If I actually could spell I'd have spelled it right in the first place.
First, let me say that this is the first example of an ageist question I have ever seen on slashdot. The assumption that computers existed in a form that you could hold in your hands as a child... well you have to be pretty young for that to be the case.
:-)
My first experince with computers involved taking a college course in COBOL programming. The first thing I learned was how to use a key punch. The computer was something you could see through a glass wall. It was *not* something you could touch.
So, why would I, a happy hippy history major on the road to being a lawyer decide to take a class on computers? And why COBOL?
The simple answer is science fiction. Asimov's "Foundation" trilogy and "Simulacron Three" the basis of the movie "The 13th Floor" made the potential power of computers seem almost magical even though they were both written when computers were more science fiction than science fact.
The introduction to the *idea* of the power of computation forced me to believe that computers were going to be important to my future life.
Why COBOL? It was the lowest numbered non-major course in the catalog. It had to be the easiest, right? What did I know. I got a B in the class even though I never understood a single assignment. So, I took the lowest numbered course for CS majors. Eventually my advisor noticed I wasn't taking any history classes.
In the end I wound up with a masters degree in CS and now can't give away my programming skills. If only I had stuck with the goal of becoming a civil rights lawyer.... Nah
Stonewolf
...but DEC paid him to write it for DEC. Note the settlement MS later paid DEC and then Compaq over it.
Can't speak for AIX, but IRIX has always been easier than anything Sun for me.
Got time? Spend some of it coding or testing
It all depends on how you want the kids to use the computers. If all they will be doing is use them as complex appliances such as word processing, then you don't need much introducing. It is best to hide all the intricacies and idiosyncracies of GUI and OS internals. Just teach them the basic concepts behind files, folders, I/O devices, volatile and non-volatile storage, etc. I presume that's the only thing many of the users will be doing.
If you want the kid to learn some programming, then start with simple languages to learn, starting with simple logic and progressing toward more complex structure, but again, try to avoid any idiosyncracies, and make it fun. If they are interested, they will eventually get through and learn the weird details on their own. If not, they were not that important anyway.
I find linux to be the best choice, since you have full control on how much you want the kid to access (from almost zero access to 100% OS internals) and tremendous open source tools are available.
I have linux running for my kid, and he is able to use all commercial educational software based on Windows to run under qemu in linux, so there is no dual-booting necessary. Now I can run DK titles side by side with linux.
For everything else (internet, word processing, database management, calendar, programming, etc.,) linux is used.
What about games, you may ask? Well, since Windows is running under qemu, it's a little slow for games, so they are scrapped. No one misses them, and it's a price to pay for avoiding dual-booting.
Those early days may be very different from what it is now (except possibly for linux.)
I started using TRS-80 at 14, and learned BASIC. My dad bought me a star-trek-like game, and no matter how I tried to emulate it using BASIC I couldn't.
My Math teacher gave me a reference manual to TRS-80 Z80 assembly language before summer. I spent a month during summer trying to decipher the three little pages describing labels and a simple example of writing Z80 assembly for clearing 1024 bytes using LDIR instruction (it was a reference manual, not a tutorial) and finally, after a eureka (finally understood that a label may not be a variable and registers are like variables but not in memory) I wrote an assembly language game. All this in 6 months since I started using a computer. I think knowing algebra and logic really helped me learn fast.
I progressed from there on my own, to learn 6502 and Apple II internals, to hand dis-assembling Atari 800 ROM and learning every detail about bootstrapping and I/O in it, and eventually writing a clone of 'invaders' in machine code that was saved to a tape using one of the routines in the ROM that I discovered, which can be auto-loaded at power up without a need for manual load.
But now I don't see that kind of knowledge being useful for next-generation kids. I wouldn't want my kid to learn that way. In a decade, computers will be used mostly as complex appliances, and programmers will be very specialized. It isn't a problem to defer programming to later years.
Just focus on fundamentals, especially math. Nothing beats math as a required academic knowledge.
I heavily got into using a computer, I started playing online flight sims, moved to modding the game then building models for it, then eventually to programming my own apps.
My first contact with anything resembling a computer aside from gaming consoles was a C-64 keyboard, I would site for hours writing the lines of code in the booklet to see the balloons float across the screen, then recode to alter the balloons in some way.
Last year my 7 year old who was then 6 walked up on me while I was writing an app, and said "daddy, I want to do what you are doing", I was so proud that she wanted to be a little programmer. Bieng 6 she doesn't read nor write well enough yet to use a higher level language. She has had her own pc an old PII 233 with 128 megs of ram and an old 8 meg video card plenty to run 90% of the kids games out there. I did some research and found a program written by a professor who taught for awhile at MIT who also was in the same boat, kids wanted to program but were not developed enough for a higher language, so he began working with a few friends to develop a software pakage that taught children the basics of programming. It didn't teach syntax, but it teaches the basic concepts, loops, addition, multilication, division, and subtraction. You have a robot, you have to tell teh robot to do a specific task before he does anything. Once you tell him what to do you set the algorithym to tell him how long to do it. Turns out she loves the game.
For those who also have young children interested in programming here is the link. Well worth the $30 for the software. http://www.toontalk.com/
I am Bennett Haselton! I am Bennett Haselton!
I started out the same way, with the Vic-20 and later the C-64 and C-128. But how do you get today's kids started without just dumping them at a BASH prompt?
Dump them at a C-64 emulator? I first used a computer when I was about 8 - there was a class at the rec department and the instructor had a VIC-20 and knew some BASIC and assembly.
You can teach an 8-year old assembly if neither the instructor or the student know it's too hard for an 8-year old.
I got a C-64 then an Apple ][ clone, then an IBM clone, a Macintosh and finally Linux. There are emulators for all of these. If kids learn more and more complex systems as they age it's probably easier than dumping them in a large multi-user OS.
Python was selected for teaching programming for the Navy. It's the kind of language that's easy to outgrow but good for getting started.
I took a CS degree in c - most of the time was spent fighting the compiler and worrying about language arcana. I could have learned more in python, java, etc.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
My first computer experience was in 1957 or there abouts. My mom was a 'keypunch operator' for a bank. I got to sit down and type my name in the machine and see a card with my name on it. Computers and technology facinated me since then. I was a kindergardner at the time. As for kids being introduced to them, I have just made them available. My kids (ranging from 24 to 6) have never had any real fear of them and in fact my 8 year old daughter does not realize any difference between a local program and one on the internet. One rule though, all computing is done in open areas where parents can supervise. Though there are no filters on the machines, they have not needed them either. The Doc
My dad visited the ENIAC, the first successful electronic computer, during its brief lifetime of productivity, and was a government project officer on MIT's first computer, Whirlwind. This was a bit before I was born, but it meant I'd have an earlier peek at computers than others of my generation.
The first computer I physically encountered was LARC, an early supercomputer. Later, in junior high, my dad brought home some assembly language programming manuals and I tried my hand at programming. I don't think the programs were ever run, but I sort of liked doing it.
I didn't get back to computers till I did FORTRAN in college. FORTRAN quickly led to time shared BASIC and then to a couple flavors of assembly language. By then there was no going back.
It makes me think that some people are simply destined to be programmers and such. Some of us have a particular quality of patience combined with curiosity and tenacity that yields working programs. I don't think the early introduction actually matters that much, as far as programming aptitude goes.
my first computing experience was using a 286 typing at the command prompt not knowing exactly what to type. And I think my first commands I found was dir and cd. My first game was sokoban that I played on their.
My Gawd WTF...