The Little Coder's Predicament
An anonymous reader writes "There's an interesting article
on Advogato about the world of computing that kids today find themselves in compared to the world that kids in the 80's found themselves in. Learning to program in the 80's was simpler because the machines were more limited, and generally came with BASIC. Now we have Windows, which typically comes with no built-in programming language. What can be done to improve the situation?"
That ought to do the trick. Pick some easy to install distro, does loadlin still work on WIndows, well, make a boot floppy if need be.
Infuriate left and right
Let's face it, if you want to develop software, Unix or Linux is a great way to go. The price is right, the technology is current, the compilers are included, and multiple programming languages from lowest to highest level are included/available.
So if you want your child to have the experience of becoming a techie, it behooves you to have at least one workstation around that can at LEAST dual-boot into a *ix environment, IMHO.
It was a joke! When you give me that look it was a joke.
When I started programming, I was 8 years old, and worked with what I had available. I made simple GW-BASIC programs and have moved on from there. Maybe OS's should think about the next generation of devlopers and include some sort of learning language to get the kids hooked when they are young. At least they could learn the concepts, and grow up moving on to bigger and better languages as I did...
Something clever...
No comments yet and it's already /.ed. Nice.
In response to the summary, I'd say the first step is to ship computers with some sort of programming language built-in, but the fact is that programming is a complex thing these days and there's no way to just make it simpler so that kids can learn it easily. If you want to learn to write real programs, you'll just have to commit some time and effort to it. That's why I decided to change my major to physics.
I found the meaning of life the other day, but I had write-only access.
I think the problem with teaching programming to youth these days is the perception of learning a "language". Instead of subjecting students to the CONCEPTS of programming, such as inheritence, oop, etc., schools are more inclined to teach children languages instead. It produces grades, I presume.
The trouble with that presumption is that kids get so accustomed to one language that when they get to college and learn the concepts, they have to throw all they learned out the window and start fresh. Why can't we start these kids off the right foot and wean them off of the language dependency?The way I see it is children should be taught the fundamentals of programing at a relatively young age (12-16), like looping and recursion, and let them experiment with the fundamentals with their own choice of language.
------
Amadaeus
The last bastion of Mathie-ism
Hand them a Knoppix CD and a book on Python.
Or let them get python for Windows, if you must.
There is a neat game that uses java to make robots. Starting very simple, as you learn to program you make more powerful robots to compete against others.
IBM Robocode Home
Covered on slashdot here:
Robocode Rumble: Tips From the Champs
And here:
Learning Java Through Violence
Wax on, wax off baby!
After all , that was a simple yet powerful language for children losely based on LISP.
15 years ago it was all the rage , now it seems to have disappeared off the map. ANyone know why?
My son has taught himself to program, with only a little guidance from me for learning how to analyze and break a problem into parts, by writing his own text adventure games using a programming language called Inform . This has worked very well - it allows him to express his creativity in the development of a scenario that requires following explicit rules to succeed, and to develop his programming skills in learning to express an algorithm that follows those rules he's created. The Inform community tends to freely share the text adventures they've written - you know a developing programmer is motivated when he spends time pouring over someone else's not-always-well documented source code.
By the time linux is commonly found on little coders computers, Gambas should be a nice solution as a visual, free basic.
Struggling to find a day everyone can make? WhenShallWe.com
I remember first learning how to program with BASIC on a commodore 64. Back then, it seems that the environment one was presented with (may it be Apple II, commodore 64/128, amiga, etc) was more conducive to kids learning how to code simple things on their own. You got frustrated with the limited immediate options and began to make things on your own. Nowadays, most kids first start using some shiny colorful OS (think winxp) and when bored can simply start surfing the web for stuff to do. Makes kids much less likely to seek out a rendition of Basic and code away.
Although it's not a programming language, I've found that most of the kids getting into programming these days started by making web pages in HTML. As they wanted to do more on the web, they opened up to scripting languages, like JavaScript, VBScript, ASP, PHP, etc. That eventually led them to CGI scripting or writing Java Applets and it has progressed from there.
Most hardcore types probably cringe at the thought, but web development is really the catalyst into getting many kids interested in programming.
All the people that I know that got started with programming on their own did so with QBasic, which came on windows 95 (the new operating system when I was 12). They couldn't get enough of their computer, and searched through it until they found the QBasic IDE and accompanying sample game programs.
;) If an educational version of VB had been on my first computer, I never would have gotten off of it.
The benefit of this sort of "buried" programming treasure is that the kids interested in their computer will always find it, and really feel like they discovered something great - I know I did. It doesn't even require a tutorial, just some sample games, maybe.. but for sure, all of those true-born geeks will get hooked and start learning as much as they can (I know I did).
The motivation for the OS packagers? What better way to get people hooked on your system than to give them their first bit of cocaine?
Eventually, the same thing that has happened, largely, to HTML will happen to all other programming languages--which is to say that eventually all code will be machine written. We are rapdily reaching, and many of us would agree, I'm sure, that we have long since passed, the point where teams of human coders are efficient enough to maintain the vast expanses of code that comprise most modern applications and operating systems.
Young students today should not be studying programming--they should be studying Human-Computer Interface Design and other related subjects. Programming should come later, once the student has figured out *what* to program.
As easy to learn, but not that strong on the "bad habbits forming" part is Visual Basic. It follows a completely different programming model to "normal" newbie languages but it is much more "goal-oriented" than most beginner languages. It is also easier to produce impressive results with it, and, frankly, the VB (and Visual Studio) IDE is as good as they get.
Mother is the best bet and don't let Satan draw you too fast.
At age nine is started messing around with QBASIC. Windows 3.1 had just come out and wasn't yet ubiquitous. I became quite proficient with BASIC, eventually, but by the time I had, the GUI extravaganza had begun. I was downloading and playing games for which I hadn't the slightest clue how a programmer might begin to implement such things. At some point, faced with the prospect of not being able to accomplish anything 'useful' with QBASIC, I stopped programming altogether.
I'm twenty one now and the itch to get back in to programming has been bugging me quite a bit. Now that I'm using Linux for pretty much everything -- and because Linux encourages tinkering -- I've found that scripting (Perl, Python, Ruby) languages (not THAT unlike BASIC) are the perfect place to start to refamiliarize myself with data structures and general programming concepts. The clentcher is of course that the CLI is once again useful and the programs I write can actually do something.
Namely, I've found Ruby to a great place to get started since I'm just beginning. Because Ruby is completely object orriented, it hasn't required a whole lot of reforming of the way I think about data -- everything is either a noun or a verb; an object or method. Just like the real world. After just two weeks of studying the freely available Ruby books online, I've been able to begin accomplishing basic system administration tasks. My passion for manipulating logic system is returning and I have some great ideas about what I can accomplish with it.
Sure, some day I'll probably have to pick up Java or (shudder) C++, but for now, scripting languages are the perfect entry method.
The people saying "just use Linux/FreeBSD/OtherOSS" are missing the point..
The problem isn't that Windows doesn't come with a programming language, but that there is no "learning system" in place..
I grew up in the 80's, and I learned to program first with my Vic-20, then with the C64..
I learned by typing in programs found in Compute! magazine and Compute!'s Gazette..
Such an environment simply doesn't exist today - even with Linux or FreeBSD (or how about Java if you don't want to learn a new OS?) the internet makes it harder to get into.. Instead of spending time typing the code in, you just download it.. sure, you can read it if you want, but reading about something is not the same as doing it - you don't get the same experience out of it.
Physically, programming is typing stuff, but with the internet, there's no incentive to actually do it - and like most other animals, people are (by nature) lazy.. so even if they have the drive to learn, they might not have the drive to actually do the work.
I tried using Robocode to teach my nephew how to code, but it's just not the same thing - he wanted to learn to program (still does, actually) but he gave up after just playing with it for awhile.. typing into a computer to get it to do something was just too foreign to him.
When he turned 13, I gave him an old 486, a manual on BASIC, and told him how to find it on the windows directory. Didn't do anything else other than type up a few lines of simple code. Natural curiosity took over. Soon he was writing complicated and lengthy RPGs, similar to what came out in the '80s. Next summer I gave him an old C++ book some visual basic stuff, and some disks. The next summer Java. And now he is going to be applying to a college that offers computer science in the fall. He codes in his sleep now. Oh, this summer's project is to take some boxes, some Linux disks, and make a web server, firewall, and Linux server.
My thought is that if the kid has the normal curiosity then just give them the tools and they will figure it out. There are plenty of old books and software available on Ebay and used book stores.
From what I have seen of it. i would suggest teaching them ruby. It seems to be a decent language, and has lots of built in types. They used to advertise it as bringing the fun back into programming.
At the next eco-hypocrisy-meeting, count the private jets used to get to the meeting. Should be interesting to see that
Curl provides access to a rich 2/3-D graphics engine, excellent "interactivity" with HTML and multimedia support is built-in. It can be as OO as you want. It had the potential to be a great "first" language for coders.
Unfortunately the company (curl.com) is doing an extremely poor job marketing it and is lumbering it with a hideous licencing model.
It'll be dead within a year or two...
since there was little budget for big iron we did lots with Linux (web pages, mail server, ftp server, dhcp, even a commercial student database called Schoolmaster) and the Library teacher told me about a young kid (then in the 7th grade) whose family couldn't get him a computer of his own. I took a 486/120 and installed Linux with no gui on it and we allowed kids to check it out like a library book. I included just the basics to get on... how to login, how to use Lynx, where to find more information, the "man" pages, etc.
As far as I know this 7th grader was the only student who checked out the box. I got a few questions relayed to me by the library teacher and answered them. I lost track of him until my son told me that he turned up at a County Fair at the "internet cafe" my son was running and he was heavily into Llinux!
Last month my contact at the school district told me that the kid, now a junior in HS, is planning a senior project: a Beowolf cluster! He is now trying to round up a few dozen machines to use in his cluster.
This is a small school system in a farming community and turns out only one really good natural engineer/computer scientist every 4 or 5 years but I like to think that my idea of creating a "library book" computer using Linux helped turn out this one.
No one ever had to evacuate a city because the solar panels broke!
Set up a stripped down Knoppix distro that writes Windoze files (like the full one does) and has a plethora of languages from which to choose. Set it up so it deals only with its own directory and keeps kids mostly away from the Windoze files for their own protection. If they figure out how to get out of the padded room they will probably be capable of not hurting anything.
....
It would appeal to kids because
1. It's not your father's OS (Oldsmobile)
2. It's passed around freely among the "geeks to be"
3. Programs could be passed around since they would run on anybody's machine with the Knoppix CD
4. Cliques would develop because they would know something others don't.
I think it would be a wonderful idea. Even though he is using the common PC, the kid has his own environment with his own tools and complete power!!!!!! It could be a big boost to the development of real programmers.
Game Maker URL: http://www.cs.uu.nl/people/markov/gmaker/
I think we ought to harness those resources. We ought to use them to teach children those languages that are immensely powerful yet, judged by our standards, too inefficient to be practical. In particular, I'm referring to functional programming languages like Scheme and Haskell.
Now, hear me out.
Why functional programming languages? Because they lend themselves to extremely powerful, mathematical ways of thinking about and solving problems. Learning these ways of thinking when young will benefit our children for the rest of their lives. For example, take a look at the The TeachScheme! Project. I wish something like that was available when I was in High School.
Let us not teach our children the technologies of today but of tomorrow. More and more, I am convinced that functional programming, once considered too computationally inefficient for industry work, will be tomorrow's dominant programming paradigm. No other way of programming so readily lends itself to the formalism that is necessary to manage the ever-increasing complexity of modern software projects.
So, let us give our children the tools they will need to solve the problems of their day. Teach them functional programming.
Easy, automatic testing for Perl.
The point of the article is to hilight programming languages and environments that are approachable for kids and can teach some basic logic and simple programming.
VB would be good for this except for the required overhead (Visual Studio).
VBScript or PHP scripts fit the bill nicely.
Expecting a 10 year-old to pick up C++ and start working on the next Doom is ridicuous. Kids want something that is simple, easy to understand, and allows them to create fun applications. They don't want to get mired in the arcitecture and process and years of time neccessary to write a modern commerical application.
Unfortunatly it's not very useful to download that on Win2k/XP, as most of the applications in there just spit out "Incorrect DOS Version" and quit. Apparently most of the applications are not NTFS aware.
I read the internet for the articles.
I've never heard about any standard Windows scripting *language,* but there is a standard Windows scripting system, called the Windows Scripting Host, WSH. It's not quite as nice the the Open Scripting Archetecture in Mac OS, but it isn't horrible.
WSH, like the OSA, is neat in that you can plug-in a number of different languages into it. In some ways, sort of a proto-.NET, as you can share functions between languages. That is, if I write up a function in Perl, I can share it throug the WSH to JScript, VBScript, or any other WSH language. Or vice-versa. PerlScript- the bridge between perl and the WSH- comes with the ActivePerl distro for Windows.
WSH is a neat toy, and I've used it for some automation on my work windows machine. But having done a lot of AppleScripting on my own and work Macs, I can say that WSH isn't as useful- most apps have no idea was WSH, and the apps which do support it, don't support the wealth of actions like Mac OS's OSA does. Mind you, AppleScript is just one language in the Mac OS OSA, and it happens to be the default one. However, you can get language extensions to script apps- just like you would in AppleScript- for Perl, JavaScript, Ruby and Tcl and more. (that was just off the top of my head)
Nobody is programming Doom III in anything except C, assembly, and maybe some C++. Does that make every other language irrelevant and worthless? No! I personally couldn't give a flying fuck about Doom III, and thankfully, never have to use C++. I must work on phantom appliacations! OOOOH SPOOKY!
I can't say I enjoy VB or use it anymore, but even being a staunch Smalltalk programmer, will not hesitate to use RealBasic (with which I can support Mac OS 9, X, and Windows) for an application for which it makes sense. There are a lot of applications out there which are written in VB, a lot more than you seem to think. Not just for very small, internal apps. Heck, a fair amount of people write a bunch of their code in C++, COMize it, then use it all from VB.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
Ideally I'd like to see Microsoft provide a really stripped-down of Visual Basic free with the OS. And it should be installed by default, and placed prominently on the Start Menu.
:P
This would provide something simple for kids (or newbies of all ages) to start playing around with. I think this would increase the number of kids getting into coding overall... which would help Microsoft as kids would be learning Windows programming early, and with more kids overall discovering coding you'd have more total kids "graduating" to more advanced stuff like real programming languages and alternative OS's like Linux, etc.
It would be a win/win situation for the advancement of programming, IMHO. Perhaps not a win for ME, though, as I'll have more kids competing for my coding job in the future. That problem is tough enough already.
OtakuBooty.com: Smart, funny, sexy nerds.
Or, Quake-C from back in the day.
:)
I remember hearing from a friend of mine a long time ago that Quake II uses "some modified form of Quake-C for scripting", so I thought I'd check it out. Turns out that it was just C++
God save our Queen, and Heaven bless The Maple Leaf Forever!
Anyhow, back to the present...
Some kid found my 3D asteriods game on the internet and asked me if I could teach him how to program. Note that he lives in another state, and I've never met him in person.
He was 12 at the time and struck me as being bright. I had him download the free Java stuff from Sun and we developed a video game applet together. We discussed what kind of game to make, how it would work, and the logic behind it. We decided on a simple game and then added features as we went along, rather than trying to implement his initial vision all at once. This let him see that progress was being made.
We didn't get into any OO stuff. In fact the structure of the game is more similar to C than to traditional Java code, but it was stuff he could understand. He wrote some of it and modified much of what I wrote.
You can check out the result here
Here is what I learned from the project:
Lasers Controlled Games!
Its interesting to hear people say that its somehow a loss because others can't experience things the way they did. First, computers are much cheaper today, and even with the addition of a set of development tools (which are lightyears ahead of what we had in the 80's), than what computers cost in the 80's. Of course, possibilities today are much greater, allowing for vast freedom in experimenting with programming. I can still write a simple address book application, but I can also build in p2p networking capabilities, for example. The possibilities have increased exponentially, while the complexity has not neccessarily increased.
Anyhow, it is no great loss that some kids won't be able to dabble in writing BASIC programs. The world trend is moving programming into a commodity class, just like the other trade skills, such as machining, welding, etc, which lessens the tangible value of the skill. This doesn't mean that knowing how to program isn't useful, but as is the case with other skilled labor, programming as a career is turning into a similar animal. It is heading to be seen as more of a trade job instead of a professional job, where career potential is limited.
While I was in University we would play with the Lego Mindstorms kits while we weren't coding our projects. The most amazing thing in my opinion about Mindstorms was their programming IDE. It was completely object oriented.. all of the code looked like lego! IMO a great concept for teaching the ideas of IF/Else, while loops, and basic programming logic.
In fact I would say that even downloading Tcl/Tk or Perl could be overengineering the solution.
The truth is that the Perl environment for Windows is not always intuitive and can occasionally prompt windows errors which are relatively easily understood by someone with a lot of computing experience but can be intimidating to a fledgling coder.
What people have overlooked is that windows does come with a built in interpreter for at least one widely used language: Internet Explorer knows all about Java.
The best part is that the Web is an environment most twelve year old kids are already quite familiar with. You can teach them basic HTML (if they haven't picked it up already) and then get them started on using Javascript. Javascript on a web page has the same sort of instant gratification that I remember from making the screen on my vic20 flash red and proclaim that I was cooler than my sister. Once they are comfortable with Javascript you can move them on to writing full-feldged Java applets (of course all of this coding can be done in notepad (or your favorite syntax-highlighting text editor)). In this way they will learn about object oriented programming. If the kid gets a good handle on writing Java applets and is still interested, they are probabl ready to move onto real programming: teach them C, or whatever else strikes your fancy. Maybe even give them a Linux box.
It's a simple way to learn programming on a modern windows box without having to install any developers kits or worry about system calls etc., and it all works in an environment (the Web) with which kids are already familiar and interested in.
lysergically yours
When I started, it was with the Sinclair ZX-81 I had as a Christmas present.
Today, I don't think it's necessarily the lack of built-in languages (as others have pointed out - most OSes come with a language of some sort) but a lack of where-to-get-started.
The great thing about the ZX-81 is that it came with a manual. Not like a PC manual of today which tells you how to plug in the keyboard and monitor (the ZX-81 manual had this) - the ZX-81 manual also had instructions on programming things - from the basics of programming onwards. It taught you what variables were, what loops were, what if statements did. You got a starting point with the computer as soon as you unpacked it and plugged it in for the first time.
The BBC Microcomputer was the best - it had a built in 6502 assembler. (I also learned Z80 for the Spectrum I had after the ZX-81). Knowing asm made it a lot easier to learn C, especially pointers (which I've noticed time and time again newbies always struggle with).
Oolite: Elite-like game. For Mac, Linux and Windows
What can be done to improve the situation?
There is a big glut of programmers right now, and more and more programming jobs are probably going overseas.
So, why should it be improved? I suggest your kids learn marketing, not programming. Marketing is hard to export because it requires personal contact and knowledge of local culture. The world is different now.
Perhaps you think of it as educational despite future career plans. That is understandable. In that case don't worry about the practicality of the language. Perhaps the Logo language? It provides nice graphical feedback.
Table-ized A.I.
It seems that there are two big hurdles that the little coders face these days and it seems that not having a freely available language isn't one of them. There are lots of free quality programming languages complete with extensive tutorials, such as Python (as pointed out by many)or the lesser known but very capable Squeak.
The first hurdle is the education systems vocation focused âoecomputer literacyâ. In the 80's schools really did focus on programming now its focused on learning to use stuff like office programs provided by Microsoft. This trains the student to be a âoeuserâ (as in drug user) rather than master of the computer.
The second hurdle which is hinted at but really spelled out in the article is the operating system and all the other computer components that because of their complexity must be treated as black boxes. Even in the most enlightened Linux using school it is very difficult for the little coders to actually have their programs interact with the hardware directly. While having an operating system is a good thing generally-- it does get in the way when one wants to understand computers at all the levels. Without interacting directly with hardware, students aren't going to have the perspective that brings.
Schools should look beyond programming on desktop computers and use simper devices like Lego Mindstorms or parallax basic stamps which for me solves âoethe Little Coder's Predicamentâ
When I was in high school, I had an Aniga 2000, and was into demo programming. I had to learn the hard way using assembly, and it took me an eternity until I had the first moving pixels on my screen, but in the end it was worth it. Using assemly tought me to be patient and also to be persistent. I think it also weeds out the people who are not really interested in learning hot to program. I had however, a lot of friends who helped me in the learning process, which was essantial in achieveing anything using assembly.
WHen I moved to the Mac, I used Think Pascal for a while.
- Command line (if you like)
- Free
- Many Free IDE (i.e. Eclipse)
- Available for Windows, Linux, Mac, Mainframe
- Class files can be sent to friends without a recomple
- Applications AND Applets
- Tons of free learning stuff like Thinking in Java
- No demented DLL hell and install issues that will f_ck up Dad's computer
- Many specialized area of interest (i.e. Multimedia, 2/3d Graphics, Networking, Voice, Games, Web, etc.)
As an added bonus, budding young kids of descruction can battle with Robocode or Race using CodeRally CodeRallyMy first programs were written on a machine (I forget what it was called) that had something like a 5 x 9 (or so) led display and the keyboard had only hex symbols on it. I was pretty young but I figured it out. The point is, back then after you got bored running the half dozen or so programs that came with the machine your only option was to program it yourself. Same for Sinclair-1000, TI/994A, Vic-20, and whatever else.
Later on it wasn't like I was pulling free compilers out of thin air for my Amiga. I actually had to do a little searching around on the BBS's for that on my own. But by that point I was already interested in programming.
The thing is, computers (Windows) aren't designed for hobbiests anymore. Most people just want to plug it in and surf the net, play a game, type a document. Its become simplified, more like a TV. Most people dont buy a computer because they want to code. Windows is intetionally designed to require little thought, for good reason. It sells to the masses. It can do hundreds of things without the user ever having to type a single line of code. Most kids aren't going to find any reason to expose themselves to coding when everythings already done for them. And thats too bad.
POV-Ray is a free raytracer for making computer-generated images. You can build up 3D scenes using the Scene Description Language (SDL), rather than a modeller; and after a little practice, you naturally move toward writing algorithms to generate more complex images, etc. It comes with lots of sample code, a good help file, and could be used as a way to learn programming. The nice thing about it is that the language itself is simple to use, and making pretty pictures is a good incentive to keep practicing and learning more.
You can do pretty nice things with the SDL. The help files explain how to write a raytracer within POV-Ray. You can also read and write text files, etc.
Hm...following your logic...then you've read aloud the Doom binary in Japanese before? I doubt it. However, to his credit, you could describe Doom (however excruciating) in boolean logic, and of course logic is a means of solving problems.
--- What
I tried this once. I wanted to show my 11 year old son how to code in Java. So I tried to show him how to write a simple program to solve a homework problem - solving a simple equation.
The first step was to read two decimal numbers from the console. When I got lost among the various stream classes, I gave up. I could figure this out, but how would I explain it to an 11 year old? And not bore him to death?
...richie - It is a good day to code.
Kids want to make cool stuff. In 1984 I could write a stupid script to scroll my name on the screen using TI BASIC. I could also write a neat graphical maze game with speach synthesis using the same tool. With Windows Scripting Host and JavaScript (etc), I can write stupid stuff, but not cool stuff. Anyway, how many people here know how to fire up WSH and go? I don't think that's even in the manual.
At least with DOS 2.11, the manual said I could run "BASICA" and, by the way, try out these few lines of code.
I had classes in the 4th and 6th grades with C64 LOGO and Atari Basic. It was neat back then. In 2003, neat is 3D graphics and surround sound. Are you going to get a kid hooked on programming with a few batch files? I don't think so.
The old TI rags used to publish code listings for games like "Dogfight" and "Conquest of Camelot." They were in BASIC and you had to type them in from the magazine and save them onto an audio cassette. I spent hours as an 8-year-old typing in lines of code that I didn't understand. It was cool to see what would happen when you typed "RUN" though.
In the 80s, programming was one of the things that you bought your computer for, other than games. So if a computer didn't have a tool to program it with, it was either junk or a game console. Not everybody had a computer back then, but those who did kinda liked it.
Now that there's money in computers as a commodity, it's another story. People still buy computers for games, but not for programming. Besides, if you program, you might become competition, and that's not good, especially if you give your code away for free. That and the increasing complexity of computers and operating systems make languages diverse and specialized.
So instead of computers that say, "hey, see what you can do with me," we have computers that say, "hey, you can run Word and Half Life and surf the Net if you have a license." And we're moving closer to "you can't run anything else, even if you have a license to run it, unless it's one of ours." Pretty soon (if Microsoft has its way), instead of only needing a license to run a program, you'll need a licence to make one too.
Anyway, back to the point. If a kid thinks computers are neat, he'll need a system that still lets him try the neat stuff. That is no longer Microsoft unless you've got the cash for VB, which is now an "add on." Can you get VB without buying the whole Dev Studio? I doubt it.
Today's equivalent to my old TI are the Linuxes, BSDs and other "Open Source" platforms that still actively encourage tinkering and learning.
Is Linux programming too hard for an 8-year-old to figure out? I guess it depends on where you start. At least you don't have to buy the extras.
I'm afraid the really cool stuff has been the domain of the big guys for at least ten years now, though. Sorry kids. Well, a few kids might be interested enough to figure it out.
Nobody's stopping us from making a Linux distro geared towards 8-year-old programmers. If we had a language that made it easy to do some neat sound and graphics, it'd be like the old days.
When I was young, about in 3rd grade, I ran across my first book on computer programing in the school library... naturally it was a neat little colorfully illustrated book on the BASIC programming language. Unfortunately my family didn't have a computer at home at the time, but there isn't much syntax to the language anyway, and I ate the book up like candy. I actually sat down and wrote out all sorts of programs on our word-processor (fancy typewriters that used to be big but died out as computer prices came down) which I could never run.
Oh how I longed only to try my programs for real! But none of my friends who HAD computers knew anything about where to go in the system to look for a place that would accept input in BASIC. They probably had GWBASIC on there somewhere, but they certainly didn't know it. I actually remember the first time I got to run a program... it was in a toy store that was selling one of those "Kid's computer" type toys and it was on display. It said it could be programmed, so I went up and typed:
PRINT "What's your name?"
INPUT $NAME
PRINT "Hello, "; $NAME; "!"
I can't begin to express how pleased I was to see "Hello, Shon!" appear on the screen just as I expected it to.
We finally got our first personal computer in 1994, but it wasn't for a long time that I realized that, buried deep in a directory, was a program called QBASIC, which I eventually had quite a run with.
This brings me to the question: As I've seen new computers ship over the years without even QBASIC on them, I feel bad for all those kids who'd like to try to program, but don't know how. Sure we have the internet now, but downloading something like GCC is probably a bit much to ask for a 3rd grader who's never used anything but Windows. I really think that Microsoft should create a Windows GUI version of QBASIC and include it in the start menu just to encourage kids to play around with it. Barring that, OS's like MacOS and Linux that include C/C++ compilers win lots of points in my book. One other thing that I think that has especially helped get kids interested in programming is making Web pages... they see a cool thing on some other page and they wanna learn how to do it. Java's pretty complex for most kids, but there's a huge incentive in that it takes relatively little effort to do something that will really impress your friends, while it can seem like languages like C/C++ let you do nothing but output text.
So yes, I think that all OS's should include some sort of compiler with a GUI as a basic part of the operating system. If a basic paint program and writing program are worth including, then a basic compiler is definitely worth including as well. Lots of kids are interested in programming a computer at some level, but have no idea where to start.
Err, that link should be to here. Sorry!
I learned networking instead of programming.
When I first became interested in computers, we already had Windows 95, a system that didn't lend itself well to absolute beginning programmers that were 10 years old. I did want to learn to program, as learning to network is decidedly more expensive. I started with Qbasic. It comes on the 95 install disk, if I recall correctly.
I was able to do the rather trivial things in "Qbasic for Dummies". The problem was, I knew they were trivial. And when I showed a program I had written to someone, they weren't all that impressed with a little blip moving around the screen becuase they regularly used apps like Office and played 3D games. I wanted to write things like Office. So I pretty much gave up becuase I didn't really enjoy creating those insignificant programs.
Fast forward to now, and I can easily amaze Joe User with my networking skills, becuase the things the network does isn't what they typically see while using a computer. Nor are they what I had typically seen. Networking allowed me to do things that I hadn't seen with my own eyes a million times before.
I have learned some programming skills, mainly scripting (shell scripts, PHP, and a small amount of Perl). I learned to write small scripts primarily to enhance the network or for web development. But put me in front of some C or Java, and I'll look at it and kinda understand what's going on, but not to a point where I could do anything usefull.
My main problem was my own motivation. I didn't see the end results as being interesting, so never bothered to learn to a degree of usefulness.
Had I began programming on an Apple II, where I could make graphics similar to what mainstream games looked like, or write an actual useful program, I could have imagined myself being a much better coder.
-phish
Being a Father of now an 18 year old that has been playing with computer since he was 10 or so and can say he has found his own path to learning code. Like all kids cool sites and programs are spread by word of mouth and email. Gaming what else hold a young mind! There are a lot of free game writing program out there and have been out there. He wrote his first games around 13 using a free Windows based program writng DOS games in basic. At 15 he got together with 4 of his freinds built their own development team. Built a little DOS based role playing game and even sold it. Imagine letting my 12 year old inside my computer? Personally what I have seen I would rather have a 12 year old inside of there more than someone my age (49 jesus you're an old fart!) Kids these days grow up with it they teach it in the schools, and the kids have a need to figure out what makes it work (ust like the rest of us geeks) I agree that html is a good starting point. I mean what do you need but Notepad and a book of code and the passion to learn. Its a easy (see what I did!) and pretty simple language to learn. Kids understand the pratical application of the language and can see the results quickly through a web browser. After learning html XML is fairly easy and this looks like this is where the world is headed. Notepad is better I think to learn the basics of coding anyway, AND no need for high dollar development software. There is also a plus to this track of learning. High dollar development software does make the job faster and easier (yes I use it yes I do this for a living and time is money) but starting out with it you don't learn what make it work you just "see" it in the WYSIWYG. They also learn to get by and make what they have work. I guess the moral of my dribble is I think will have plenty of good programmers in the future.
Squeak smalltalk is a briliant language for smalls. Runs on all small computers under your o/s of choice. Your work will be completely shareable because the Virtual Machine is identical on all hardware platforms. It leads on to the the most productive language ever created.
Squeak smalltalk for kids
Squeak smalltalk for grownups
Smalltalk for business
Smalltalk for engineers - Very fast.
There are many others, have a look through The Smalltalk Portal.
Just remember that with 30 years of developemnt it just works!