Slashdot Mirror


Do Kids Still Program?

From his journal, hogghogg asks: "I keep finding myself in conversations with tertiary educators in the hard sciences (Physics, Astronomy, Chemistry, etc.) who note that even the geeks—those who voluntarily choose to major in hard sciences—enter university never having programmed a computer. When I was in grade six, the Commodore PET came out, and I jumped at the opportunity to learn how to program it. Now, evidently, most high school computer classes are about Word (tm) and Excel (tm). Is this a bad thing? Should we care?" Do you think the desire to program computers has declined in the younger generations? If so, what reasons might you cite as the cause?

127 of 1,104 comments (clear)

  1. No there's MySpace by Anonymous Coward · · Score: 5, Funny

    Kids are too busy taking pornographic pictures of themselves and having sex with teachers.

    1. Re:No there's MySpace by BorgHunter · · Score: 2, Funny

      Kids are too busy taking pornographic pictures of themselves and having sex with teachers.

      Only the lucky ones.

      --
      "Excuse me, did you say 'Trekker'? The word is 'Trekkie.' I should know; I created them." -- Gene Roddenberry
    2. Re:No there's MySpace by richdun · · Score: 3, Funny

      Only the lucky ones.

      The rest get too excited about majoring in some science or engineering in college and end up at schools without females, let alone sex ;)

    3. Re:No there's MySpace by maxdamage · · Score: 4, Funny

      When the WoW goes down you hear a moan shoot through the whole campus.

    4. Re:No there's MySpace by nevernamed · · Score: 5, Insightful

      Yes I agree. I am a High School Honors Student and I have seen all this first hand. I know that all computer classes are about using word. It's obscene. I think that I was lucky to find programming 1. All people know how to do is sign on to instant messenger and post things on myspace. That's about it. Most of them don't even have coherent writing skills. The education system in our country is crumbling, and it's all happened recently. No child left behind = everyone learns with the idiots.

    5. Re:No there's MySpace by Cmdr-Absurd · · Score: 2, Funny
      Are you telling all the girls who do science or engineering have sex changes and become boys before going to college?
      Nope. Last year, neither of the girls who went into engineering had sex changes.
    6. Re:No there's MySpace by walt-sjc · · Score: 2, Interesting

      Heh!

      Yeah, it seems as most kids involved in computers are gamers or myspace addicts. Then there are the "script kiddie" wannabe criminal hackers.

      It does remind me back in the day of the Amiga (late 80's,) a friend of mine and I had a dispute about C versus Basic, so we decided to have a programming contest on who could write a clone of Pong the fastest. Well, to make a long story short, my Basic friend won by about 15 minutes on something that worked, (I think it took us a little over an hour) but I still maintain that my version more closely matched the behavior and playability of the original :-)

      I think there are still a lot of kids out there that are truely interested in programming and other deeper understanding. It's just not a huge percentage (and never was.) I think computers are also a lot more complex and less "hackable" today. The Apple ][ was fun because you could go in and really tweak things (peek and poke the hardware) at a very low level. People really had to learn a LOT about how things worked in assembly language - you KNEW binary / hex / decimal / ascii conversions intimately. Anyone remember the Merlin assembler and Sourcerer disassembler? :-)

    7. Re:No there's MySpace by scribblej · · Score: 3, Interesting

      It didn't start recently, that's the shame.

      I haven't been in school in a decade, so I don't know how much worse it may have gotten, but things have been on the way downhill since before I was in school myself.

      I've recently become a fan of Richard Feynman, and he has some scathing things to say about the teaching of Algebra when *he* went to school. I'll relate one of his stories as best I can from memory, but I do highly recommend reading his "memoirs" such as "Surely You're Joking, Mr. Feynman" even if the lectures he gave on physics do not interest you.

      He talk about when he was learning mathematics himself, as a kid -- I believe he was about 10-12 and he'd taught himself algebra from a book called "Algebra for the Practical Man" or some such -- at any rate, his cousin (I think) was learning Algebra in school at the same time. And he told Richard he was having a hard time with some problem, say 2x + 4 = 8, solve for x and Richard said, "Oh, you mean '2'?" and his cousin said, "Yes, but you did it by arithmetic; we have to do it by Algebra."

      Feynman then makes the claim that this is evidence of how the school system is in decline; he knows the important thing isn't how you get the answer, it's understanding how these things relate and (he explains all this much better than I do) that schools had invented this "process" called "Algebra" where you could follow some rote steps and arrive at the right answer with no understanding whatsoever of what you were doing.

      Tell me if that last part doesn't ring true for the education YOU received in Algebra. It certainly does for me.

      -Chris

  2. yes, they do! by yup2000 · · Score: 5, Interesting

    But they're not programming computers...

    they're programming calculators like the TI-83 Plus and TI-89 ... just look at sites like www.ticalc.org

    not only that, but they're learning C, ASM, and BASIC... wow!

    1. Re:yes, they do! by Doppler00 · · Score: 5, Interesting

      I doubt it. 99% of the kids with those calculators only care about how to get "games" to run on them. Maybe the 1% already know how to program on computers anyway. And you're almost guaranteed that the teacher won't be giving a lesson on even how to make basic functions to save time in calculations.

      And it's a shame because pretty much any science degree you are going to be doing some programming for data analysis (MATLAB, python, etc....).

      Thinking back I remember programming the Apple II's in our computer lab during lunch in 6th grade instead of playing outside. The neat thing about those computers is you had a very simple easy to use programming environment built into the computer. I'm not sure what computers are like now in schools, but my guess is they are heavily locked down and only include office applications and a web browser. That's just too bad.

    2. Re:yes, they do! by WinterSolstice · · Score: 4, Insightful

      Depends on the school - my kids went to one like that, but I pulled them out. The district mandated this miserable hell of a computer that never even worked. The IT was the worst ever - teachers couldn't even unlock students, 1st graders had to remember these crazy user IDs (like U238A_BBA76 - something to do with class number and student ID)

      The school they are in now is much different. It's a mix of Macs, Windows, and Linux with no lockdown at all. No real net connection, but the research machines in the library have them. Ironically, even though the Windows machines are fully loaded with MS Software and games all the kids are clamoring to use the aging Mac G3s and the one old G4. I find it amusing, my self.

      -WS

      --
      An operating system should be like a light switch... simple, effective, easy to use, and designed for everyone.
    3. Re:yes, they do! by Nyall · · Score: 5, Insightful

      Well 0% of the people with playstations know how to program them. 1% may not seem like a lot, (and its a high estimate) but 1% of millions of calculators is still a lot of programmers. I doubt that they know how to program on the PCs. Computers no longer ship with an easy to use basic that gives instant results.

      Yes there won't be any formal instruction. Is that a problem? Would any self respecting slashdotter posting at midnight on a friday admit that they needed to be taught programming by a teacher? How much formal teaching did you need to learn the Apple II's built in language?

      --
      http://en.wikipedia.org/wiki/Jury_nullification
    4. Re:yes, they do! by colman77 · · Score: 2, Insightful

      Yes indeed. The TI-83 is simply awesome for novice programmers; it's easy, very simple, but still exposes you to the basics such as variables, if's, loops, even functions.
      Computer classes in high school are a joke. My school FORCED me take comp lit, which was totally ridiculous. I learned to type (again), even though I have been typing 70wpm since 5th grade. I learned to use Word, even though I'd been using it since like 3rd grade. I learned to use Microsoft Access... because I'm really going to use that ever again (seriously, wtf? why not Powerpoint at least?). I learned how to open IE and browse the web. Stupid school can't even use Firefox.
      We have "CS" classes, even a class called "Oracle Academy," but I still know more about programming than the people who have taken all of those... and I don't know all that much.
      I tried to learn BASIC my freshman year and failed horribly, despite having mentorship from some seriosuly fabulous programmers. At that point, I hadn't yet learned about functions in math, and variables only existed in equations like 2x + 5 = 9.
      2 years later, though, I managed to learn rudimentary C with a fair amount of ease. I'm not sure whether it was the TI-83 (very possible) that made the difference or the other classes I took during those two years: Algebra 2, precalc (trig and functions), chemistry, biology, and physics. The concepts taught in these classes-- catalysts, positive/negative body feedback loops, functions (obviously), electricity-- if you understand these, it certainly makes learning how to program easier.

    5. Re:yes, they do! by Doppler00 · · Score: 5, Insightful

      Would any self respecting slashdotter posting at midnight on a friday admit that they needed to be taught programming by a teacher? How much formal teaching did you need to learn the Apple II's built in language?

      Well it's not so much that gifted kids need a teacher to tell them how to program. They need a teacher to encourage them, and that is what's missing. When I was in school teachers didn't mind me spending my time in the computer lab during lunch. And they thought it was really neat what I was doing. Now days I think they just care to put all the kids in a neat rows of seats and bore them to death with lectures.

    6. Re:yes, they do! by Anonymous Coward · · Score: 3, Funny
      1. you have a girlfriend
      2. she manually edits her podcast xml file
      I don't believe that.
    7. Re:yes, they do! by TheCarp · · Score: 2, Interesting

      ya know... perl is a perfectly acceptable language.

      Honestly, I doubt it matters much, most all programming languages differ mostly in syntax. I mean sure, theres some real differences, but nothing that you need to care about.

      Shit I started with applesoft basic, talk about a good way to pick up bad habbits. However, aside from lisp, I think it was the most unique language that I played with.

      Perl just uses a rather extended and idiosyncratic C syntax. no seprate compilations, makes it nice to learn with, and quick to get into.

      I mean yah, C and lisp will be helpful to do something in at some point. Maybe read someone elses code and change it, that way you get an eye for differing styles, and what really boils your blood that other programmers do. :)

      Though, it takes years to learn to right good code, in any language, and I have found that perl has been more than adequet for about 80% of the code that I have ever written... then maybe 18% bourne shell.

      Thats my $0.02.... but I wouldn't worry about first languages, pick up two and then you can just sit down and start learning most anything else... though, I never did get the hang of lisp....

      -Steve

      --
      "I opened my eyes, and everything went dark again"
    8. Re:yes, they do! by Usquebaugh · · Score: 5, Insightful

      I wish somebody had shown me Lisp when I was 14. All I got was Pascal and 6502.

      There is a certain rightness about Lisp same as with *nix. No other language I'm aware of even comes close in the ability to expand programmers minds. It's like comparing budwieser to scotch or absynthe.

      Smalltalk is another 'right' language. Pick up the original manuals for Smalltalk/80 and the sense of rigour and completeness is abundant, no silly syntax add ons.

      Likewise C. I defy any programmer to pick up Kernighan & Ritchie and not be impressed by the sheer brevity of the language.

      Now pickup Stroustrup, or a Java book or Perl or Python. What hits you is the cacaphony of discord, the single pure note lost amongst the poor orchestration.

      When C++/Java/Perl/Python have long since been consigned to the garbage colletor in the sky Lisp/Smalltalk/C will still be used to solve problems. I rather think the current period of programming will be seen as the dark ages before the re-birth.

    9. Re:yes, they do! by Tatsh · · Score: 5, Interesting

      Completely true. One lab does teach HTML but they also use FrontPage to help (can't say I didn't myself when I started learning at like age 11 (what age are you in 4th grade?)). If I were going to teach someone nowadays, I would teach them straight through without any help from software other than the browser (and I would recommend Firefox for testing) and something like Notepad (Textpad, Notepad++, etc). I'd recommend Notepad++.

      In my school the computers are very very very locked down. If you right-click the desktop and go to Properties, there are absolutely no options. The screen is all fucked up to be blanked out of options. So we can't have roaming profiles (which baffles me, I cannot stand that shitty blue taskbar and crap like that). Also, by using network booting, they force Windows XP to load on some really really really old computers, which baffles me as well. Why is this bad? Because kids can't tell the difference! One girl was working on a video project (in shitty WMM) on an old computer. She then wanted to finish it off and get it encoded and when she hit encode the computer just froze entirely. She said she didn't save at all either (her fault). I had to tell her that she had to do it again and that if she saved it would be okay but then I had to tell her that these computers she was on are not made for video encoding and if they didn't freeze on encoding they would take a year to encode anything at all. She was then all confused because I used the word "encoding" and pissed off.

      My only hope for not using that piece of shit IE at my school is putting in my flash drive (USB 1.0 on the old computers that have USB so I never try) and running Firefox off of it (which works okay). I can also run several other apps. Otherwise, I wish my school would use OpenOffice also instead of buying a million licenses for M$ software (Office) (Right now I have to keep OO and M$ format on my flash drive). Whenever there's a legally freeware alternative to anything, it's like they completely ignore it. Firefox would be great on the systems, along with the teachers using Thunderbird instead of Outlook, etc.

      As far as programming, schools get a huge discount when they join some kind of thing with M$ and then they get Visual Studio and the license also allows students to take it home and install (I pirate mine for now). My school has not done this and I don't think they plan to. Since I'm taking the online course in AP Computer Science next year, I have yet to figure out how one would do programming without a compiler installed.

      Staying on topic, I guess I am a kid (17 about to turn 18, started doing shit at 11). I have experience in HTML, C, C++, and Java. I have not mastered any yet, but still working on it. At age 11, my parents got me a decent computer (although it was a Compaq :/) and I began to just play and play till I learned, because my previous computer had Windows 3.1 and 98 was different in a lot of ways. I used what I learned from school since they had 98 and then tested things out. Best way to learn and no one but me seems to understand this. After making my first HTML pages in FrontPage I saw a View Source option in the program and began to understand HTML easily. Unfortunately, I expected other languages to be as easy and was soon dumbfounded. I picked up a book on C one day and got my hands on a copy of Visual C++ 6.0 (still used by many today). Did the same for C++ and Java. I have a lot more reading to do and I am working on a few apps. Just the other day I needed an app that could modify an INI file based on what I input, which would be easier than opening the INI file in Notepad just before every time I opened the app. It's a handy app but only useful to me. Did that in C++ in about 5 minutes. After getting that Compaq I learned about the innards of a system from one of my dad's friends, and started building my own PCs.

      Pretty much everyone else at my school has no clue (there are a few that do). They have no idea how computers work and they recently learne

    10. Re:yes, they do! by Ganniterix · · Score: 3, Funny

      It's a place discovered by a girl called Alice. One day Alice was listening to a fairy tale by her sister ... when she followed a little bunny and fell into a deep hole. There she found this marevelous wonderland and had many adventures.

    11. Re:yes, they do! by Ganniterix · · Score: 5, Insightful

      Are you dumm??? :) You don't talk to girls about encoding!! Seriously ... watch some more TV and a bit less PC's :)

      Jokes aside, I don't think that the whole world needs to know how PC's are working. I don't think that the majority of people need to know that. As long as you know how to operate a word processor and a spreadsheat program, maybe some software to create presentations (notice how I am using generic terms).... I think you can be considered computer literate. To be able to program in C++ in notepad and compile it using a command line interface, I THINK goes beyond the purpose of computer literacy. I don't think that locked down computers are a bad thing. In fact from what you've been saying (software loading off pen drives, accessing external proxies...) I don't think you computers at school are actually locked down enough. Keep in mind that computers at school are not you computers at home. It's there for public use and has to cater for mostly kids. I don't think that schools should make it a priority on their schedule to allow 12-13 year olds change their desktop picture, color of the taskbar and access porn!

    12. Re:yes, they do! by yurnotsoeviltwin · · Score: 4, Insightful

      This is beyond true. In fact, the teacher doesn't even need to actively encourage them, all they need to do is provide an environment in which the kids CAN program if they want to. Of course, I'm not telling teachers that they shouldn't encourage kids to program, but even just giving them easy access to netbeans will get them working on stuff. I took both Programming in Java and AP Computer Science in high school and really all our teacher did, especially in AP after we'd learned the basic syntax in the first class, was give us assignments and a link to the API and let us figure them out as a class. It was awesome, most of us did great on the AP exam and they actually ended up having to bring a professor in this year from University of Delaware (where I'm currently a student) in order to teach the next level of compsci to a lot of the then-juniors who had taken AP (I was a senior when I took it). If you have kids with brains and an inclination towards compsci, just give them a computer and a problem to solve and they'll do it, often at a level that exceeds expectations (adding cool GUIs and such). One friend of mine in the class held a summer job (and still works a little bit) as a database scripter/porter for a small car dealership, and he hasn't even graduated high school yet.

    13. Re:yes, they do! by carninja · · Score: 5, Funny

      Seriosuly, stop learning how to program, or you'll never get laid.

    14. Re:yes, they do! by zCyl · · Score: 5, Funny

      When C++/Java/Perl/Python have long since been consigned to the garbage colletor in the sky Lisp/Smalltalk/C will still be used to solve problems. I rather think the current period of programming will be seen as the dark ages before the re-birth.

      (((((((Hopefully(the))(result(of(the))car)(cdr)(re -birth)will(be))))(car)(car)cdr car)(()readable))(.)car)

    15. Re:yes, they do! by m50d · · Score: 2, Insightful
      Now pickup Stroustrup, or a Java book or Perl or Python. What hits you is the cacaphony of discord, the single pure note lost amongst the poor orchestration.

      You're wrong on Python. It fits, it's right. It's cleaner than C, it's more effective than lisp. It is truly wonderful.

      --
      I am trolling
    16. Re:yes, they do! by tubs · · Score: 2, Interesting

      I work as a computer admin in a school, and we use mandatory profiles, we also lock everything down - no changing screen savers or backgrounds.

      The reason we do this is cost - the more option people have to play with, the more they play.

      You may do everything okay, but some plonker will change the screen settings so that they can't see any text, which will then stay with thier roaming profile.

      Looking after 1 mandatory profile is far easier than 1500 roaming profiles full of internet explorer crap, previous seraches and whatever else. Our student "test" mandatory profile now consists of 8 meg of settings, the mandatory which does the same is now 2.5 meg.

      You may not understand it, but it makes pefect sense to me.

      --

      try to make ends meet, you're a slave to money, then you die

    17. Re:yes, they do! by MonoSynth · · Score: 5, Funny

      Like when my girlfriend needed to update her podcast and kept screwing up the XML file, I just wrote a little app to do it for her.

      What? screwing up the XML file?

    18. Re:yes, they do! by fuzzix · · Score: 5, Interesting
      I have experience in HTML, C, C++, and Java.

      Cool. The thing is, learning languages isn't really the most important thing to consider when programming - languages can be picked up depending on requirements at any time. Once you know the fundamentals of one it's easy to pick up another.

      The real art of programming comes from an understanding of algorithms and complexity. You can know every feature of a language but without the ability to apply it in an efficient manner that works it's not going to get you far. The focus on filling people's heads with syntax is a serious failing of many college courses. There should be more time spent on the fundamentals of programming theory with a single language being taught alongside to show how this theory is put into practice.

      When you familiarise yourself with common methods for every day problems you'll start to notice ways to make your own solutions more elegant and efficient. You'll be able to tell which algorithm takes more operations to process some data set or which one requires more RAM... then you can implement it in any language that takes your fancy. To me, that's the important stuff in programming. You have all the time in the world to learn languages, but without this stuff it won't come to much.

      I learned this the hard way. I say it here so you don't have to :)

      Luckily there is as much free help on algorithms out there as there is on any programming language. I just found a decent looking algorithms tutorial collection and there's also the Dictionary of Algorithms and Data structures. Hmmm... looks like I found some weekend reading material!

      Oh, and there's no shame in designing on paper... the day will come when you don't need to do it, but until then it does no harm. Jees, I sound like an old fart here. I'm in my 20s, I swear!
    19. Re:yes, they do! by earthbound+kid · · Score: 4, Informative

      Computers no longer ship with an easy to use basic that gives instant results.

      Mine did. Applications -> Utilities -> Terminal.app; % python.

    20. Re:yes, they do! by StarfishOne · · Score: 2, Interesting
      Are you dumm??? :) You don't talk to girls about encoding!! Seriously ...

      I have been invited over by different (and good looking too!) girls to their own place multiple times, because they wanted me to teach them something about (a) programming (language)!

      As long as you:

      a) don't _always_ talk about coding, and
      b) don't forget about your personal hygiene

      ... many things are/become possible.. really ;)

    21. Re:yes, they do! by etzel · · Score: 2, Interesting

      "They need a teacher to encourage them"

      I find this is what did it for me. We had 1 hour/week with this guy but he managed to introduce variables, loops and arrays at an early stage. Looking back now, that introduction was invaluable many years later,

      --
      "It is the mark of an educated mind to be able to entertain a thought without accepting it."
    22. Re:yes, they do! by khellendros1984 · · Score: 5, Insightful

      The current state in some schools is worse than a lack of encouragement. Using the computers for anything that the instructors don't understand constitutes "hacking", much of the time. I've gotten in trouble for writing programs on computers (in basic, non-viral, etc). It gets worse. One of my friends tells a story about changing to a non-default printer (the default was set improperly) and getting sent to the vice-principal's office.

      For the most part, I was lucky, though. It is the one way I can think of that having out of date equipment was a boon. Most of my schools had machines running windows 3.1, and therefore a full copy of dos including the qbasic.exe binary. That always excited me, being able to add functionality to a machine with something I created. Then again, I'm most of the way through a computer science bachelor's degree now...

      --
      It is pitch black. You are likely to be eaten by a grue.
    23. Re:yes, they do! by Bandman · · Score: 2, Insightful

      When I got my first computer, it didn't have an easy to use basic, either (PC Dos). I learned batch programming. Then I got on the internet, found a copy of Quickbasic, learned it, then found a copy of TurboPascal, learned it by writing an IGM for Legend of the Red Dragon, eventually found a used C book at a supermarket, of all places, then went online and found a free C compiler.

      Now I've been using Linux for 9 years or so, and getting paid well to do it.

      Kids can and will learn on their own if they want to.

    24. Re:yes, they do! by ghstomahawks · · Score: 3, Insightful

      Being the student ... let's let me take a shot at this one. In my school, programming 1 is offered (basic and qbasic) as a class, as in programming 2 (visual basic, js, c#) which can be taken as an honors course or a regular course. ONLY students enrolled in those courses have any ability to program, and then only during class. No other computers than the one computer lab we use have any useful software installed, and our accounts only allow us to program during school hours. And yeah .... we can't use any exit commands we put in our porgrams either as that runs into about 80 security measures of doom. We're given visual studio to take home, yet we are unable to e-mail ourselves any projects, and as all of the unused asb ports are taped over simply flaashdriving it up is no good. ... we can't do things like right click on the desktop, do much in my computer (it goes straight to your personal sutedent location, and allows you to go to no higher directory), or even get into the run command to open notepad if we find that easier to write html/js in

    25. Re:yes, they do! by PyrotekNX · · Score: 2, Insightful
      Modern operating systems obfuscate their inner workings. Modern computers no longer require programming skills for day-to-day operation like they did in the past. Many have never heard of a command prompt and wouldn't know what to do with one if they saw it.

      The focus on harder science is declining. The AOL(tm) generation have difficulties with some of the most basic tasks. They have too many distractions. High School students try to do their homework while watching TV, listening to their iPod(tm), surfing the web and playing games; while being interrupted by their cellphones ringing every 30 seconds.

      Science is not the only thing in decline. Communication skills are also in a sharp and steady decline. Children are learning how to communicate through MySpace(tm) and IM(tm) where grammar, semantics, capitalization and punctuation are never used properly.

      Formal instruction teches the fundamentals of programming. If students don't learn cognitive programming skills at a young age, they will be significantly disadvantaged to those that did.

    26. Re:yes, they do! by elgatozorbas · · Score: 3, Insightful
      Well it's not so much that gifted kids need a teacher to tell them how to program. They need a teacher to encourage them, and that is what's missing.

      Also 'back in the days', computers were cool but couldn't do anything so to say. You had to develop software you wanted yourself. What you did with computers was program them (and play a few games). Nowadays an abundance of cool applications is already available in many flavours. Why program?

    27. Re:yes, they do! by shutdown+-p+now · · Score: 2, Insightful

      I'm not sure what you mean by "effective" here, but for no sane definition of the word I can come up with Python is "more effective" than Lisp.

    28. Re:yes, they do! by Just+Some+Guy · · Score: 2, Interesting
      Python is the only programming language I know that requires a primer in the use of the space bar, tab key and enter key before you can write working code.

      No; Python requires you to use a programmer's editor. Got vim? You're fine. Emacs? No problem. Notepad? Problem.

      If you're really a programmer, your editor already solved this issue for you.

      --
      Dewey, what part of this looks like authorities should be involved?
    29. Re:yes, they do! by Valdrax · · Score: 2, Insightful

      Now pickup Stroustrup, or a Java book or Perl or Python. What hits you is the cacaphony of discord, the single pure note lost amongst the poor orchestration..

      Python is one of the cleanest and easy to program in languages ever designed. It's extremely descriptive, enforces readability, and as an added bonus contains functional programming tools that let it do pretty much anything you can do with LISP. In my opinion, Python is what students should first be taught. It lets you get straight to the high level concepts without have to first go through much of the bookkeeping nonsense that lower level languages force on you.

      Plus, your alternatives are terrible. You pick Smalltalk, a language that comes with the baggage of a terribly outdated set of libraries. You pick LISP, a language whose syntax makes it utterly impossible to generate easily readable code. (No, seriously. If you have a formatting scheme that makes LISP easily readable, I'd love to hear it.) You pick C, which is good for low-level programming but requires way too much bookkeeping about memory to be safe for general purpose applications.

      Incidentally, unlike you apparently, I've programmed in every single language you've mentioned. I'm well aware of their strengths and weaknesses. However, anyone who thinks Python is unclean and disorganized is shooting their mouth off on a subject they've obviously never studied.

      --
      If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
    30. Re:yes, they do! by b0wl0fud0n · · Score: 2, Interesting

      Actually those boring lectures actually help kids learn to program. During high school the math classes never interested me and the problems were easy to solve so I spent all my time programming. I ended up programing multiplayer monopoly, then an ai for it, clue, a Escape Velocity Override knockoff and then a really really simple version of Sim City. I programmed quite a few math programs as well...finding the angles/sides of the triangle, Riemann Summs,

      You'd be surprised at the percentage that I believe that the percentage that learn to program on the graphing calculators is pretty high. Perhaps the most common program people write ask their friends to show them how to write, is the quadratic formula program. The next common way people learn to program is by editing existing graphing calculator games (so they can program cheats/modifiers)...which gets them to start getting into more stuff.

    31. Re:yes, they do! by Mr+Z · · Score: 4, Interesting

      I think many teachers already have a hard time anticipating what the computer is going to do. The thought of letting the kids make it do something different must be terrifying for them. At least, that was my experience.

      Every so often, you find a clueful teacher or two. Problem is, as computers get more complex, the bar for cluefulness keeps rising and all the clued get jobs in industry.

      --Joe
    32. Re:yes, they do! by HokieGeek · · Score: 3, Interesting
      hear hear! The best thing that my parents did for me in high school was getting me a laptop so i could "take notes." I spent all of my class time programming and based on what I taught myself during those 4 years, I went off to college pursuing a CS degree which I'm expecting will be awarded in a couple of weeks!

      But, like many people have said already, the problem is one of initiative. I had the initiative to pull out my TI-82 and fiddle around with it enough so that, when I got the laptop, I had a decent idea of what I was doing. Yet even CS kids, on the whole, don't do any programming that they aren't asked to do. Personally, I "take breaks" from working on programming projects to work on my own projects, yet that's considered a bit weird and over-the-top by most people in the degree in my school!

      Personally, I think this is but a small example of the greater apathy that has spread across the country.

      --
      What's a "sig"?
    33. Re:yes, they do! by WinterSolstice · · Score: 2, Insightful

      lol - actually it's really really easy - but like I told my wife: "When the young padwan can bypass the filters, learned enough to see porn he can."

      -WS

      --
      An operating system should be like a light switch... simple, effective, easy to use, and designed for everyone.
    34. Re:yes, they do! by zCyl · · Score: 4, Insightful

      > I've never been able to understand this. Why do so many otherwise
      > intelligent people have this irrational phobia about parentheses?
      > What is it about them that causes people's minds to lock up? I can
      > understand complaining about other aspects of Lisp, but this?

      It's quite simple, really.  Each parenthesis has a slightly different function in the context of the larger program, yet you cannot tell this quickly from looking at them.  I mean, look at the above joke sequence, and tell me if there are 7 or 8 parentheses at the opening left side of the sentence (by glancing, without counting).  And yes, you can use a program that does parenthesis matching to avoid having mismatches, but it is about more than having the numbers balance, because an infinite number of different configurations of parentheses can have balanced numbers but different behaviors.

      Control structures more like the C style have been significantly more popular because there are visual markers indicating function.  { and ( are used in different contexts, as are ", ', ;, and so forth.  It's always reasonably clear upon looking at C code what is a function, what is a parameter, and where the return values are going.  LISP can have the same function, parameters, and return values, but which goes where is determined entirely by the ordering of parentheses.

      So it's not that people are afraid of the parentheses, it's that the parentheses are cumbersome to visually parse into meaning whenever complexity rises.  In C style code, a single routine which is becoming more complex tends to simply get longer sequentially.  In LISP, a single routine which is becoming more complex tends to get more depth of parentheses, and you start getting structures that look like: ))) (( in the middle.  Let's take a piece of example code:

               (cond
                ((< x 400)
                 (cond
                  ((< x 100)
                   (prin1 'XC) (decf x 90) )
                  (T
                   (prin1 'C) (decf x 100) ) ) )
                (T
                 (prin1 'CD) (decf x 400) ) ) )

      I now take a working piece of code, change only a few parentheses, and the behavior has changed.  In this case, it should crash, but there are less trivial cases where code will actually run but do something different.  Either one is of course bad, since in an ideal situation, a human programmer should be able to discern the function and behavior of a program easily by visual inspection.

               (cond
                (< x 400)
                 (cond
                  (< x 100)
                   ((prin1 'XC) (decf x 90) )
                  (T
                   ((prin1 'C) (decf x 100) ) ) )
                (T
                 ((prin1 'CD) (decf x 400) ) ) ) )

      And I'm sure any reasonably competent LISP program can look at the simple code example above and figure out what is wrong with it, but this isn't the point.  The point is, the language hinders this process with its symmetry, rather than helps it.  For most tasks, languages shouldn't be chosen for their reductionist beauty, but instead, for their ease of use for forming complex structures with human psychology in mind.

      I hope that clears it up.  :)  <-- (This parenthesis functions as a smiley, and not as a comment closing.)

    35. Re:yes, they do! by Anonymous Coward · · Score: 2, Insightful
      The I think the reason that nerds don't have girlfriends is b/c they're embarrassed somehow and they don't flaunt their skills. My girlfriend used to complain that when we go to a bookstore I spend most of my time in the computer section. But changing ones ways because of nagging is a sign of weakness, which is a bigger turn-off than being a nerd.

      Anyways, then I got her a domain named after her, she learned the wsywig webpage creators, then she got bored with that, and now she has been poring over html books in the computer section.

      Granted, girls and guys are different. But that doesn't exclude girls liking computers. Guys might get off on some programming languages, open source stuff, keyboard short cuts for emacs, etc, but girls can be seriously aroused by pretty, well-designed webpages and small, pink laptops.

      Obviously, don't force computer stuff on girls, but also don't dumb down your passions...that's the best way to repel girls.

    36. Re:yes, they do! by SEAL · · Score: 2, Insightful

      I notice the problem from the opposite perspective. That is: some of us who work in the computer industry would actually enjoy teaching. But to become a teacher in most places you need at least a master's degree.

      In the computer industry I can make more money. A degree often isn't required at all because most companies use technical interview questions to weed out candidates who don't know their stuff.

      The U.S. needs more teachers, period. But to compete with other industries, schools need to *lower* the master's degree education bar, compensate by making job interviews more difficult, and adjust salaries based on performance reviews. Just like the software industry.

      That won't cure all the problems (like funding) but it's a start.

  3. Define Program by oskard · · Score: 3, Insightful

    Most kids are taught in high school that HTML is a PROGRAMMING language. It is very common for younger nerds to want to make web pages. Some of them even venture into Javascriptlets. Few blossom into real programmers, but it could be noted that HTML, because of how commonplace it is, is the gateway language to keyboard hacking.

    --
    Sigs are for Terrorists.
    1. Re:Define Program by Daniel+Dvorkin · · Score: 5, Insightful

      Yes, HTML is a programming language.

      I know this is heresy, but bear with me for a moment. No, HTML isn't Turing-complete, and anyone who's done any kind of dynamic content work with Javascript, PHP, etc. is well aware of HTML's limitations. Nonetheless, writing a web page in plain HTML is much, much closer to "real" programming than it is to the way most people interact with computers.

      Most people do something on a computer that gets an immediate response. Hit a key in a word processor, see the letter you typed appear on screen. Click a mouse button in a game, shoot the bad guy. Type a URL into a browser, get a page.

      OTOH, writing a page in HTML (using a text editor, I mean) even a page that just says "Hello, world" on a colored background, requires understanding the concept of code. Instead of action-and-response, you have text that makes the computer do something that does not follow immediately from the text at the time you enter it. This may seem trivial to techies, but it's an enormous conceptual leap for most users -- and once they've made that leap, programming as a concept is no longer nearly so mysterious.

      This is the way it worked for me, as an adult. I was the kind of user whom non-techies think of as "computer-literate," which meant I could use all kinds of different programs and do some low-level troubleshooting, but I simply had no understanding of what programming was, and in fact had a kind of mental block against it dating from when my Dad tried to teach me C when I was a teenager in the 80's. It wasn't that I couldn't learn it, but I had convinced myself that I couldn't learn it, and that amounted to the same thing.

      In the 90's, I decided that I really wanted to at least learn how to make a decent web page, so I started doing "view source" on every page I liked, and got reasonably competent at reusing other people's HTML. Next I started writing my own. Then I realized that a lot of the stuff I wanted to do would be a lot easier if I learned this Javascript thing people were talking about, and, well, off I went. By the time I found my way back to C (and C++, and PHP, and Java, and Perl, and MATLAB, and Python, and R, in roughly that order) I realized this programming stuff wasn't so mysterious and scary after all.

      During my academic CS career, I saw a lot of people go this same route. Don't sell HTML short.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
    2. Re:Define Program by linguae · · Score: 2, Informative

      Reread the parent's post. HTML is not a programming language; it is a markup language. However, you still have to markup your document, kind of like how you would code a program (just without the variable setting, looping, etc.).

      As a personal sidenote, I learned HTML back when I was in 3rd grade. I was always very interested in computers, and my family just got an Internet connection. (This is in the mid-90s; keep this in mind). I got interested in creating web pages, so I scoured the Internet to learn how to do so. I ended up learning HTML and made *.gif images using Paint and typing the .gif extension (I didn't know about proper file formats at the time, so I just changed the file extentions. It worked, using Windows 95 and IE 3.0). (I wish I could show you the site [it was some comic book mide with some of the ideas of myself and my then-preschool-age brother], but it is on a long-disappeared AOL member site which hasn't been archived, even though I have some WordPad documents on a disk somewhere back at home).

      Later that year, I ended up learning QBASIC. I even convinced my parents the following year to buy Visual Basic, and stuck with that for a few years. After outgrowing that, I learned C, C++, and Java (by both independent study and by community college courses taken at the last year). Now I am a freshman computer science major.

      So, yes, getting back to the main point, HTML is a vaild stepping stone for many kids. You can't do much with the Internet without it; in fact, I use HTML every day to type these Slashdot comments, and most message boards have some HTML-lookalike for formatting comments. After learning HTML, they might learn something more challenging, like Python (which seems to be the new intro language these days).

    3. Re:Define Program by debiansid · · Score: 2, Informative

      Yes, HTML is a programming language.

      I'm not so sure about that. HTML is a markup language that defines what the data is and how it is to be placed.

      True, you need to have the concept of code but that doesn't make it a programming language. If HTML is a programming language then Tex would also be a programming language. But it's not.
      Among the many things HTML falls short in being a programming language, here's a few:

      * It does not support branch conditions
      * It does not have the concept of variables (you have tag ids and names but those are used by javascript/perl/php/asp for processing, not by html)
      * Data manipulation is not possible. Only display can be manipulated.

      You'll be better of calling it a Markup Language (language to define/present the data rather then use/manipulate it in any way) rather than a programming language ;-)

    4. Re:Define Program by pebs · · Score: 2, Informative

      HTML is not a programming language, it is a markup language. Javascript is a programming language.

      --
      #!/
    5. Re:Define Program by dkf · · Score: 2, Informative
      If HTML is a programming language then Tex would also be a programming language. But it's not.
      Minor correction: TeX really is a programming language; you can (with much twisted code) write while loops in it. That means it is Turing-complete, and hence a programming language by definition. But I agree that HTML isn't a programming language; if it was, you wouldn't need Javascript.
      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
  4. Primitive interfaces by CRCulver · · Score: 4, Interesting

    Learning programming was so frequent back in the day because the primitive nature of early PCs required people to be able to do so low-level work to use them well. Heck, the Altair didn't even have a monitor, you had to flip switches to process commands. Freiburger & Swaine's Fire in the Valley shows you some of these early computers and their users. Everyone was programming back then because these simple machines attract a crowd of people willing to think analytically.

  5. Yep, they are. by FireballX301 · · Score: 5, Interesting

    I cut my teeth on C++ when I was nine. Graduating from HS this year with a few years of C++, some cursory Java, some cursory web 'languages' below my belt.

    The main issue here is that programming isn't necessary anymore for kids - whatever any kid wants to do they can rush out and buy a bit of software for, or find a utility online. All the functionality they'd want is at their fingertips already, so programming is left to the tinkerers.

    And I rarely program anything for fun anymore because I'm overscheduled. Too many classes, too many bloody standardized tests, and programming itself isn't rewarded at the HS level because of a refocus on reading, 'riting, 'rithmetic. Out of the set of dedicated students, the more well off kids burn time at prep schools and cram classes, the less well off burn time studying. Few chances to program 'for fun' - I've got a really old RPG engine that I add bits and pieces to every now and then, but there's no way I can finish it anytime soon.

    1. Re:Yep, they are. by danratherfoe · · Score: 3, Funny
      I cut my teeth on C++ when I was nine. Graduating from HS this year with a few years of C++, some cursory Java, some cursory web 'languages' below my belt.

      Wow, you've got all that below your belt ... you must be a real hit with the ladies.

    2. Re:Yep, they are. by linguae · · Score: 2, Funny
      Wow, you've got all that below your belt ... you must be a real hit with the ladies.

      With all of that programming knowledge, once he learns some AI and some robotics (and advance both fields substantially; create some field called "biorobotics" or something), he can program a lady. Problem solved for him and all geeks like myself worldwide.

  6. Who could teach it? by r00t · · Score: 4, Insightful

    Let's see, what will a qualified programmer do?

    Work in an environment where pay and job security is according to seniority, not competance. Work with lazy and dumb students who disrupt class, yet can not be kicked out or even (except in Texas) spanked. Get stuck doing odd jobs like minding the bus loading/unloading area and trying to stop food fights.

    Work in a cubicle for $40000 to $150000 while surrounded by fairly intelligent nerds and all the Mountain Dew you can drink.

    Gee, I dunno...

    1. Re:Who could teach it? by BigZaphod · · Score: 4, Insightful

      Teach it? No one taught me anything about programming when I was a kid. I checked out books from the library and fired up my Atari 800 and typed stuff in myself. No teacher required. (And no one to ask for help - I was the only person I knew who had a clue what I was doing.) The only reason I did it was because I had a computer and it didn't do much on its own. I had a need, so I set out to fill that need not knowing what I was getting myself into. That's the charm of being young and ignorant. Now, though, computers do so much out of the box that it's hard to imagine a kid thinking "gee, there's nothing to do with the darned thing." Combined with the Internet, it almost completely removes the old motivations we had for learning the craft. Other factors drive the modern geek-ling - such as the notoriety of building your own web page, making javascript programs in the browser that your friends can play with from anywhere in the world, and working on stuff in Flash that's so much cooler than I had ever dreamed possible back when I was saving my BASIC programs to an audio cassette. The geeks are still there - they just look different. It's hard to imagine what they will come up with in the future after growing up on such powerful tools.

    2. Re:Who could teach it? by AhtirTano · · Score: 2, Informative
      I agree with the general point, but not:

      Work with lazy and dumb students who disrupt class, yet can not be kicked out or even (except in Texas) spanked. Get stuck doing odd jobs like minding the bus loading/unloading area and trying to stop food fights.

      My father was the local high school programming teacher for a while in the 80s. He quit about 89/90, and he now earns >$100K. But he didn't leave because of the students. He always said that if you treated students with respect, they were easy to deal with. His lab was constantly full of students, so he was probably right. He actually left because he was tired of dealing with parents--treating them with respect didn't make much of a difference, and he wasn't paid enough to put up with their crap.

      My mother has taught K-3 since 1974. She has basically the same opinion. Students are great. Parents suck!

  7. Yes and no by Hi-Tech+Redneck · · Score: 2, Interesting

    Yes, kids still enjoy programming, but not all kids. It isn't all that long since I gradutated high school, and I can say that in my experience it's an issue of earlier specialization among geeks. Those who are interested in a topic are becoming more focused on that topic at earlier levels of education as opposed to not until college. What this leads to is the branching that you used to see later in life.

    To phrase it another way, if you are interested in some other hard science and not a do-it-all genius type, why devote the kind of time it takes to be a good programmer if you have little or no plans of needing it later in life? Even at that early stage, you ask your programmer geek buddy to code what you need. You just need to learn to be good at giving specs, not writing code.

    Before the flames and such start, I'm not saying this is a correct view, but it seems to be a prevailing one. To some extent, I find myself in this view as well. I'm a sysadmin, but I know a little programming. However, if I need anything beyond a basic script, I'm going to go to a real programmer to get the job done. Why? Because I've become specialized and I don't have the time and/or brilliance (and when it comes to programming, frankly the inclination) to master other fields.

  8. Comment removed by account_deleted · · Score: 5, Insightful

    Comment removed based on user account deletion

  9. Well, coming from... by cshank4 · · Score: 4, Informative

    ...a current highschool student. I must say, programming is a dying art among my peers because it's seen as 'uncool, unhip and boring.' There's no drive for it any more. I'm in my Junior (Grade 11.) year and I'm just picking up some C++ and C. Granted, I learned how to program for LinguaMOO's and I picked up some HTML back in 5th and 6th grade, so it's a little easier for me. But the point is, it's been... convoluted? I guess that'd be the word I'm looking for. It's been washed out by things like sports, staying fit and doing drugs. Hooray.

  10. It's Too Hard!!! by AaronBrethorst · · Score: 4, Informative

    Seriously, the complexity associated with modern development tools is way too steep a curve for your average 14 year old to wrap their heads around. We're trying to address this to a certain extent with the Visual Studio 2005 Express Editions, but it's a tough problem. It's no longer as simple as getting a bare-bones BASIC interpreter built into your computer's ROM. I think there have been some cool advances in this space, though, in the recent past. Take the Kids' Programming Language, for example. It's is expressly aimed at the younger crowd. I've seen a demo of it (the guys from Morrison Schwartz who created it came by to give a talk on it last year), and I must say that I am suitably impressed their work. Check it out if you have a younger child who you want to introduce to development.

    --
    No, but I used to work for Microsoft.
    1. Re:It's Too Hard!!! by theJML · · Score: 5, Insightful

      I've been programming since I was 6. Had a C=128 and just HAD to figure out how to program it. Not sure why, just made it my quest. Then we got a 386, and I learned C. I didn't think it was that hard then (in fact, c made a lot more sense to me than BASIC did). After that I took a class in HS in which they taught Turbo Pascal, which I thought was kinda boring until I figured out that I could use ASM statements inline... Now I program in linux.

      Now let's look at the one continuity there, they were ALL Command Line environments. Sure I had Win 3.1 but I never did that much in it. And when 95 came out and I wanted to program MFC it seemed like way too much trouble for what I was trying to do. I was eventually able to come up with a patern for setting up the window and everything, but it was kinda more a pain in the ass than it was really productive. And I come to the last part... Now I program in linux. Sure you can do X-windows programming in linux (which I think is easier than MFC and Visual WhatEver++), but I've always gravitated towards simple things like kernel programming and utilities.

      Back to my point, the command line based OSes were easy to learn to program with. Minimal setup for your program (heck, include and you're pretty much done.) output is exactly what you want (it's all just text anyway), it's easy to visualize, it's easy to learn, it's easy to get results quickly. Kids have short attention spans in general, so you want something that allows them to be somewhat productive quickly, so they can do a few things and see the fruit of their labor and think "Wow! That's cool! I just made that!" instead of some random windows error. That'll Hook them and they'll want to do more and learn more... sitting down to read a book to figure out the best windowing setup or if they want a DirectX window or a menu bar is kinda a pain and isn't going to grab many kids.

      --
      -=JML=-
    2. Re:It's Too Hard!!! by dcapel · · Score: 3, Interesting

      Speaking as one who is too much older than the demographic you speak of, and is a fairly competent programmer, I call your BS. Complexity has gone up, but it is by no means beyond someone who is interested and dedicated.

      My school doesn't offer any classes in programming, so I teach myself, but sadly, I'm not sure how many people would take it if they did offer it. Most kids my age are just lazy sheep; programming isn't required to graduate, and it isn't 'cool', so people don't take it, sans geeks.

      Geek to sheep ratio is low though :/

      --
      DYWYPI?
    3. Re:It's Too Hard!!! by iamdrscience · · Score: 3, Interesting
      the problem is that there IS no BASIC interpreter shipped with windows or Mac OSX
      No, but OSX has plenty of other (better) choices. I mean, OSX now comes, out of the box, with perl, python, ruby, PHP and TCL installed, not to mention applescript, javascript and the various shell scripting languages (bash, csh, tcsh, ksh, zsh). I'm sure there are more that somebody could point out as well.
    4. Re:It's Too Hard!!! by eddeye · · Score: 2, Interesting
      We're trying to address this to a certain extent with the Visual Studio 2005 Express Editions, but it's a tough problem.

      That strikes me as hilarious. No disrespect, I know you guys mean well. I just can't picture kids diving right into a professional environment and language as complex as C# (or god forbid C++). It's not that they can't start with the basics, it's that the basics don't let them do anything interesting. You have to learn a huge number of syntax rules and complicated APIs to get anywhere. Last time I looked (which admittedly was quite a while ago) even the VS gui builder, which takes a lot of the pain out of making interfaces, still requires you to at least partially understand some fairly sophisticated concepts (event handling, VC of MVC model, etc).

      I see more hope in a language like Python. Simple, clear syntax and a powerful library that's pretty easy to use. You can get off the ground running a lot quicker, making useful programs your first day. It's that kind of positive feedback that encourages people to explore. Just like back in the day, when a few lines of basic were enough to make a useful program. As machines have gotten more sophisticated, the bar defining "useful" has risen a lot higher too.

      But hey, more power to you guys at MS. I applaud your efforts and wish you luck. Just please don't tell me VB(.net) is your answer to python...

      --
      Democracy is two wolves and a sheep voting on lunch.
    5. Re:It's Too Hard!!! by massysett · · Score: 2, Insightful
      Visual Studio 2005 Express Edition, part of the solution? No way, it's part of the problem!

      Every minute a student spends with Visual Studio 2005 Express Edition is one less minute spent learning how to program, and one more minute spent learning how to use Visual Studio 2005 Express Edition. Microsoft IDEs are enormously complex tools. They're quite useful in the hands of professionals who know how to use them, but they're an impediment to actually learning how to program. Students need to learn how the nuts and bolts of programming work before they start using a Microsoft IDE, which attempts to write code for them.

      The Kids Programming Language might be nice, but I can't see how it would be better than Python. Python is free and available for Mac, Linux, and Windows. There are great beginner books available for it, like Python Programming for the Absolute Beginner. Best of all, Python eliminates layer upon layer of abstraction that's in any IDE so that the student learns the logic that is programming.

      Kids should learn how to program. Understandably though MS would rather have kids learn how to use Microsoft interfaces, the same way kids learn MS Word. Microsoft Visual Studio 2005 Express Edition is not about teaching kids to program; it's about giving them crippleware to hook them on the MS way.

    6. Re:It's Too Hard!!! by iamdrscience · · Score: 4, Insightful

      I think the fact that Ruby and Python have interactive interpreters makes them great places to start. Just like many of the old basic interpreters, you can just punch in commands and see what happens. You don't have to open a file, edit it, save it, close it, run it, and then repeat all that when you get errors, you can just type in a command and see what happens -- you get the errors immediately and you even have a command history so you can bring the last line you typed right back up, edit it and try again.

    7. Re:It's Too Hard!!! by Jeffrey+Baker · · Score: 2, Insightful

      But a beginner programmer has no effin' idea why he needs a "class" or any of that other crap. Every programmer needs to write trivial programs before they can understand the abstractions necessary for making more complex ones. For the same reason, you do not learn engineering by sitting down in front of a PRO/Engineer workstation. How can you understand finite element analysis and solid modelling if you haven't been to the workshop to break some bits of metal?

      If you haven't tried it lately, writing a trivial program in Windows is practically impossible. Just try to write a program that draws on the screen or plays music (two things that you learned immediately on the C64).

  11. Learning curve of linear vs OO? by jgaynor · · Score: 4, Interesting

    Do you think the desire to program computers has declined in the younger generations? If so, what reasons might you cite as the cause?

    When I was in elementary school we had this GREAT program called 'LAMP' (logic, art, mathematics, programming) where they took the smart kids out of class every once and a while and had us do extracurriculars in the above-mentioned subjects. The 'programming' aspect consisted of nothing but logo and some linear BASIC on TRS80s, but it at least got me interested in futzing with my Commodore 64 to the point where I could make rudimentary text programs and dream of mastering the 'poke' command.

    Without an easy-to-learn language like BASIC where do you begin to teach the fundamentals of programming? The syntax, class structure, includes, etc of modern object-oriented programming languages are a huge barrier to picking up the basics. Would you start a third or fourth grader out on Java? C++? I certainly wouldn't be able to handle that - I had a difficult enough time making my LOGO turtle move around. Perhaps the best solution would be some sort of drag-and-drop IDE, like visual basic for 6 year olds, where children could understand the concepts of programming without being overwhelmed by the syntax all at once. Anyone know of one? I seem to remember something similar using java beans demoed by Sun while I was in college . . .

    1. Re:Learning curve of linear vs OO? by Temposs · · Score: 2, Informative

      Well, to me, the obvious modern answer to BASIC is Python( http://www.python.org/ ). It's about as easy as BASIC, has an easy-to-understand help library, and runs best by command line interpreter. The IDE even comes with a Windows-based command line interpreter! In fact it looks a lot like BASIC, too, but also has more modern programming concepts fully built-in. I started in on BASIC in 3rd grade and taught people BASIC in middle school, before switching to C++ and Windows programming in high school(graduated in 2000). I now have a BS in Comp Sci and am a PhD student.

      --
      Knowledge is just opinion that you trust enough to act upon. -Orson Scott Card
    2. Re:Learning curve of linear vs OO? by cduffy · · Score: 2, Insightful

      Here's the problem with only learning to program on top of tools other people made: When the abstractions leak, you don't know enough about what's going on under-the-hood to resolve it.

      Understanding how dynamic linking works; understanding what syscalls are, which ones there are and how they operate; understanding how virtual memory is implemented at a hardware level; understanding the processor as something other than a black box -- all of these are necessary if you're going to be the dude who comes in when the high-level-only programmers have a problem they can't solve because their tools have a subtle bug or a conflict with some aspect of their environment. If you're going to be making architectural-level decisions, it also helps to know how various high-level things work -- which mechanisms different revision control systems use for representing and manipulating history; how video codecs handle seeking; and so forth. This kind of knowledge is useful so that ideas which are used in one area (say, video codecs) can be reapplied to another (say, maintaining support for fast seeking in large, mutable text buffers).

      Having the versatility implicit in knowing how the low-level stuff works as well as the high-level bits makes for more variety, prestige and job security than one would otherwise have.

  12. Yeah... by seabre · · Score: 2, Informative
    I recently graduated high school and am currently pursuing a math degree...My high school didn't really have any decent computer classes, and offered zero programming classes. The computer classes that we did have you could basically not do anything and still get an A.

    But I mean, you don't need a school to learn programming. I started in elementary school with the second edition of Kernighan & Ritchie's C programming language book and I've been hooked on coding ever since.

  13. Interest? Necessity? Changes in technology? by Saxophonist · · Score: 2, Interesting

    My first programming experience was with a Mattel Aquarius that I got for Christmas when I was quite young (five or six, maybe). There were some game (and other) cartridges. But, when you didn't put a cartridge in, you turned on the computer and got an "OK" prompt. Time to start entering BASIC code! Of course, most of us can't be expected to know what to do with that right away. Good thing the Aquarius came with two (if I remember right) manuals. One was a set of example programs to try to teach BASIC programming on the thing. Typing on the soft-key keyboard wasn't that great, even with the control-key macros for the most common BASIC tokens. The other manual was more of a language reference. Between the two manuals, I learned a whole lot about basic control structures (such as GOTO, unfortunately).

    My next computer at home was an Apple IIgs. Guess what happened when you turned that on with no disks? An Applesoft BASIC prompt. And, it came with another programming manual, A Touch of Applesoft BASIC. Programming that got a little dull, though, as the manual had what I found to be less interesting examples. I talked my parents into getting me a subscription to Nibble. Then, I had example programs to type in, both in BASIC and assembly. Well, the assembly was just hex codes until I eventually got a compiler. But I found it all rather interesting at the time.

    Now, computers come with no such resources. You don't get a BASIC prompt when you turn on your Intel x86 machine, and you don't get a programming manual in the box. I'm not saying that BASIC is the best way to go to learn programming at all, but at least it was something. Plus, there exists software to do most tasks now, at least most tasks that a kid would think of.

    Also, the perceived identity of programmers seems to have changed. In my Apple IIgs days, there were a lot of programs developed entirely by one programmer, often distributed as shareware. Of course, these folks still exist, but kids probably think that programmers are adults who work for someone like Microsoft, if they even think about the subject at all. Few would probably think that they could try programming because it isn't presented with the computer and it isn't presented as something that an individual could actually do as a (geeky) hobby.

    It's a shame, really.

  14. No more GWBASIC by songbo · · Score: 5, Insightful

    Frankly, I think the real problem lies in the fact that the standard OS nowadays (Windows) does not come with a readily accessible programming language. Back in the good ol' days, there was GW-BASIC and (later) Q-Basic. Qbasic even came with some games (remember gorilla?), that you could look at and see how things are done. All that made for a low technical barrier to entry (but not for good programming style). Now, unless you've got an inclination for programming, there's no way you can get started easily.

    --
    There are 10 kinds of people in the world - those that know binary, and those that don't.
  15. I'll take a stab at this ... by gstoddart · · Score: 4, Insightful

    My nephew used to brag to me about how he was some l337 haxor with mad skills.

    He was hanging out on various web sites with all of the other cool script kiddies. In his mind, getting stuff from the web without knowing what it was; or designing web pages with a WYSYWIG HTML editor; or using a level-editor to make a new map -- all of that WAS cool. He just couldn't grasp that he wasn't doing anything difficult, and certainly not worthy of his haxor belief about himself. In reality, he was running other people's programs and using interfaces to do stuff.

    Kids today either don't fully understand what it is they're doing, or think something utterly trivial is l337.

    They can accomplish a whole lot of 'meaningful' tasks with the software which is readily available for free. They don't *need* to try and cobble together little wee programs to achieve minor tasks. Back in the day, we were happy to achieve tasks which are, nowadays, stinkin' trivial. Because the computer didn't do much unless we made it so.

    Kids nowadays don't find themselves confronted with the need to program -- they're not staring at a blinking cursor trying to figure out what to do. They go onto teh intarweb and download it. They're not trying desperately trying to figure out how to write something to make the creation/management of D&D characters (or, whatever). They're downloading free (or pirated) software which already accomplishes what they need to do.

    People aren't programming out of necessity anymore, they're running software on the magic box which has always been there. They don't need to think about how software gets made in the first place. The generation before them have filled in most of the gaps for them.

    --
    Lost at C:>. Found at C.
    1. Re:I'll take a stab at this ... by cduffy · · Score: 2, Insightful

      Bad! We need people who understand how wheels work!

      I wrote another post on the topic, so I won't repeat myself.

  16. As a kid... by PurpleMonkeyKing · · Score: 5, Insightful
    Programming kids are few and far between. In Grade School, I always had the desire to make "a cool video game," but no adult I knew had a clue where I should start. It wasn't until 7th grade when my parents got dialup internet access that I had any clue what to do. I found GameMaker, but I outgrew it rather quickly, because I wanted to be like the "real" game programmers, so I made it a priority to learn C++.

    For three years, I taught myself through online tutorials here and there. Freshman year of high school I did a lot of programming, because I wanted to show my stuff off the the computer programming teacher (the class is only offered to sophmores and higher). Last year, once I was in the class I discovered how terrible high school is. In a one semester class, the other students only had a rudimentary knowledge of functions and no idea what OOP was. Basically it was a study hall for me, though I did write a tic-tac-toe game in C using SDL to show I did something.

    I'd have to say that my knowledge of C++ is pretty rough. I may know syntax, but I sure as hell don't know how to use it for anything complicated. That said, sophmore year, I competed in the National FBLA competition for C++ programming and got 6th! This absolutely surprised me. Surely there must be more people who know C++ than this?

    I'm disappointed in the US, in my teachers, and the school board. I've tried as hard as I could to learn in high school, but I end up being a slacker. Even classes at the local technical college (I've taken C# so far) have been a disappointment.

    In general, students aren't encouraged to do programming at all. Math books have logic cicuits, boolean logic, and tons of example BASIC programs, but teachers skip over them. Educators need to educate, not push kids through school.

    1. Re:As a kid... by east+coast · · Score: 2, Insightful

      I'm disappointed in the US, in my teachers, and the school board. I've tried as hard as I could to learn in high school, but I end up being a slacker.

      Why are you disappointed in them if you admit to being a slacker? There is a certain level of competency that is taught in school to make you a functioning citizen so that you can file your own taxes, hold a regular job and balance a checkbook. Programs that go beyond that few and far between. Why do you expect public high schools or technical colleges to teach game programming? How many of your peers do your really think are going to code for a living? Even on a very basic level? Frankly, it surprises me that schools still teach coding at all.

      Blaming the government and assorted entities because you didn't leave high school with the ability to crank out Doom 4 is very arrogant. There's a lot of countries where graduation from their public institutions (if they have them) leaves you with little options except being a farmer or bricklayer unless your family has serious cash.

      And not to dig into you because I'm actually happy to see you take some control over your own destiny but if you've coded c++ on a fairly regular basis over the past, what 4-6 years(?) and feel that you only have a rough understanding maybe programming isn't for you. Otherwise if you feel that you've accomplished all you can on your limited knowledge and want to check out some of the larger projects on SourceForge. You've said you've done nothing large yourself, why is that?

      Educators need to educate, not push kids through school.

      Students need to learn and to be responsible. Public school is not meant to kick out astrophysicists and biochemists. It's about teaching you some basics you may use in your life. It's amazing that kids expect to be handed an education. If producing the next Einstein, Seymour Cray or Sid Meier was as easy as going to public school and doing what was handed to you we'd live in a much better society but these are expectations that we really can't hold the normal person up to.

      --
      Dedicated Cthulhu Cultist since 4523 BC.
  17. Advice to smart people by seanadams.com · · Score: 2, Insightful

    Drop out.

    You don't need a degree to do incredible things.

    Excessive schooling and socialization could be holding you back, at worst permanently infecting you with an inability to create and lead. A mind is a terrible thing to lose!

    1. Re:Advice to smart people by iocat · · Score: 3, Insightful

      You point out six or seven anecdotal examples, but there are many more counter examples out there. For some people the socialization aspect of school is far more important than the academic aspect. In my career -- and it's a reasonably technical field-- I've seen time and time again the ability to socially interact well with a wide variety of people is at least as important as technical skills and raw intelligence.

      --

      Dude, I think I can see my house from here.

    2. Re:Advice to smart people by Daniel+Dvorkin · · Score: 4, Insightful

      Perhaps you need the education to understand what "anecdotal" means in this context.

      --
      The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
  18. It's not a frontier anymore by SlappyBastard · · Score: 2, Interesting
    In fairness, part of the early push into programming was because it was different and neat.

    You really had to be something if you could pull anything off.

    I can remember working with the better students in our 8th grade class to create a dithering routine for images displayed on Apple II and Apple III systems.

    At the time, it felt like a gigantic accomplishment.

    Can you imagine the dirty looks kids would give you now for even showing them a dithered image?

    A lot of the really cool frontiers have been supplanted. For example, overclocking is now seen as cooler than programming.

    Now, any true geek knows that hardware geeks are the slum dwellers of the geek world. It's a nothing skill compared to something like building a secure interface and database for a user-driven website and putting it out live on the internet to be assaulted by every kid with some CMS hacking bot.

    I was talking to a 15 yr old kid who thinks he's a hacker because he can run a couple scripts to piss with Yahoo Messenger chats!

    It was impossible to explain to him that he needs to channel that interest into real programming, and not just downloading someone else's program and committing vandlism with it.

    That's just the state of things.

    --
    I scream. You scream. I assume that means we're both acquainted with the problem. We proceed.
  19. Precisely by Fruny · · Score: 2, Insightful

    I think you've nailed it right on the head. On the gamedev.net forums, I see kids coming in almost every day who aspire to write an MMORPG right now. Many give up when you try to guide them through their first step because they can't immediately manage results on par with the games they usually play.

    1. Re:Precisely by Simon+Donkers · · Score: 2

      I gave a class last sunday to a group of 11 year old kids on how to make games with GameMaker. While at the begin all kids wanted to recreate GTA:SA or at least any 3D game after a quick lesson explaining that GTA is just a maze game where you walk around, collect stuff and do some shooting they started building maze games.

      After working an hour on maze games each has already layed the basics of there game and really love the ability to have created something and be in control off everything that happens. Ofcourse this ends as soon as these kids show there games to somebody else who notices it's a boring maze game but with a little bit of class these kids got inspired to make there own games.

      Children can get really motivated to work on games and as a Game Maker user I see that the avarage age off the kids is perhaps 13-14 years old and these games are nowhere near commercial quality but still, I've seen a few people (myself included) to grow out of this environment and earn money on programming computer games.

      These kids are still there, you just have to know where to look.

  20. Kids have moved beyond the computer as a tool. by Runesabre · · Score: 5, Insightful

    I'm actually amazed at what kids are doing with computers today and at such a young age.

    Kids are instant messaging and emailing their friends, creating articles on MySpace, creating nifty Flash movies, modding their favorite fps game and distributing their effort over the Internet for 1000s of others to enjoy. They are actually using computers for a purpose rather than as quirky, nerdy obsession

    This is WAY more productive and creative than what my friends and I were doing with our computers in the 80s. Kids are not only creating (and hopefully learning along the way) but they are connecting with LOTS of other people in the process!

    Perhaps us oldbies view the seemingly lack of interest in actually programming a computer as a problem because we come from a background where the computer was more about what it could potentially do for us rather than what it could actually do at the time. Programming was a necessity to fill that gap, often in relative seclusion and obscurity.

    I'm sure our dads say the same thing about us young whipper-snappers not knowing the first thing about the cars we drive and nod knowingly to each other about what a tragedy that is.

    --
    Runesabre
    Enspira Online
  21. Instant gratification by Dorsai65 · · Score: 3, Interesting

    I think there's also the problem that so many of today's kids are so used to getting instant gratification (i.e. - they're spoiled) that the sustained intellectual effort necessary to learn programming is simply beyond them.

    I came to this realization in a (mandatory) Intro to Programming course I had to take at the local state college. 3 1-1/2 hour sessions a week, and half the class had disappeared before the end of the 3rd week; in the hall before class, I heard many of them complaining that they didn't 'get' the concepts behind programming: AND vs NAND, OR vs XOR, NOT, and so on. Non-decimal arithmetic (binary, octal, and hex) threw them completely. Boolean logic might as well have been Swahili for all most of them understood it. It was, as I said, a mandatory course; they were going to HAVE to take it to the end, sooner or later - yet most of the drop-outs simply didn't want to be bothered. The (very) few of us that already had some experience programming cruised through while the rest (including some taking it for the 3rd or even 4th time) applied whatever mental effort was needed to learn the subject.

    I heard one of the disappeared comment to a friend "What do we need this crap for, anyway? All the programs we need are already written; you just have to know which one to buy or download!"

    --
    --- Asking inconvenient questions for over 30 years...
  22. BASIC still rocks! by ratboot · · Score: 2, Interesting

    I showed to my 12 year old bro how I learned to program back then, I started a C-64 emulator and started typing BASIC commands like print, input, etc. He immediately liked it very much and we tried our hand at little programmes. Then he asked, what if I want to do the same on Windows?

    I found a BASIC interpreter (with line numbers) for Windows and Mac called Chipmunk. Since then, my bro doesn't stop and tries a lot of things.

    1. Re:BASIC still rocks! by belmolis · · Score: 2, Interesting

      Although unfortunately it doesn't come with every MS Windows box, Tcl is a language that could easily serve this purpose. The syntax is simple, it is very high-level, you can write it interactively in tclsh if you want to, and it has a nice, simple but powerful windowing graphics library (Tk). And its free. You don't have to worry about object orientation (which I think is a an impediment for beginning programmers) but there are various object-oriented extensions if you want them.

  23. Re:Degrade of Education by iocat · · Score: 2, Insightful
    It's impossible to evalute the return on investment. Without special classes to keep me intersted, maybe I would have TURNED TO DRUGS, or become a serial killer. Smart kids can be just as fucked up as retards, and may need special ed to turn out normal. If we want everyone to end up in the middle of the bell curve, we may need to help out people who are outliers.

    Anyway I went to school in a rich district. They could afford it and it made them feel special to have nerds win prizes for the school. Taxpayers don't get a great ROI on the football team either, by the way...

    --

    Dude, I think I can see my house from here.

  24. Some do... by mkiwi · · Score: 4, Interesting
    Some kids really do care about programming, but really good development software costs lots of money. That was definately my barrier into programming: I wanted to learn when I was really young, however I could not afford Metrowerks CodeWarrior nor were my parents willing to buy it for me. When your net worth is less than the cost of a computer program that makes it hard to enter the field.

    Now, enter open source software. Guided by the right people and articles, anyone can learn to program. Guidance is the key word here. Most kids aren't going to go off and buy textbooks just to learn how to Do Cool Stuff.

    A lot of programming is a mystery and there needs to be better education earlier in schools about what programming is. Programming is just like Math or Chemistry these days- it is required for many B.S. majors and can turn out to be hell if someone did not know what they were doing. In order to prepare kids for college, programming in a language like JavaScript would be a good starting tool. There is no barrier to learning JavaScript- the compiler exists in (almost) every web browser, which students should have access to.

    Some of the problem is that few people how to teach at the High School level very well. VB is not a good language to learn on, and it causes awful headaches for students who later decide to learn Java and C. VB, though, seems to be what is taught, even though most students do not have access to a VB compiler at home. Learning in school is not enough- it is homework that is also important. I advocate teaching kdis HTML and JavaScript so they can make a cool web site with image rollovers, calculators, and other various algorithms.

    Not only does this introduce the concept of programming, but it also gives students a great tool for publishing resumés and marketing themselves as an intelligent young people who have something going for them.

    A nice web page can do a lot, even if it is just a little.

  25. Re:Degrade of Education by skavj_binsk · · Score: 2, Insightful
    >... the school system has been seriously degraded
    >... Gifted students are being dragged down to the level of everyone else
    >... normal classes are slowed down to accomodate for slower learners

    Oh, stop it, now I'm getting all nostalgic! Yep, sounds like everything's EXACTLY THE SAME.

    *sniff* *sniff*

  26. VBScript by tepples · · Score: 2, Informative

    the standard OS nowadays (Windows) does not come with a readily accessible programming language.

    You mean other than JScript and VBScript, both of which run inside IE? I guess VBScript could almost be considered the descendant of the GW-BASIC that you mention.

    (I would recommend Visual Basic Express, a free download for the owner of a legit copy of Microsoft Windows, but it appears that you need to be a Passport member to acquire an activation key, and Passport members need to be 18+.)

  27. Incompetant Teachers && World of Warcraft by bhav2007 · · Score: 2, Informative

    I'm the only person at my (very small) private high school to pass the AP Computer Science test in the last couple years. In fact, I'm the only person who is even taking the second year of the class. Personally, I love programming, and I've actually written some c# which is working in a (pretty nice) live site right now. I am continually suggesting to any semi-nerdy personalities that they should give Linux a try, because I know that they might really enjoy computers if they ever bothered to learn anything about them. But every nerdy kid I know who has an ounce of talent with computers has wasted every free second in the last few years obsessively playing World of Warcraft.

    The CS course at my school only makes things worse, as the current teacher manages to make even Java extremely difficult, and the last teacher failed to teach at all. Maybe a factor in this lack of young interest is a lack of competant teaching talent? I can't speak for others, but I cannot imagine anyone continuing any work with computers if they have to learn from the people I've seen teaching them.

    And yes, I can attest that most high school computer courses now consist of (shudder) Microsoft office and frontpage. In fact, my school just added "Business Accounting" (read Excel) and another similiar class to the curriculum.

    Just my experience.

  28. Re:Degrade of Education by masdog · · Score: 2, Informative

    Kid, you're only in your second year of high school. It will, hopefully, get harder for you from here on out. Or maybe not.

    Like other posters have said, if there is something you are interested in, go buy a book and use the Internet to teach yourself. Formal education limits your ability to be creative and develop your skills in the directions that you want to take them.

    If you really want to LEARN something and be able to apply it, you have to work outside of the classroom. You'll be working outside of a controlled situation where you won't have a textbook to go back to for the answers, and you will have to learn how to diagnose a problem and be resourceful to solve it.

  29. Re:Programming by Daniel+Dvorkin · · Score: 2, Insightful

    "Programming" is creating code that, when compiled, produces a binary that needs nothing more than an operating system or JIT compiler to run.

    "Scripting" is making funky text documents that need another program to do something. PHP, HTML, and Perl are technically scripting.


    But a JIT compiler is "another program." For that matter, so is an operating system.

    The distinction between "programming languages" and "scripting languages" is becoming sillier every day, as erstwhile scripting languages become increasingly powerful tools for developing big, powerful apps. Unless you're writing rather specialized drivers that only talk to the bare metal, you're not really doing anything that's more "real programming" in Java, or even C, than you are in Perl or PHP.

    --
    The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
  30. Yes....but maybe not a lot.... by natmaster · · Score: 2, Informative

    I'm currently finishing up my freshmen year in College majoring in CS - take that into consideration with how "relavant" I am in this history. I started doing web based "programming" in 6th grade, and in 7th started doing C and C++. I quickly learned a plethora of other languages in subsequent years. So, for regards to my age generation - yes, kids still learn to program. I don't know if my recency is relevant enough for this case though. Also, I should point out that CS enrollment in universities is declining - even though demand is increasing rapidly.

  31. Why kids are no longer code monkeys... by Super+Dave+Osbourne · · Score: 2, Insightful

    Education is driven in large part by demand, which is often driven by supply. In the 70s and 80s when I was a child and learning to code, first on a VAX at the UW (hanging around the computer department and punch card systems) as well as later the Tandy/RadioShack store with TRS 80s, then Apples and finally Macs/PCs, there was a dire need for folks to understand coding. Mostly cause applications and tools had to be developed to allow others to get work done effectively. Now there are tools and layers on top of tools and layers that have in part become too complicated for the average user to grasp and become a toolsmith. Today folks are oriented to getting a job done quickly, and then forget about the paperpush, moving on to the next project that keeps them employeed or as a student may be, competative. Microsoft and others have talons in the minds of the consumerbase, and knowing basic 'skills' like Turd or Decel are the endgame, to get an internship or job. Its kinda funny, there are failing kids in my wife's classes (she's a teacher at a HS) who are making more than I am (with 25 years coding experience) writing web based apps. So there is a market, however most kids don't see outside the box enough to get motivated to learn these skills. And finally tonight I say without question the average kid is being taught to take tests, not to think. We are a society focused on crisis management, not doing things right to avoid the crisis in the first place. So Knuth CS education in JH and HS is not in the realm of reality. We are slipping educationally in the US, and getting kids to simply be able to Read, Write and Balance a Checkbook out of HS is a large part the challenge. Nevermind the ability to think outside the box. Refocus on doing things right, not doing them for economic gain and I thinnk for a large part you will get back to a balance in the CS (and other) fields of science. Just my .50 CAN worth today :) Isn't it nice how we are almost back to equality with the USD? Its been a long long time coming.

  32. Re:... Wow you guys... by gujo-odori · · Score: 2, Interesting
    This has nothing to do with 'being lazy' or not. It has to to with the school. They don't teach us ANYTHING in these computer classes except Excel, Access and Word. They're fucking pointless

    To some extent, maybe. One could also make a good argument that teaching Excel/Access/Word is not pointless, because in many jobs and even in college knowing them (or some equivalent, and let's face it, Word and Excel are far more widely used than OO.org Writer and Calc) is a necessity.

    The reason I say "to some extent" is that when I was in middle school and high school (1974 - 1980), there were no computer classes either. None. Zero. I don't think one teacher in either school even knew how to use a computer. But, we did have computer access in my middle school (my high school was private and had nothing).

    We had dial-up 300 baud access to the city schools computer systems (HP 2000 Access machines). We had two terminals - a DECWriter II and some heinous CRT that would practically burn the eyeballs out of your head after a few hours.

    Students had to join the computer club to use them (set up by the principal; I don't know if he knew computers himself or not, but he was a very insightful and forward-looking man who clearly appreciated their value and potential). You could play games like Star Trek or Wumpus, or you could program in BASIC. Most of us mostly programmed. One guy had a paper route, and had written a program to do all of his paper route accounting. Other people worked on games and stuff. One guy wrote the first malware I ever saw :-) It disabled the break key and pretended to be the login screen. You had to know *its* password to disable it. If you typed in your userid and password, it would save them to a file and return to its bogus login screen. Some of us had access to the source code, and this set off a little competition of sorts to see who could most improve upon it to make it more realistic.

    The thing about this computer use and the computer club is, there wasn't really anybody who taught us. There were no classes. The club moderator (a teacher) wasn't a programmer, either. We taught ourselves and taught each other, as best we could. Experienced guys (and I mean guys; I went all through 7th, 8th, and 9th grade without ever seeing a girl attend a computer club meeting, let alone actually join) would help the n00bs get started, and when we were no longer n00bs, we'd pass it along.

    So, while I agree with your point about a lack of programming classes, that's hardly the only thing that matters. You have so many more resources than I did when I was in junior high school. In most schools, most students have at least one computer of their own at home, and that one computer has more processing power than every computer in my entire city did in 1974. Compilers and IDEs are affordable (or free, if you're using *nix). There are more programming books in an average bookstore than you could even get home in your car. There are massive amount of free tutorials available on the web. We didn't have any of those resources in 1974. The one resource we had was one that you have, too: a group of like-minded peers who were interested in computers and helped each other learn. One of the things that got me into Linux in the late nineties was that I found the user community was very much like my old junior high school computer club: smart, very enthusiastic, talented, very often self-taught, and very willing, ready, and able to help others who wanted to help themselves.

    I bet that if I had a list of names of all the students who were in the Taft Junior High computer club and could track them down today, I would find that most of them either are working, or have worked, in computer jobs.

    The one resource I had available for learning computers in junior high is a resource you have available, too: a like-minded peer group. If you're not in touch with people like that, get in touch. If there's no club and you think it would be beneficial

  33. I started early... by billster0808 · · Score: 2, Insightful

    Speaking from experience, a good chunk of people who take high school programming classes are in there simply because they think they can surf the internet for an hour, like you can in most other HS computer classes. I started my Junior year with Java, and by the time I graduated I had also learned C++, PHP, and HTML. Definetly gave me a leg up when I started college last year.

  34. Programming still important for many by Nyeerrmm · · Score: 2, Insightful

    Programming is still important for many professions and schooling that don't seem related at all. I'm an Aerospace Engineering student (Senior), and I've been programming since middle school (Basic, C++, VB), and I'm glad I did because most people struggle with it for classes.

    Some codes I've had to write/design are specialized CFD simulations, finite element solutions, burn rate simulations, data retrieval, storage, and control onboard a rocket, etc...(all in FORTRAN). Working on these, most of my peers are lost with regard to proper programming, because its not taught. It seems to me that most technical fields, no matter how removed from normal CS areas, still require this kind of programming.

    Granted, its not OO or scripting or dealing with crazy data structures and compiling your kernel from source, but basic structural programming still seems vital to many fields, where specific problems required specialized solutions for which there would never be any GUI-ified programs.

  35. Bad working conditions and low status by hagbard5235 · · Score: 2, Interesting

    Even more than the pay (which isn't actually all that bad if you annualize it) the working conditions and the low status just kill being a teacher. The conditions teachers have to work under are horrible. Not only do you have poorly disciplined children to deal with, but you can't establish order or the psycho parents will get you. Your principle will in the best of circumstances provide no help, and in the worst be a petty tyrant. No matter how well you do your job, it will garner no added respect over the folks who are just phoning it in.

    Then look at the status issue. In the US, status comes from two places: economics and education. Congratulations, a grad student making $10k a year or less has more status than you do, because teachers generally come from the bottom 30% of college graduates. All the bright people you might want to socialize with have vivid memories of both the REALLY dumb teachers they had coming up through school, and of the education majors they knew in college for whom Tuesday was the start of weekend because they had so little work to do. The automatic presumption when you tell people you are a teacher is that you aren't very bright, and that you are pretty lazy.

    Then look at the unionization issue. You pay dues every week to be represented by group of folks who are actively trying to protect the most knuckle dragging segments of your profession. They actively oppose trying to pay you decently for teaching well. They have driven the system in which you work into one that is based solely on seniority. Seniority systems are HORRIBLE for everyone but the dead weight. Change job, loose your seniority and see your pay plummet. So after a few years you are TRAPPED in your job. A huge percentage of your compensation is backended onto your union pension, so to get most of your compensation you have to stick out the 30 years to retirement. How do you think your principle and superintendent treat you when they know going anywhere else to work means a 30-50% drop in pay for you? Do they treat you as a valued contributor, or a serf? If you really want to see the degree to which you are treated like livestock look at the 403b offerings your union recommends. In many case they are the most amazingly bad, high fee, low return things imaginable. You frequently would be better off in a money market account. But the plans basically bribe the unions and union officials, and you get sold like a sucker.

    Contrast that with being a bright young programmer. Pay is relatively good. As you prove yourself to be better, your pay rises quickly. If you decide to change jobs, you are likely to see a pay increase. Programming is still somewhat of a prestige career, not top of the status ladder, but fairly up there. It is likely if you are any good you have management who is interested in keeping you happy and productive, because they are afraid you will leave for somewhere else. Typically as a programmer you have radical flex time. You can telecommute at least part time. You are constantly learning and things are constantly changing (the latter is not for everyone, but I like it a lot). You are capitalized appropriately (in otherwords, your employer provides the equipment you need to get your job done).

    Why the hell would anyone who can program want to teach in the public schools?

  36. Graphing Calculators by yuvi · · Score: 2, Interesting
    I'm no storyteller, but I thought that I'd just share my own experience with programming through school.

    Although I learned BASIC in elementary school (on an Apple IIc, which was 3 years older than I was), I never really tinkered with programming computers that much. Then, in 4th grade, I purchased a Casio CFX-9850G. That was perhaps the best purchase in my life. I learned how to program its unique dialect of BASIC, and spent many school hours ignoring the teacher and just programming (my school system barely did anything for talented kids, and I've heard that they've scaled back what little they did do down even further). I programmed some simple mathematical functions, some fun-with-graphics stuff, and even a mini-rpg. When I lost it in 7th grade, I replaced it with a TI-89 and spent even more time learning that calculator's more powerful language.

    So, I must say that although I did program as a kid, I programed graphing calculators. Computers are way too complex nowadays to enjoy programming like hackers used to. For example, for someone to use the programs that he/she programs on a computer, they'd probably need to learn complex GUI programming to match what else they do on the computer. But a graphing calculator is still command-line at heart, so it's much less harder to program something that you'll use repeatedly.

    And using what you've programmed feels great.

    1. Re:Graphing Calculators by dukiebbtwin · · Score: 2, Interesting

      Before I had a device to transfer programs to my graphing calculator when I was middle-school aged - I would print off the program from http://www.ticalc.org/ and type it into my calculator. I learned a good amount of programming from this simple task - dissecting the code as I entered it and trying to figure out what it all meant. My first programming experience on a computer was Visual Basic. Now it seems like not even a programming language. I coded a simple Jeopardy game that I ran one time in my French class. My goal in programming VB was to code some sort of GUI application where I could store my collection of baseball cards. All the programs out there that would do this were expensive and cost a bit of money (especially for a kid) so I set out trying to code this. Unfortunately I can't say I got very far. I tried using some sort of database thing that obviously wasn't going to work. I can honestly say that I hated VB - I really had no direction in syntax and structure and the code I produced was just terrible. My first computer science class in high school originally dealt with programming in BASIC. The textbook must have been from the 80's and most of the programs we had to write were ridiculously simple. The class did give me a very good foundation on all the simple programming concepts. As my senior year approached I had wanted to self-study for the AP exam which was Java based. I attempted for about two-weeks to learn it and gave up. All of the web tutorials were just terrible and I didn't understand a method from a class and really the whole concept of object-oriented-programming. I fooled around with php code some times too but the mySQL aspect of it was way over my head. I finally learned Java in an intro college course and see the beauty of OOP, but I can't say that I think it would be easy to learn on your own. I think that the biggest issue with learning a language is figuring out what you want to do with it. Every kid wants to make some sort of GUI - many want to program games. But, even now, I think that programming a simple game in java is pretty difficult (not mentioning that it is pretty difficult to just learn to program a gui in java). Sorry for the long post - my main points were that the biggest reason kids don't code is because of the lack of freely available simple tutorials for the beginner programmer, the difficult nature of building a simple gui, and figuring out what needs coding.

  37. I am from the in-between generation... by guruevi · · Score: 2, Interesting

    I went to school between the generation that had to program their C64 and the script-kiddies who just download their homework. I had a second hand 8086 when I was 8 and by the age of 12 the fastest computer at school was a 8088 on which we all had to learn to type. I could use a 80486 by the time I was 16 to learn the basics of Turbo Pascal on (for a mere 6 months) and we shared the 128kbit ISDN connection with 150 computers ranging from 486->PII

    What I would like to point out is that schools have way underestimated and underbudgetted their IT and computer expenses. I have never had a decent teacher that could explain the least thing about computers, programming or anything else. Governmental school systems are way to slow to adapt to the new technologies. It takes on average 10 years to change something fundamental in the program, the other schools are way to expensive for the average joe's kids.

    Everything I learned (PHP, C, C++, ASM) I learned on my own and I don't have a degree in any IT or computer field. I am currently freelancing as a PHP programmer and *Nix Systems Administrator and soon I am going to administer a hybrid IBM mainframe/Windows/MacOSX/Novell network and I am currently earning close to 75k (I am not even 25).

    Kids who are interested in having a good job later, shouldn't care too much about schooling anyway imho. What they teach in schools was way deprecated (even geology, history and chemistry) when I learned it and I had to correct teachers on multiple instances on different subjects. I read 100's of books of decent size about Novell, Linux, C++, OS/2 and other and experimented with different programming languages, hardware and software when other kids were playing outside.

    The current decay in interest is also because everything seems to be prepared for them thanks to projects as .NET, Ajax, Ruby on Rails and other 'Frameworks'. This takes the real thinking out of programming and even the dumbest ass can program in those languages. This doesn't mean it is good to learn the basics through such a 'languages' but I have been at a company that was programming their complete ERP system in VB, .NET and .NET2 for the last 4 years with 5 full-time programmers. The problem is that those 'programmers' don't understand that you can just stick to the same language if you use a core language like C or C++ and don't follow the framework flavor of the month. With some good design, you can even program quicker and more efficiently in a basic language and the product will be faster and have a smaller footprint AND be portable too.

    Anyway, the problem is imho that kids don't get educated good enough and some organization let is seem that programming is just some easy thing to do, that everybody could do while the real work isn't being done by anyone anymore.

    --
    Custom electronics and digital signage for your business: www.evcircuits.com
  38. Good point, but maybe solved. by jd · · Score: 2, Interesting
    Tcl/Tk isn't exactly what one might call easy, but it's really not that bad and gives you graphical output whether you're on a Windows, Mac or Unix box. Makes sharing software with friends easy.


    Python/Tk and Perl/Tk are also good for the same reason - simple(ish) scripting language, very analogous to BASIC, that is multi-platform, cheap & easy to obtain, and can be programmed without a Master's and a bunch of GUI screen designers and rapid development tools.


    Java applets were, not so long ago, very popular with the younger generation. For the same reasons as above. Quick, easy, graphical, sharable. Java is more restricted in that it can't really be run as a script - it can barely be run when compiled into bytecode! - so you don't get the same feel of "what happens when I change this here". Nonetheless, it is still an excellent place for very young coders, and OO isn't that steep a curve if you've not been polluted with procedural programming techniques.


    Of course, although they're rarely used, LOGO, FORTH and other early languages still exist. You see them listed on Freshmeat all the time! I'd honestly encourage geek parents to install something like that and get younger kids interactively involved in programming.


    The big reason that everyone seems to forget for why nobody codes these days is that we're in a culture of instant gratification. Why write the coolest game on Earth when you can buy the next-coolest (or get someone else to) from the local store?


    In the 80s, during the heyday of DIY programming, more than a few kids too young to sign a contract were earning more than most highly-paid programmers do today. This is why, when I see parents "acting responsibly" by getting kids to earn maybe enough to buy a whole can of coca-cola after 8 hours of mowing lawns and washing cars (even though, by that time, they are probably dangerously dehydrated), it gets me a bit depressed.


    What parents are teaching kids, by doing this, is that it's better to earn sub-survival incomes, risk causing heart damage later in life and learn nothing useful for later in life, than it is to develop logic skills (which are infinitely transferable) and write potentially sellable software.


    Sure, the days of bashing out Chuckie Egg III and earning enough in royalties to retire at 16 are gone. On the other hand, starting from a standard Open Source 3D gaming engine and some toolkits for some of the more obscure implementation details, and a 9-12 year old should (at the very least) be able to code a game that would be worth a few hundred pounds or dollars over the course of a year, possibly a few thousand if really good. (That's still only 100-200 copies sold, in total, at the prices a lot of "budget" games go for.)


    Kids really are useless with money and have zero comprehension of magnitude, but there can't be many who would take the can of coke (and heat-exhaustion) over and above being able to get all the high-tech junk anyone in the school might have PLUS whatever everyone else would give their front teeth for. Not all kids would even code for the purpose of being THE star to all the other kids. Some might code for the fun of it, others with the aim of writing the best damn game out there. Regardless, it must necessarily start with knowing that they can. Once they know they can, the world is the mollusk of their choosing.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  39. Smart Kids & Misguided Educators by wizwormathome · · Score: 2, Insightful

    Gifted students are being dragged down to the level of everyone else, and normal classes are slowed down to accomodate for slower learners due to NCLB.

    Gifted students are dragged down to lower levels for two major (and horrific) reasons.

    1) The general view in the eyes of "educators*" is that group work is A Good Thing. By putting smart kids with not so smart kids, educators think that this helps out the slower kids academically, while lets the smarter kids benefit from the "social interaction with those not as quick". They might also throw in some jargon about how letting smarter students work with slower students, they get to re-enforce what they've learned by teaching it to someone else.

    What happens in practice is much more shady. Educators use groups to help divy out the workload of the class. By enlisting the (un)voluntary aid of these students, they can focus more of their attention on someone else or rather, less on everyone.

    2) In a similar vein, educators seem to have a wretched philosophy of "the smart kids will get it anyway" along with "we should focus our attention on the slowest students, not the fastest" which equals bright students trudging along, waiting for everyone else. What this means is that bright students are almost never challenged and quite usually left to "get it" on their own.

    How many slashdotters spent time sitting in a class, where the teacher knew you were more capable than the rest of the class, having seen you master a concept quickly, then just made you wait, doing nothing, while she brought the rest of the class up to speed? I think this is probably the primary reason we see so many very bright students (and adults) who are incredibly listless, unfocused, and fail to achieve later in life.

    The other thing I'd like to mention is that NCLB is not the exact cause of this problem. NCLB deals with accountability through standardized testing. That means that if schools can't get a certain percentage of their students to pass fairly basic skills tests, they are in danger of losing federal funding. Educators object to this because of other laws that have passed for mandatory inclusion. This is where special needs students are required to have time in regular classrooms. Because of this inclusion, test scores will drop slightly. (The real reason scores are so low however, is because there is very little challenging content being taught.)

    Sadly, although inclusion sounds very humanitarian and swell, for a vast majority of these students, it's a very bad situation. Many special needs students operate best in very small, focused environments and with practically no benefit to being around normal children. Horror stories abound with educators being forced to run a class of 25 students plus "one" that is completely unable to participate. This inclusion disrupts the class, halts academics and really is not mostly beneficial for everyone involved.

    As for programming in the schools, I think there is another reason it has changed to Word and PowerPoint. Educators seem to be the least technologically competent people I have met, but inversely, also seem to be the loudest proponents for "including technology in the classroom because it is a skill required in the 21st century".

    I know this because my mother has been in education for over 30 years and believes there is a major problem with her computer when AIM starts up accidentally. She's not an unintelligent person. She just knows nothing vaguely important about technology. She has little concept of very basic functions, like being able to copy and paste information from one program to another. She can use one or two programs with some efficiency, but beyond that, it's a mystery. When she talks about having technology in the classroom, she's not talking about programming... even remotely. She's talking about Word and PowerPoint and maybe even a web page the students had to find.

    On the other hand, I'm about to s

    --
    An explanation of my choices for friends
  40. Script Kiddies by themadplasterer · · Score: 2, Interesting

    That's what kids today think is programming.

    Example 1 of 1000000
    console.log
    207.210.74.100 - - [23/Apr/2006:13:24:06 -0400] "GET /drupal/xmlrpc.php HTTP/1.0" 404 291
    207.210.74.100 - - [23/Apr/2006:13:24:06 -0400] "GET /community/xmlrpc.php HTTP/1.0" 404 294
    207.210.74.100 - - [23/Apr/2006:13:24:06 -0400] "GET /blogs/xmlrpc.php HTTP/1.0" 404 290
    207.210.74.100 - - [23/Apr/2006:13:24:06 -0400] "GET /blogs/xmlsrv/xmlrpc.php HTTP/1.0" 404 297
    207.210.74.100 - - [23/Apr/2006:13:24:06 -0400] "GET /blog/xmlsrv/xmlrpc.php HTTP/1.0" 404 296
    207.210.74.100 - - [23/Apr/2006:13:24:07 -0400] "GET /blogtest/xmlsrv/xmlrpc.php HTTP/1.0" 404 300
    207.210.74.100 - - [23/Apr/2006:13:24:07 -0400] "GET /b2/xmlsrv/xmlrpc.php HTTP/1.0" 404 294
    207.210.74.100 - - [23/Apr/2006:13:24:07 -0400] "GET /b2evo/xmlsrv/xmlrpc.php HTTP/1.0" 404 297
    207.210.74.100 - - [23/Apr/2006:13:24:07 -0400] "GET /wordpress/xmlrpc.php HTTP/1.0" 404 294
    207.210.74.100 - - [23/Apr/2006:13:24:07 -0400] "GET /phpgroupware/xmlrpc.php HTTP/1.0" 404 297

  41. Better advice for smart people by linguae · · Score: 4, Insightful

    But what if you want to be this person or this person or this person? These people did very wonderful things, but those wonderful things require that they have the education to do them.

    My advice to smart people; don't drop out. It is possible to do wonderful things without a degree, but a degree will open much more doors, which makes doing those wonderful things much easier than without a degree.

  42. Re:Programming by chthon · · Score: 5, Insightful

    So if I write something in Perl it is a script ?

    When I write the same functionality in Common Lisp and run it using clisp, it is a script ?

    When I compile it with CMUCL or SBCL, then it suddenly becomes a program ?

    I hate this bloody artificial division between 'programs' and 'scripts'. They are all a way of automating things, be it for embedded applications or data processing, and I use Perl daily for data processing, from starting up external applications, gathering data, process results, store and retrieve data from a database and generate reports.

  43. For Newbie Coders: Python by Garrett+Fox · · Score: 3, Informative

    I recommend Python to kids wanting to learn programming. It's free, it's very easy to get started with command-line stuff and simple programs, and it doesn't take some rediculously complex installation process just to get it working. (Although creating a shortcut to IDLE is an unadvertised Useful Thing To Do.) There's also Pygame, a library for graphics/sound/other game stuff, and I'm just starting to play with Panda3D, a Python 3D engine (that includes a copy of Python itself). I found that C/C++ gave me headaches, as did attempting to get other 3D engines working with Python bindings, while Python simplifies a lot of tasks (variable declarations, memory management) without sacrificing functionality. So, Python is a relatively easy way to get into programming.

    --
    Revive the Constitution.
  44. It's not just programming... by Anonymous Coward · · Score: 3, Interesting

    I work with middle-school kids. The biggest difference I see, compared to
    kids 20 years ago, is the total lack of
    curiosity. About anything.

    When I was a teenager, we talked about what it would be like to live in Alaska;
    tried to figure out how to buy a sailboat so we could bum around the islands; bought motorcycles and made road trips to California.

    If you mentione such ideas now, kids will just shrug and say 'whatever'.
    There's no sense of adventure there anymore. No curiosity whatsoever about
    anything. Including programming.

  45. Absolutely. by martinultima · · Score: 2, Interesting

    Let's see... been programming ever since I got my first copy of HTML for Dummies when I was eight, and now I'm fifteen, and what have I written? To name just a few:

    • PyWord, a text editor coded in Python
      (Used to be my most popular, I even had a guy in the Bereau of Labor and Statistics e-mail me once to say he liked it enough that he wanted to use it in his own program!)

    • pyprime, a program to find prime numbers
      I actually came up with the entire algorithm for it during theatre class in eighth grade. I've also ported it to my TI-83

    • Überpage, a PHP-based Web site engine
      Among other features, it uses a MySQL backend, generates completely valid XHTML 1.1, and if you're wondering, yes, I even designed the CSS theme myself

    These days, though, I tend to spend most of my time developing Ultima Linux, which has become – I may as well brag – a very popular distribution. Most of that stuff isn't so much writing programs as compiling them, although I frequently do have to make some major changes to shell scripts, etc., which I've also become somewhat good at.

    I've also become fairly decent at writing sed scripts, the occassional bit of JavaScript, and now I'm gradually trying to teach myself C. (Although with all the other stuff, and not to mention my actual life, I never have the time...) And then I also tend to like playing with CSS designs – I've got a Slashdot design I did, as well as a CSS Zen Garden entry and my hand-coded WordPress theme, which I'm rather proud of.

    I used to waste endless hours with QBASIC, and then later Visual Basic. I've never really forgiven myself for it until now, but I no longer remember a single line of it so I guess I've repented enough :-)

    --
    Creative misinterpretation is your friend.
  46. Advice to the young by Just+Some+Guy · · Score: 5, Interesting
    Since I'm taking the online course in AP Computer Science next year, I have yet to figure out how one would do programming without a compiler installed.

    Just so you know, computer science has almost nothing to do with programming. You'll write some code to explore compsci concepts, sure, but no respectable college will make that the focus of your degree. I mention this because there were a lot of surprised freshmen at my school, and I'd like to help you not be one of them.

    I have experience in HTML, C, C++, and Java. I have not mastered any yet, but still working on it.

    Apprentice: "I still have so much to learn..."
    Intermediate: "I know this language inside and out!"
    Expert: "I still have so much to learn..."

    If you think you've mastered a language, you haven't. Don't let yourself forget that.

    --
    Dewey, what part of this looks like authorities should be involved?
  47. The tools - overly complex, buried or don't exist by wazzzup · · Score: 2, Insightful

    When I discovered programming, it was because the coding environment was easily accessible - you turned your computer on and the basic compiler was there inviting you to try soemthing (this was true for the commodore, atari and trs-80 I had when I was a kid). You typed in source code from magazines - it was great.

    As far as I know, Windows does not provide a free and easily accessible programming environemnt. Apple does (xcode) as well as a number of open source tools like Perl, PHP, Python, etc.

    I have a Mac, so let's see what it would take for my son to start tinkering around as I did when I was his age. Let's say he wanted to start in on Python. He has to first know that he has to go find a shell, which is found in Applications->Utilities->Terminal and then type "python" to bring up the interpreter. This assumes he already knows that python is a language and is one he wants to tinker around in. This is not intuitive.

    What about XCode? He has to have a basic understanding of the Unix filesystem and go back to the root directory to find a directory called "Developer". Within the developer directory are the subdirectories ADC Reference Library, Applications, Documentation, Examples, Extras, Headers, Java, Makefiles, Palettes, Private, Tools. He's bright - he chooses Applications. He is then faced with Audio, Graphics Tools, Java Tools, Performance Tools, Utilities, Interface Builder.app and xcode.app. Again, he's smart (or lucky) and doesn't go deeper and follow the subdirectories and chooses xcode.app. He's now faced with a series of screens. First being building with the options "Put build projects in project directory", "Separate location for build projects", "Put intermediate build files with build projects", "Separate location for intermediate build files". At this point, he gives up and moves on never reaching the screen asking him if he wanted to build on of 53(!) types of programs. God knows what other screens are after that.

    Anyway, you get the point. A free IDE does not inspire a kid to jump in and make 10 print "my name is Colin" 20 goto 10. Python, Perl and PHP require knowledge that they exist, what they do and how to invoke them before you can even begin to write your first line of code.

    It doesn't surprise me that kid don't take up programming as readily these days.

  48. Lack of compilers by 4D6963 · · Score: 2, Insightful
    I think that the problem is not with kids not wanting to program, but with computers not having a compiler.

    When I was 13-14 (around 1999), I used to like to program in BASIC, I had a Macintosh Performa 6200, but no, I wasn't programming on it, although I used to spend much time on it, no, I was using my little sister's V-Tech Genius 2000.

    Why? Well, the Macintosh Performa 6200 didn't come bundled with a compiler, not a damn compiler, as the V-Tech had a big BASIC button that would take me to a simple programming environnement where I just had to type 10 ? "HELLO" 20 GOTO 10 RUN to get started with programming.

    Most kids don't program because they don't have a compiler on their computer, and even if they do, they don't know where it is/how to use it, and if they don't, they don't know what to get/where to get it.

    Kids won't play dodgeball if they don't have a ball in the first place, and they won't buy a ball to play it not knowing what kind of ball to get and if it's even worth it. Same here.

    --
    You just got troll'd!
  49. Kids do still program by jbgreer · · Score: 3, Informative

    Speaking as one who currently teaches computer science in high school classrooms, I can offer my own anecdotal evidence to the contrary: students do still program computers. That said, I agree with much of what others have said here. These days there are usually several different courses that tend to be lumped together as 'computing', although some of them have nothing to do with one another save that they involve a computer:
    - keyboarding, aka typing
    - computer literacy, aka word processing, productivity applications, etc.
    - introductory programming,
    - intermediate programming,
    - AP computer science

    The first two in the list have little if any programming component. I say little, though the second course may cover a number of use of spreadsheets and through that the use of formulae, conditional expressions, etc. [ I should note that there is a online journal dedicated to documenting the various ways in which spreadsheets can be used to teach various concepts - see http://www.sie.bond.edu.au/ for more details. ]

    The introductory and intermediate courses may have widely differing names depending upon when they were introduced into the school system; a local public system calls the second course "Data Structures", most likely because it was introduced during the Pascal heyday. Even though these two course sound like a close-knit progression of coursework, they actually may be quite different. Two of the local systems teach a different language (Java) in the second course than is used in the first course (VB.Net). The reasons for this choice are not entirely clear. Pascal was introduced into high school classrooms largely via the Apple II series; even the emergence of the IBM PC and its clone still gave access to Turbo Pascal. Not to imply that VB.Net is a step backwards, but the return in the high school classroom to QBasic, VB 6, and then VB.Net seems driven more by the availability of textbooks than other factors. I welcome a more informed explanation.

    Originally Pascal was chosen as the AP Computer Science language of choice. { Here A.P. means Advanced Placement, high school courses with an associated standardized exam; many colleges and universities recognize exam scores and award credit towards degree programs. } For whatever reason, though, that choice was relatively short lived - perhaps driven by a 'pragmatic' crowd that wanted a 'real programming language' to be taught in the high school? At any rate, Java is now the language used in the the AP Computer Science exam. There is talk of changing the exams again to use a more language agnostic format.

    A great many other tools and languages are taught in addition to or besides these, obviously. A smattering of ones that I know of or have used:

    - The TeachScheme project http://www.teach-scheme.org/ exists to provide resources for those who wish to use Scheme in introductory high school and college courses. { And DrScheme rocks.... } I personally know one high school instructor who went through their workshop and adopted their approach and who had good things to say about it. { In fairness, though, he is currently teaching Java due to his participation in an NSF-funded grant. } For those looking for a natural follow-on to Java or more 'traditional' OOP programming, might I suggest having a look at Proulx and Gray's work in
    How To Design Classes and ProfessorJ
    http://www.ccs.neu.edu/home/vkp/HtDCH/ http://www.drscheme.org/.

    - Alice http://www.alice.org/ is getting a lot of well deserved buzz, especially in light of the recent announcement that EA will be funding the development of their next major version (3.0), which will include features from the popular Sims game series. Caitlin Kelleher's work in extending Alice into a storytelling environment has also produced good results, esp

    --
    The Norton Anthology of English Literature, 4th Ed., Vol 2
  50. Programming is not as accessible as it was. by master_p · · Score: 2, Insightful

    Kids 20 years ago switched on their machine, and after a few seconds they typed:

    print "hello world"
    run

    and the program run.

    Today's kids switch on their machines, wait for Windows or Linux to boot, log in, open their IDE and write:

    public class HelloWorldApp {
    public static void main(string[] args) {
    System.out.println("hello world");
    }
    }

    then hit the compile & run key.

    In other words, programming was then much more fun (even in its primitive form) and much less 'serious' than it is today. Getting a few sprites to run on the screen was a few lines of code (mostly sprite data) and a few instructions to generate those sprites on the screen, whereas todays it involves a huge effort of device contexts, video card drivers, DirectX, C++/Java, pointer handling, class hierarchies, interface design etc.

  51. More than ever, just not out of need by Andabata · · Score: 2, Informative

    There are LOTS of computer-programming languages for kids. And a few don't even lose expressive power in comparison with traditional languages. And lots of kids use them. It's just that previously (80's) programming a computer was a requirement for using them at all. Check out ToonTalk (www.toontalk.com). In this animated language, you can program while the program runs, and all your programs are by language design concurrent and distributed - you get a program to run on various computers simply by copying and pasting parts of the code into and from an e-mail. Also, see the Squeak project (http://www.squeakland.org/) or the WebLabs project (http://www.weblabs.eu.com/).

  52. Re:Computers DO ship with basic by Mr+Z · · Score: 2, Interesting

    Erm... And where is this, exactly? I'm certain the Visual Basic runtime's there, but under what menu in WinXP will I find the Visual Basic compiler?

  53. syntax vs algorithms by grahamsz · · Score: 2, Interesting

    I think I got my first programming book for my 5th birthday.

    Back then it was BASIC and I'm sure I wrote some pretty crappy code. The good thing was that by the time I hit university i had 12 years of learning syntax and programming in basic, C, pascal and assembly. That meant I could focus on algorithms and not be dragged down by the dull stuff like making code actually compile.

    I think, from observing my classmates, that those who learned syntax + algorithms at the same time performed significantly worse than those of us who had syntax figured out. It remains to be seen how that will play our in careers - but i'm not doing too badly.

  54. No Programming Tools by Necrotica · · Score: 2, Insightful

    Maybe the reason why learning how to write programs has dwindled because there are no easy, out of the box programming languages to learn. When I was a kid, I turned on my Commodore 64 and voila! It booted directly into a BASIC interpreter.

    Furthermore, there were interesting things to program on early computers. It was fun to learn how to write programs to display sprites, move said sprites around the screen, and maybe play some bad music on the SID chip. There is no easy way to do this on Windows. Hell, I have no idea where to even start! It's not documented well enough for a kid to get to want to take a stab at such a thing.

    HTML is bad, bad, bad for a kid to learn to program with. It's waaaay too forgiving. You can write crappy code and it will still render in browsers. That teaches kids to be sloppy.

  55. If you haven't mastered the language... by r00t · · Score: 2, Insightful

    maybe your language was designed by committee. Has the C++ committe ever said "no" to a feature?

    C can be mastered.

  56. It's not a matter of exposure. by Nairanvac · · Score: 3, Informative

    FYI, I'm 14, and I've begun to see an inherent tendency towards ignorance in computers in schools. Not only that, but they've been taught apparently, to shy away from knowledge.

    At the slightest mention of a technical sounding term, a torrent of insults, "Shut up", and "What the hell is he talking about?" comes at me. The point is that it's not that these kids haven't been exposed enough to computers, it's just that they're not willing to accept teaching. A kid will gladly spend 4 hours playing piddly flash games and browsing MTV.com, but if you ask that same student to take 15 minutes to read a tutorial on HTML, they'll blatantly refuse, and say how that's too geeky.

    Now, I'm not going to deny that computers haven't been made boring in schools, because they have. This is due to the fact that the computer teachers and network admins at the schools are ignorant dumbasses. I once asked the admin at my school why they didn't use Linux on the school's servers, to which she replied "What is Linux?". At that point I almost lost all hope for humanity.

    And, don't even get me started on so called "Computer" class. All you do in there is either a) do math games, or b) play childish typing games. No where in that class do you learn anything about actually making use of a computer.

    Not only dot he students refuse to make use of any technical knowledge, the teachers won't let them. I once had a project I had done, and I had no blank CDs, so, I did the smart thing and emailed it to myself, only to find out the next day that you're not allowed to download any files, at all. So, that was fine, I went home the next day, went out and bought some CD-Rs, only to find out the next day, that you aren't allowed to put any discs into the school computers.

    So, in a nutsheel, kids these days are ignorant,and resist learning, the computer classes in schools are only acceptable for "special" children, and teachers refuse to let students exhibit their technical ability.

    --
    All your reading ability are belong to me.
  57. WTF? Ponies? OMG! by Anonymous Coward · · Score: 3, Insightful

    Those are all good languages, but the most important language to learn is the one you use to communicate with your fellow man. It appears to be english.

    Please attempt to increase your vocabulary and knowledge of literary references. In that way, you can avoid using vulgar, overused expletives to express your emotion. Cuss words certainly do have an impact, and are quite "edgy," but they are used as a substitute for learning a variety of strong vocabulary. I think in the coming years, you'll probably begin to notice more and more how ignorant it often makes the speaker sound, especially coming from your so-called peers.

    Anyway, I urge you to learn other ways to express your emotion, not because the "seven words" are vulgar or inappropriate, but because they indicate so many feelings at once that should really be expounded upon in prose rather than blasted in sharp unspecific staccato.

  58. Re:Computer Classes by Deathanatos · · Score: 3, Insightful

    I, unfortunately, concur.

    Our school prides itself on being one of the best public schools in the state, and we have no notable programming/computer science classes. I believe our school had one when I entered in the 7th grade, as I seem to remember being excited about it, but it's since been dropped. We offer a class called "IMS", but, despite it being in the course description, I don't believe they've done any real programming.

    And people still aren't any better off - I've fooled people into thinking I've hacked into the FBI with a really cheesy any-real-computer-nerd-would-die-laughing web page. On a laptop with no internet connection. You have people ask you, "You mean you want to sit in front of a computer the rest of your life?", or they'll ask you how to do something with a computer that's way out their (or my) ability - people don't understand that programming isn't just about typing code, that it's a certain way of thinking, a way of wrapping your mind around a problem and being able to describe it to a machine in such detail that it can solve it. As I exquisitely tried to put it one very late night: "People simply misunderstand the type of person a programmer isn't."

    It is a shame. I browse and answer questions on programming forums during my spare time, and people post their homework questions in hopes of an answer. What I would give to be able to have homework in programming - they have no idea how lucky they are.

    Everything I know, however, I taught myself. (Sort of a neat thing to say, really.) I have little in the way of peers, and no teachers or guidance - any holes in my abilities will surface later. I pronounced "integer" with a hard g until I heard someone say it. I spelled out GUI, whereas most other's I've heard pronouce it ("gooy"), and I pronounce AVI, where I've always heard people spell it out.

    Though one unintended consequence of bad schooling: TI-83+s. Our school requires them, and their native ability to use TI-BASIC seems to flush out some programmers. (Though some people who have no desire to program still use it.) Those who do generally start trying to make games, or things to solve various equations. (As opposed to those who merely type them in.)

    Teachers tend to trust a student(s) more than the IT department. Some years the IT department was a student. (Ah, the golden years.)

    Perhaps this lack of education will cause a shortage of programmers, a spike in demand, and raised salaries for those of us who know what we're doing. Then again, perhaps all our work will be outsourced.

    But today the answer is still the same. I will not fix your computer. (I mean, I'm a programmer. I break things. ^_^)

  59. Forget programming, what about electronics? by Popcorn+Dave · · Score: 2, Insightful
    The demise of programming is second to the demise of building electronic devices. When I was a kid, you could go to Radio Shack and get electronics kits. There were even stores that carried electronic parts, so that when you needed a 200K resistor, you didn't have to mail order the damn thing.

    Nowdays, there are so few places in Silicon Valley to buy new components it's criminal. Nobody seems to be interested in electronics anymore. There used to be a place that was the size of a Circut City or Best Buy, but it's been out of business for at least 20 years.

    It makes me wonder where the next breakthroughs are going to come from on the hardware side.