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?
Kids are too busy taking pornographic pictures of themselves and having sex with teachers.
But they're not programming computers...
... just look at sites like www.ticalc.org
they're programming calculators like the TI-83 Plus and TI-89
not only that, but they're learning C, ASM, and BASIC... wow!
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.
Having personally experienced the education system of today (sophomore in high school), I'm fairly certain it's because the school system has been seriously degraded from what it was. 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. Many schools have eliminated gifted programs completely, in the view that most of the people going through the education system won't amount to anything even if they are educated. This is a heavily biased view, as a smart student surrounded by idiots, but it is more or less true.
got sig?
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.
more kids are programming than ever these days
most likely due to the fact that computers are much more common for a family to have than they used to be, as well as the fact that information on programming is much more readily available due to the internet.
seriously why was this even posted
Do Clickteam's The Games Factory and Multimedia Fusion count as programming?
Kids don't seem to be learning how to deliver mail in school anymore. For some reason, the school system has started only teaching students how to put the address and stamp on an envelope instead of teaching the students how to run a route. We are still trying to figure out why the educational system has decided to only teach what most people will use, instead of what one profession uses.
Is this a bad thing? Yes, it sucks.
Should we care? Eh, I don't really know if I care or not, as long as I'm not stuck with the "geeks" who don't understand anything about computers.
Do you think the desire to program computers has declined in the younger generations? Yes
If so, what reasons might you cite as the cause? I don't know. When I was a kid. Video games were all the rage, but not that hot. I had a computer that, essentially, all you could do with it was program it, when I was about 5-6 (well, my parents, but they let me play with it as soon as I showed I wouldn't break it). Perhaps I was just lucky in that I didn't have cool 3D video games. Perhaps kids today should be inspired by them, but the technical hurdles to do anything interesting are too high. Perhaps culture has changed in that being uneducated and stupid is now cool.
When I was a kid, I thought than engineering and science were cool. Really, these folks were my heroes. I went to lectures at the local physics lab (aimed at high school and college kids) as soon as I could (I was the only one there with a chaperone, haha). Do modern kids have astronauts as their heroes, or pimps and drug dealers? Do modern kids even think that society gives a shit about them, past whatever age they're able to tell the difference between a heroine needle and a lollipop?
Actually, they're modding games, like Neverwinter Nights. The scripting language is very C/Java like, albeit simpler. There's a tremendous number of creative skills you can learn from the whole thing.
The entry barrier is higher these days. When I was younger just getting into programming, I found a little program called QBasic.exe and I started messing around with it, and I moved on to C++ and all that after a few years.
What do you need to do to get started today? printf("Hello world"); has turned into 100 lines of WinMain()s and WindowProc()s. Maybe it's different in C#, I don't know, but it hasn't been around long enough to make a difference in this case anyways.
Add onto this the complexities of getting of making your software run properly on a limited user accounts, and the fact that the simplest windows program requires knowledge of most of the C language, and I can picture it being very hard to learn.
Although im 6 years out of high school, in early high school we were taught LOGO Writer in IT along with Word/Excel etc etc.
In my final years I took an elective, IT Systems which was learning VisualBasic and programming theory, I loved it, although there was only 12 people in the class.
Everyone uses a computer, but programming can be a bit of a distraction when you have 30 of your friends asking what your doing on Friday night on what ever IM program you have open.
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.
Let them learn it on their own time. Grammar and high school can't even properly teach foreign languages let alone programming languages. The programming teachers in my school had never programmed before in their life. You really think a decent coder is going to take 25 G's a year to teach kids that don't even care about programming?
Better off on their own time where they have a chance to somehow form a good style. Teaching it in HS is just a breeding ground for bad habits.
Some colleges/universities require programming for some science majors. If they need it, they'll pick it up. Anyone who can handle the physical sciences can pick up programming without much difficulty from a book, online tutorials, or their advisors' source code. It's not rocket science *grin*.
We have so much more ease of use than the good old days. If you wanted your computer to do most anything, you had to do it yourself. Now the os and apps are so rich and deep (maybe too much so) that you need to do much less. I bet those word and excel classes cover macros and vba, so in that sense they still program some.
For me thats pretty odd. I would have expected the numbers to improve, being that in the early 90s when I was in grade school, computers were not exactly something other school kids looked up to you about.
I would have though the perception of computer knowledge and not being socially acceptable would have changed a bit since then.
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...
There are still those of us that program, I'm 16 and know Java (6 years), PHP (3 years), VB (5 years), Turing and, although not programming, HTML/XHTML/CSS (10 years for HTML). But fewer and fewer people my age program, I haven't met anyone my age with my kind of experience. In my high school programming class we have an incompetent teacher that doesn't get OOP and most people in the class take it because it's easy not because they care. There are some of us that program, but fewer and fewer.
I've been using a computer since the second grade for gaming, graphics, web surfing, etc. I read Slashdot, Digg, and other tech sites on a daily basis. Yet I can't program for shit; I have no idea what C++ is or any of the other program languages I read about. My friends are the same way: computer literate, but not in the "hard" aspects of it.
Ya, I'm good in science and stuff, but ask me to program anything and I'll break down and cry. You should've seen me trying to learn Ruby so I could code in RPG Maker...
I'm afraid to take a programming class because I might be terrible at it. The last thing I want is to screw up my GPA just to learn some programming skills. For this reason, schools really should teach *some* basic program skills (at least HTML) at the high school level.
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.
Now, evidently, most high school computer classes are about Word (tm) and Excel (tm). Is this a bad thing?
Well, back in the early days there was no Word or Excel for people to take classes on...
Back then, there weren't the number of applications we have in everyday use today, so there wasn't a need for classes and books on how to use them. Instead, due to the lack of applications, we needed to learn to program so we'd have something to run.
Plus computers were such a new thing, and it was something not a lot of others were doing at the time.
I imagine all the folks who take part in robot battles and other robotics hobby stuff will have a similar lament 20 years from now when robotics becomes so mainstream that there's more courses and books on using your RoboButler 3000 than how to build a robot.
Duct tape is like the Force. It has a light side, a dark side, and it holds the universe together.
And most of this is completley correct. I am a pretty big anamoly in my average sized high school, in that I actually know how to program. (C, I bought the K and R book in eighth grade) The only programming that is done outside the eight person comp-sci class is when someone decides to put a HTML break in their myspace profile. It makes things kinda lonely for me.
But it isn't a major part of our curriculum, so that if they finally see it in HS they are very put off by how difficult it is. When they see how technical and exact one has to be simply to make a computer say "Hello world!" (big whoop) they get exhausted. They either become convinced that they're too stupid to do it or the computer is too stupid.
I think you've hit on one of the causes of this phenomenon: programming is not focused on in school. There is very, very little opportunity to do it. If we raised these kids programming computers, they would not be put off so easily. Younger kids can conquer "Hello world!" and would probably be excited about it. They would grow up understanding how crazy and weird programming can seem. Then, when they are working in HS, they could sit down with realistic goals and attain them.
Paul Grosfield - the quicker picker upper.
Comment removed based on user account deletion
This topic reminds me of a short story by Isaac Asimov: The Feeling of Power. I hope things don't get to that point.
Weeks of coding saves hours of planning.
...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.
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.
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 . . .
While I got to the point where I was programming my own games in BASIC, none of them were ever up to the quality standards of commercial software (although they were fun, if I do say so myself.)
If there really is a decline in kids' interest in computer programming, I'd guess that it was because there are so many programs out there that already do most anything kids would want, and they're so easily accessible. Games, CD-rippers, instant messaging, P2P networks, and even just browsing the web. Computers today provide a smorgasbord of options for kids who are, more often than not, conditioned to expect instant gratification. Learning a programming language takes time and effort, and why would anyone want to do that if their efforts would be far lamer than what could be had on a whim?
Back in my day (geez...and I'm only 35), if we wanted a computer to do neat stuff, we had to tell it what to do. Or try to find some other nerd to swap floppies with.
I Blame George W. Bush
... Or is that +5 Inciteful? Hard to tell anymore.
Ah, I await my +5 Insightful mods.
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.
I never really realized that this was much of a problem. Hell, I went to a high school of 200 students in the middle of nowhere -- cornfields on three sides, and such -- and I took courses in HTML/web design and BASIC/Visual Basic there. The year after I graduated, they introduced a C++ class, and I think now they've also added Java and some sort of Flash course. They seem to be doing pretty cool stuff there, and like I said, this is in Bumblefuck, Midwest. I'm surprised that other schools are so far behind in terms of programming.
Kids today don't program because it's already done for them.
Think about it, why did all of you start programming? Because you wanted your PC or your Altair or your Commodore to do something that it couldn't do "out of the box".
Now, these days, what don't kids have?
Whoo, signature!
DesireCampbell.com
In my last year of highschool I'm doing a class which will basically net me a free certification, while leaving me time for important things like the hardest level of maths possible and physics. I'm counting that said computer class will not be noted on my UAI (University Admission Index, the little number that tells me whether it was worth going to school or not)... But I never want to do a job near a computer again because of the class. Constant word, powerpoint and excel trite (Well, not excel once you get to do something fun with lots of formulas) really saps the will to want to go into a computer field. I once started playing around with BASIC a few years ago, and spent a few hours creating the worlds shittiest text adventure... But the thing is most computer classes are based around churning out secretary monkeys as quickly as possible, not anything challenging or interesting (Although we had a brief stint with Maya)
At my highschool, its all about sports now. Not the education. The computer science class at my school stopped teaching C++ or even Java in favor of just teaching Oracle. I don't really consider database programming as an entire years study, is much computer science. When I think computer science, I think assembly programming and getting to know your architecture. I was kicked out of my computer science class 2 years ago, for booting linux on one of the computers. It set the IT department frantic "how did he get past our windows security?", blah blah blah "you can't use a computer anymore". In the long run they got me into a computer security program at a local college so that I wouldn't take courses at the highschool. It's turned out better this way I suppose. In my case, there aren't any programmers at my highschool, except for all the people who think HTML is programming. When people see me carrying around "The C programming Language" in one hand and "Advanced Programming in the Unix Environment" in the other, the most intelligent comment I ever get is "hey isn't that like Linux?". There isn't any incentive for us students anymore, all of us are ranked by our grades rather than our ingenuity. An elegant written piece of code might interest someone, but a great football pass and you're suddenly the school hero. I program because I enjoy programming, but for most students its hard to find joy in programming, and for those who do find joy we are a dying race.
- Aetheral Research -
I'm about to graduate from HS, so I'll give my experience. Most kids where I go don't know about programming other than its gotta be hard. Some people do program their TI-83, including me. For us its interesting; everyone else just wants the program. I am interested in programming on computers; however, there's nothing that I can really think of to go after. I've downloaded the VB, VC++, and VC# express editions from Microsoft, and have all the tools installed on my Ubuntu partition. Like I said before, I just don't have an idea of what to go after.
That's a different area of sick than where I come from, but they're still sick. Prostitutes and drug dealers aren't a problem for people here, but their lack doesn't mean that society cares about you. This society is sick, and anyone who tells you to live up to society's standards is telling you to live up to sick standards. P.S. Rush Limbaugh, the heartthrob of those who tell us that the prostitutes and drug dealers are the main thing that's wrong with America has been arrested for prescription drug fraud._ arrested_and_liberal_blamed.php
http://news.google.com/news?q=%22rush%20limbaugh yields http://www.newshounds.us/2006/04/28/rush_limbaugh
Hindi and a good curry recipe.
Faith: n. -- That human impulse that drives them to steal appliances when the power goes out
One of the big issues is everyone is convinced "I will just take comp sci in my senior year", "I will just learn in college". However for learning programming nothing is better than independently learning, which no one is willing to do.
Computers are all too easy now. My first programming language was assembly on an 8080 processor. It wasn't because I had any burning desire to learn assembly. Rather it was because assembly was all that was available. There were no programming suites available in the late 70's for the hobbyist. (In fact, I did hand compiles of my assembly code.) Nor was there an operating system, or a boxed computer for that matter. You did everything from scratch; the hardware, the OS, and any software you wanted.
Now I see kids who brag about 'building' their computer. Hah. I'm sorry but building a computer doesn't mean going to the store and stuffing a prefab case with a ready-to-run motherboard and video card. Geez, I hand built everything with a wirewrap gun and soldering iron. I even had to make my own monitor by using an old TV set.
I'm not trying to brag here. I'm actually trying to make a point that kids today just don't get the same training that the old timers got. You learned a lot by designing and building a system from scratch. That's something that 99.9% of the kids now will never do and for that they're short-changing themselves out of a wonderful learning experience and the insight on how a computer really works on the inside. It's unfortunate, but today's computer training seems to stop at the windoze logo.
When all else fails, run.
Kids not programming isn't new ime. I finished high school in the mid 90's, and I was the *only* person in my year who ever did any programming, either at school (excluding "computer classes" in primary school where we very briefly (2-3 classes) encountered turtle graphics) or at home.
:) then you needed to learn the computer inside and out. A lot of programming (basic for me... it was in the rom after all), lots of poking round in memory to do cool tricks (mmm, 8 pcg banks for full screen hi-res graphics), assembler if you wanted fast/obscure functionality, hardware hacking (by which I mean soldering, not plug-n-pray-you-can-find-a-driver stuff)... the list goes on.
:). Hence less kids are going to do it.
Main reason - when I first encountered computers (microbee 32k, when I was 7 - most of the people I went to school with didn't start till much later) they were novelties. To be honest, they weren't all that useful, they definitely were not intuitive to use, and they often failed in "interesting" ways. To actually use them, you needed to delve a bit... and for a nerd like me, once you glimpsed all the really cool stuff going on "under the hood", you were hooked. And because the machines were slow, if you wanted to do stuff (usually pointless stuff, but fun
Now, for better or worse, computers are ubiquitous, intuitive (or at least standardised), powerful, and there's a huge ranges of ready made applications to do damn near whatever you want. There's nothing to give you a kick-start into programming so you can, say, make labels for tapes (my first program
Well, that's my 2c anyhow.
I went to a high school for a bit that was on Newsweeks 100 best public high schools. The offerings for computers was either related to television producion or graphic design. It was an absolute waste and anyone who wanted to learn how to use the visual studio that was installed on the computer graphics lab computers along with corel draw were forced to figure it out on their own.
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.
Bah, kids these days.. When I started university I already had Atari Basic (at age 6), 6502 assembler, STOS Basic, 68000 Assembler, GFA Basic, Pascal, BBC Micro Basic, 80x86 Assembler, QBasic, Logo, C, C++, mIRC script, Javascript, Bash, AWK, Perl, Python and PHP under my belt. I claim to have learnt Java on the train home from my first class (Java in a Nutshell had a chapter of Java for C++ programmers).
That said, first year classes are supposed to teach you programming, and if you can learn the skills and come out of it three years later with good marks then that shows a lot. Probably a lot more than starting uni knowing how to program and coming out three years later not having achieved much more. After all, in the industry you never stop learning until you reach management. Then other people learn for you...
One problem with kids not programming is that they might not develop a taste for it until it's too late to choose a programming course - I work with several people who did commerce or science degrees and then found they enjoyed programming. Too bad they don't have the CS background to back it up and hence suck at it (to varying degrees).
When I was in primary school, we learnt LOGO on the Apple IIe.
Around the end of high school, we dabbled in some BASIC on the Acorn and Delphi on the PCs. By then, however, my programming abilities were lost. I then dabbled in some Pascal and then wrote off my ability to program and concentrated on more creative outlets (3D, film making, etc).
It wasn't a good idea taking a C++ class to regain lost marks, especially when the text books relied on a prior knowledge of Java...
Probably the same reason why the US is #20 in the Top 20 Education Systems of the World.
The group of gifted children (8 to 12 year olds) that I was teaching up until last year were programming mindstorm creations! Strangely enough there are a heap of kids out there that are still interested in engineering, science and mathematics. The school that I involved with did things from creating their own tv shows, mechanical marvels (robots, planes, powered carts), electronic music creations and brilliant artworks created using computers and digital camera's. Heck I even got the kids to beta test an interface I cobbled up similar to a work related project i was working on! They give an interesting perspective on how things should "be". The time I spent working with those kids was indeed enlightening and fun. Its amazing how many basic things us "adults" miss because we tend to think from a more holistic point of view.
We played dungeons and dragons for 3 hours.....then i was slain by an elf
It's just changing with the times. Javascript and Flash are pretty easy languages to pick up and the environments are everywhere. They might not be programming in Pascal or C++ anymore, but instead using ubiquitous web technologies to release their creative juices.
Hexy - a strategy game for iPhone/iPod Touch
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.
Some hard stats on this would be good. Certainly there is tons of resources available for the self taught programmer. I find it hard to believe there aren't more kids programming today than there was back when there was one or two pets for a whole school. Not to mention lego mindstorm, PHP, and Python. One thing you can be sure of is that the number of kids using goto statements has declined over the years.
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.
Kids don't seem to be learning how to deliver mail in school anymore.
People have used couriers of one form or another for ages, and never really "delivered mail"-- mail is a substitute for showing up in person to communicate something.
A better analogy is auto shop - a lot of schools used to have auto shops where kids could learn to work on cars, either repairing their own or those of people in the local community. I've been hearing of a lot of those programs going away due budget cuts, even though it's a very useful class and not just for kids who want to be auto mechanics. Kids going into any sort of hands on thing (e.g. machinist) benefit from it, and it can also demystify mechanical things for the "white collar" crowd.
And yeah, I think it's bad when they cut auto shop programs.
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.
this feels like a myspace page.
Ah. I had the Commodore 64 and I remember spending days copying the programs from Byte Magazine and then have my dad go over it because they never seem to work. The thought of making video games made me eventually teach myself basic. Now that I am an engineer, I do find it strange that many of my peers didn't learn how to program till college. I think since kids are growing up with computers, they almost treat it as an appliance and have no interest on what makes it tick. Since there is no "wow" factor, so they just don't care. Its almost depressing how computers don't facinate me anymore. I remember loading my first program off a tape drive, getting our first disk drive (1541) for the C64, the first time I used windows on my AST Advantage 486 we got from Radio Shack, the first time I logged onto a BBS over the phone line, the first time I played Doom against my neighbor, the first time I logged onto the internet via a BBS, and the first time I logged onto commpuserve and used a web browser. I can go on and on. I remember being so facinated by the technology and how every time I turned around, there was something new and innovative. I do think we are heading for trouble because without this facination, I probably would not have become an engineer.
I started with BASIC when I was 10, moved on to C++ when I was 14 and got invited down into my nations capital twice for a school of excellence. At my school, this isn't rare. My mentors before me both did similiar things, and have both ended up going to the IOI. I'm hoping to reach that level but whether I do I don't know.
.NET. Visual Basic is taught to everyone, and those that one to go on to more can just sign up and come after school for an hour and a half, and then go up to our private campsite at the end of a term and write PacMan or Space Invaders or something nice and simple like that. Public schools don't have those sort of resources, and it's sad to see people miss out. Some of my public-school friends have what it takes to become programmers. It's a shame to see they don't.
The problem is that my school is a private one, where we have oodles of P4's with Visual Studio
I'll subscribe to Slashdot when I see a month without a dupe, a typo, or an article the "editors" didn't read.
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!
Perhaps there's no need to learn how to program it - all the software they need to conduct research and whatnot has probably already been made?
I'm turning 18 soon, and while I realise that there probably isn't as many people programming in their early lives, I think there are still some. However, that's not the point.
/.ers were growing up. When something is new and exciting, everyone wants to get a piece of it. I believe that's why many people programmed as kids, and continued to even later. Fast forward to present, and computers are simply the thing that most kids access MTV or AIM/MSN with. There is no awe that is brought about when using a computer, even from me.
What I find interesting is to look at why this is. Going off assumptions, I believe that the computer was all the rage when many
That said, what does the future hold? Can my generation keep up or start ambitious projects like the F/OSS community puts out? Who will program for fun in their spare time, when they don't do it now?
Should we care?
I don't think so really. There are still enough kids interested in it that we don't have to worry about a lack of developers.
Is this a bad thing?
No. I don't think it's as dire as you might think.
Personally, I'll write a script here and there just to do something I need it to do but, no matter how much I love computers, I just can't seem to sit down for 12 hours a day and enter lines and lines of code. But there are people out there that can. I'm not sure the desire to program has declined as much as the desire to pogram for fun has. It's boring and takes a certain type of person (that's a quality not a cut) to do it. We need programmers, if we didn't we wouldn't have linux kernel or even Microsoft (a shame).
Most computer classes in high school teach office applications because that's what needed. High school is to teach you to learn and the basics to function in life. Colleges/Tech Schools are there for further educating in a more specific field. I don't see programming classes going away from colleges any time in the near future.
That which does not kill me only postpones the inevitable.
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.
I find these sorts of conclusions, based solely on anecdotal evidence (individual conversations with professors) highly unconvincing. If anyone wants to know the answer they should do a real survey of high school curricula now vs. 10-20 years ago, or perhaps a survey of alumni who majored in these "hard sciences" vs. current majors. But as it is, I think individuals who did program and whose friends program will conclude that "yes kids program" and individuals who didn't, or who didn't have many friends who programmed, will conclude that "no kids don't program." There's almost nothing to be learned from that.
It's only 'cause 321 contact magazine isn't around anymore and those little BASIC programs aren't avalaible to type in.
I started programming in BASIC on an Apple IIe and IIgs in 4th grade essentially because I had run out of other interesting things to do with the computer.
Sure, I had an office package (AppleWorks) and a graphics program (Deluxe Paint II), and a few classic games (Space Quarks), so it was much "better" than the really early days of home computing. But still, that was about it, and it was fun to write letters, draw, and play the same simple game for only so long. My parents weren't going to buy me the interesting-looking games that were on the shelf, so I started writing programs. And then started writing my own games.
Nothing I did then would have won an award or gotten published in a good conference, but I sure learned a lot of math and programming concepts based on a few books and a bit of adult guidance. Usually I learned something when I had a need for it. I learned about arrays because I wanted a way to store a bitmap for the 40x40 low-resolution graphics mode. I learned a suprising amount about geometry when I wanted to draw a circle; the concept of x^2 + y^2 = r^2 was a bit foreign to me when I didn't even know pi*r^2 or 2*pi*r, but literally my dad gave me the equation and I muddled through enough to get a circle to (very slowly) render.
I still say that experience over just a few years (almost all of my "fun" programming was from 4th-10th grade and about 75% of that was in 4th-6th) had a huge influence on my life path; I have a Ph.D in computer engineering and work in industry now.
I don't really think kids are any different now than before; it's just that they have so many "fun things to do" handed to them that there is less necessity for creative thinking. To start programming for fun in an era of unlimited cheap/free game downloads and unlimited free communication over unlimited distances would take a degree of dedication I may not have had.
And I don't think the "complexity" of modern programming interfaces is at all the problem. A quick google search shows plenty of free LOGO interpreters, and I'm sure the same exists for BASIC. Heck, you could do more fun/experimental programming in Matlab than I ever did in Applesoft BASIC with much less programming knowledge or outside assistance.
Schools near me offer very few good computer classes; which is why I'm switching to a different school that actually offers useful courses. All schools seem to offer extremely basic classes like "Computer Applications" which is mostly Microsoft Office Suite programs and is very easy/basic. The only programming courses offered are Visual Basic(Programming 1) and MySql & C++(I think, in Programming 2). In order to get into these classes though, you must have Computer Applications 1 & 2, which, are useless in my opinion and merely delay the time before you can go to Programming courses. I said "somewhat" due to the fact that most middle-class Americans can buy a book on programming from Amazon.com. Though not all people can learn only by reading a book and some of the books are quite costly.
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.
I started programming because my computer came with a copy of BASIC.
Coder's Stone: The programming language quick ref for iPad
The level of education in US highschools and the first years of most colleges is one of the lowest in the developed world. In fact, we are already considered a developing country in terms of basic education. A reasonable education budget would help reverse the slide and propell us to the top again but with the current government wasting our tax dollars on ever increasing military spending and "homeland security" our intellectual and economical future looks rather dim.
Let me just say, that I think firstmost that this is unimportant. I'm a graduate student in physics, so I know a bit about this. But most people in my field will agree that knowing the physics is a lot more important than knowing how to program. In fact, computers are often more of a hindrance to that education. Students that learn to rely too much on solving problems on the computer end up missing out on some of the skills they really need to solve problems and actually *UNDERSTAND* what is going on. Instead they just trust the computer to give them the wrong answer, without any sense of whether that answer is reasonable. I do think that programming is a useful skill, and that undergraduates should get some exposure to it. However, they don't need more than relatively basic programming abilities to do any possible data analysis they need.
The crowd here may not like this, but the *really* good programmers that go into physics tend to focus on it too much. They are looked down on, because they end up becoming 'mechanics' rather than thinkers. If we're talking about academia, this basically dooms you to a life of being a research scientist at best.
Remember the most important point. Computers are just a tool to be used to get to a result, and the results needed by most any scientist require rudamentary programming skills at best.
--
Just on a personal note, I never programmed at all until my 2nd year of undergrad when I needed to learn Fortran to modify some existing simulations. Now I've had a lot of exposure to Java, C, Python, and several other languages. Ya know what? I personally think I'm getting a little past the boundary of healthy balance.
----------------- Oink. Moo. rarr! -----------------
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
The problem is a lack of what should have been being taught decades ago. Abstraction Physics.But instead programming languages continue to be the thing to learn and thats a moving target, ever changing...
... well... us humans. Elements or facets of abstraction physics include the actions of abstraction creation and use, such as:
The sort of thing that would remain useful like learning how to do math rather than just learning about all the advanced algorithyms others have done.
The ''physics of abstraction'' is of an outside looking in perspective, where rather than creating another abstract language (inside), instead sees the underlying action machinery enabling the ability to create languages (outside looking in). Since Abstraction is a human mental characteristic, there is an inherent subjectivity to the topic. However, through the use of computers we can be more objective about abstraction physics. See: Abstraction (computer science)
Abstraction enters the picture of computing with the representation of physical transistor switch positions of ON '1' and OFF '0' or what we call "Binary notation". However, computers have far more transistor switches in them than we can keep up with in such a low level or first order abstract manner, so we create higher level abstractions in order to increase our productivity in programming computers. From Machine language to application interfaces that allow users to define some sequence of action into a word or button press (ie. record and playback macro) so to automate a task, we are working with abstractions that will ultimately access the hardware transistor switches which in turn output to, or control some physical world hardware.
Programming is the act of automating some level of complexity, usually made up of simpler complexities, but done so in order to allow the user to use and reuse the complexity through a simplified interface. And this is a recursive act, building upon abstractions others have created that even our own created abstractions/automations might be used by another to further create more complex automations. In general, if we didn't build upon what those before us have done, we then would not advance at all, but rather be like any other mammal incapable of anything more than, at best, first level abstraction. But we are more, and as such have the natural human right and duty to advance in such a manner.
Abstraction action constants:
There is an identifiable and definable "physics of abstraction" (abstraction physics), an identification of what actions are required and unavoidable, in order to make and use abstractions. Abstraction Physics is not exclusive to computing but constantly in use by
0) Defining a word to mean a more complex definition (word = definition, function-name = actions to take, etc.)
1) Starting and Stopping (interfacing with) of an abstraction definition sequence.
2) Keeping track of where you are in the progress of abstraction sequence usage (moving from one abstraction to another).
3) Defining and changing "input from" direction.
4) Defining and changing "output to" direction.
5) Getting input to process (using variables or place holders to carry values).
6) Sequencially stepping thru abstraction/automation details (inherently includes optionally sending output).
7) looking up the meaning of a word or symbol (abstraction) so to act upon or with it.
8) Identifing an abstraction or real item value so to act upon it.
9) Putting constraints upon your abstraction lookups and identifications
-When you look up a word in a dictionary you don't start at the beginning of the dictionary, but begin with the section that starts with the first letter then followed by the second, etc., and when you open a box with many items to stock, you identify each so as to know where to put it in stock.
These placed into a logical integration for versatility and exception handeling provides for a "Virtual Interaction Configurat
My wife teaches math and computer science at a local high school. The AP Computer Science class uses Java (used to be C++). There are two AP Computer Science tests A & B which correspond to one and two semesters of college programming classes. Not all schools in the area offer computer science classes. It mostly depends on the state of the districts budget. Schools in this area depend on property taxes for funding and property tax levies pass only about half the time. 'Frills' like computer science classes, AP courses, music, art, etc. are eliminated when the districts get into financial trouble. Here's (http://www.collegeboard.com/student/testing/ap/su b_compscia.html) a link to the AP Computer Science A exam web page.
[Insert pithy quote here]
No, really... What teaches you the appreciation of the true meaning of good programming is under-powered hardware (for your task, of course) and hardware in real life will always feel underpowered if you ambitious enough.
You start coding at low-level, then learn that simple change of an algorithm helps more than all the lines of assembly code you sneaked into your program, you know...
Of course a PC which can run Excel under XP will not give a kid that challenge, but a good one will discover Mindstorms/STAMPs/PICs/FPGA ref. design boards/etc., and go from there.
I can only wish I'd have toys like this when I was growing up!
Paul B.
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...
I started on the Commodore Pet, too (they could have owned it all, bastards). In those days, the only thing you could do on a computer was program, so anyone drawn to a computer was by default drawn to programming. The only thing I remember about those early days was something about the power of code and logic to make something happen on the screen.
job security
The high school where I work has a math department but no CS department. The only computer classes, outside of the digital design classes the art department runs, are keyboarding classes that use Mavis Beacon(TM). The English department uses Word(TM), and some teachers allow the students to use PowerPoint(TM) for their reports, which I think is obscene.
When I was hired, I offered to teach a LaTeX class, but later, it was cancelled by nervous school administrators. I used Python in a BC Calculus class I taught, to show how power series converge, and I was reprimanded by the head of the math department for wasting class time. I offered to co-teach an Inform-based interactive fiction class with a creative writing teacher, but it was voted down by the curriculum committee.
The senior teachers and administrators at my school are mostly Baby Boomer technophobes. They realized they had to learn how Microsoft Office(TM) worked enough to do their jobs, and learning that much was such a horrible experience for them that they never want to learn anything else about computers ever again. And they project their fears and antipathies onto their students. The students are clamoring for programming classes, especially game design classes (which I would probably teach through PyGame or something similar), but the administration would prefer to flatly refuse. The media literacy classes at the school ignore the medium of web pages, even though our kids probably read more text via a browser than via a book.
The kids want Linux classes, Python, Scheme, C(++), LaTeX, HTML, and other computer classes, but the school insists on its crappy Windows XP (TM) system, with Outlook webmail, with one lone MSCE and his uncertified assistant running the 200+ computers at the school. This is a private boarding school with millions to spend. I've had enough. Next year I will teach CS somewhere else.
"Indeed, it is wise never to consider any form of electronic data as final." --Arnold Robbins
Think about the amount of kids who programmed back in the day, it was a rough sliver of the population, but if you looked on BBS's or usenet, you could find them concentrated. Look on irc, there are some places where channels are filled with 30+ kids under 20 that have serious experience in coding. As much as everyone hates hackers with a diabolic passion, those who make some of those programs are quite young, and have a knowledge of windows internals that rivals most. There are still many kids who are fascinatingly smart.
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.
I'm 17, and have been programming since I've been eight. I'm going into Computer Science for college and have already been taking college courses for programming. I love doing it and have for a long time. I took simple (far too simple) programming classes in high school and surpassed the teacher and all the other students easily and quickly. Unfortunately, I found this year there wasn't even enough students interested in programming to hold "Programming II" (Visual Basic 6, ick). I remember when I came in the school in 9th grade they were actually offering a course to teach for the A+. Wish I could have taken it.
I am a sophomore in high school. I am in the top 1% of my class and had an average IQ (between tests) of 130 2.5 years ago. I am about to compete in the FBLA Nationals for multimedia presentations. Oh and I know some programming.
Programming in HS DOES still happen, just on a smaller scale than what it used to be I believe. I've been programming heavily on the TI-83/83+/84/84+/89 since 7th grade. I use it mostly just for simplifying work in other areas of study, namely math. It was not forced onto me, I took it upon myself to learn. Sadly, I am in the top percentile.
Most students could care less if they failed or not. I am absolutely not kidding about this. It is horrible to witness. They may never know the joy of programming. Although some classes are offered in my school, they are very basic, literally. We can take a "Programming" course where we learn how to copy a tutorial from a book into Visual Basic. That's about the extent of it. Anything past that is above and beyond the call of duty.
I have taken it upon myself to learn HTML, BASIC, TI-BASIC, CSS, some PHP, some C++, some Java, LUA, some Actionscript, and a few others I can't think of. They have helped me immensely in everything. I can actually say I see life in a different way. Things seem to have become more organized into functions and variables. Structure is nice to have.
But once again, the education we DO receive is very rudimentary. I'd love to learn more about it, but it is simply not offered. I plan to become an MSCE by the year's end, and Cisco certified by the end of my senior year. I have been thinking about taking CS in college, but that may not fit into the budget without scholarships, sadly. I plan to eventually go into the network administration field of work.
Long story short: yes, but not on the same scale. I wish we all sill had to learn COBOL, but I guess that is just the cycle of life.
Honesty may be the best policy, but by process of elimination, dishonesty is the second best policy.
The furthest I've seen kids go is to produce a quick application in Visual Basic that will do things like take input and print it out in some predetermined format. Maybe somewhat more complex than that, but nothing beyond an if/else statement or maybe an occasional while statement. They certainly don't take advantage of the fact that Visual Basic is object oriented (do they know what that means?).
In my school, for all I know (I've tried to re-assemble an computer science team for the school but no avail), I'm the only one that actually knows what a class is. And I don't mean classroom.
As to why, I really don't know. I don't think it's the "nerd" image that's associated with computer programming, but I really don't fit into that "nerd" image, and the other kids that have a basic interest in programming really don't either. Our school offers a Intro to Computer Programming course which basically teaches kids BASIC - but I don't think it goes past for loops, and if it does, it doesn't go much further. This is a semester course for 90 minutes a day?!
Before, the programmers in our school took Computer Science AP - and that's how they got good. But right now, not enough kids sign up to take the course for them to make it happen. So it's the lack of computer programming in the high school is self-perpetuating: not enough kids aren't interested, so no one gets exposed to it.
I don't consider myself an expert programmer by any means but I do have a rudimentary knowledge (enough for the AP test anyway) and I also have some experience (various school clubs ask me to write programs for them).
Anyway, to me programming is problem solving. Making algorithms to solve problems. Other kids see it as a way to trip up their friends or impress/piss off people ("Wow, how did you load 5 gigs of horse porn on my computer??") - which is the real problem in my opinion. Sometimes I feel like I'm the only one that gets a rush from solving a difficult problem - most kids will just give up if something is too difficult. Anyway, that's my two cents.
16-year old high school student here, I'm proficient in BASIC and C#, and develop small C# programs on a daily basis.
Private School? Chances are if parents found out that Linux was being taught they would ask why resources are spent on that instead of something with real world use. In this case, it's the money of the parents doing the talking. At this point in time what percentage of people (going across all careers) will use linux in the workplace, what, 1%?
----------------- Oink. Moo. rarr! -----------------
I was fourteen a month ago. I take programming VERY seriously. The problem is that young people like myself spend too much time on the "important" things, and not enough time cultivating our inner programmer....
Well, the kids I work with certainly do, at least some of them.
Right now, I'm working with two kids that are capable of writing their own C code for use on PIC16 and PIC18 microcontrollers, optimizing routines to minimize memory footprint and excecution speed, and know the C language fairly well. They also understand basic algorithms and concepts like PID controllers, event loops, and interrupt routines. Yeah, most of the hardware and software tools are pretty advanced compared to what I had to work with at their age (in my case, spending my spare time with sector editors and assembly manuals defeating copy protection on Apple II games...), but I'm rather impressed with what they are able to do. They know how to do basic hardware hacking and soldering. Most importantly, they already know how to think like programmers.
Granted, I'm the programming mentor for a FIRST Robotics Team, so I'm only working with the kids that already have an interest in Robotics, but I'm generally impressed with what these students can do.
And, considering that every time I go to a competition there's usually half a basketball arena's seating worth of other kids that are interested in robots (each of which is interested in either the mechanical, electrical, or programming aspects of a robot), I'm actually not all that fearful for our future.
I graduated from high school 2 years ago, and am currently a CS major. I took two years of programming courses (one year of random C++ and Java, plus AP CompSci), taught by a fairly competent math teacher. I actually first started with BASIC in 5th grade, and in 7th grade got my hands on a copy of Visual Studio. One of my suitemates did C++ independently in high school, and is now a neuroscience major. Several of my friends in high school who are now Computer Engineering and Electrical Engineering majors did the same, and programmed independently.
The real issue is not whether someone is willing to teach it to high schoolers (programming courses were electives for my school, so we all wanted to be there), but whether they themselves know it well enough to teach it. Programming and computer science were not as prevalent when many of the current high school teachers attended school themselves, so many of them did not have an opportunity to learn it.
What it really comes down to is that the technically inclined will find their own way - most of my friends who programmed in high school did so on their own, before they even got a chance to take classes.
#!/bin/bash
a) they'd rather be script kiddies
b) they're on myspace
You're all something else. 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. I've been to about three highschools in the last four years and not ONE of them, including a pretty upity private one, offered a class on programming. They've all been slacked because the money doesn't roll in. Get off your high-horse and offer to teach the kids if you feel so fucking high and mighty. Thank you.
A lot of people take for granted that kids starting programming early is the only consideration. Sure it's desireable to foster an interst early on, but I would submit that it might actually be better for them to wait a while. In my case, I did a few simple things early, on my own, on my C64 and the school's Apple II, but I didn't start programming until my sophomore year in college, and I quickly passed most of my peers who programmed for years. It is more important to develop a foundation of mathematical maturity, writing (in natural language), and general reasoning ability. Once these skills are in place, one can quickly pick-up programming, and be in a better position to understand things like recursion, regular expressions, context-free grammars, ADT's, etc.
Linux : Hotrod
Sure, only a small percentage of kids are programming in high school. But why is this a problem? We only need a certain percentage of our population to be able to program--even in tech fields, most workers function fine just using software tools instead of making them themselves. Instead of looking at the issue as a decline in kids programming, just look at it like it is--something that was new became a popular fad and now, 20 or 25 years later, it's not seen as so new and special, so only people who are truly the types to have an interest in it are taking it up. I know a lot of people who took up programming in those fad years, and though many of them are still working in computers, most of them are doing it for the money--it gave them a great opportunity to make a lot, but the love of the field is long gone. Two among the many had an intellectual mind-set that truly matched the challenges of programming, and those two are still finding fulfillment in the field.
Is it bad that schools teach kids just to work in Word in Excel? Sure. In the university where I've been we actually had to learn by heart the history of DOS, such as when hard drive support was introduced and other nonsense. Can you imagine? This was at a time Windows XP was the norm.
Now, regarding whether kids program. Kids used to program (me included, on my Apple II, ah good old times..) because this was the only thing you could do on a computer in those days.
Want to write a tune? Wanna draw a picture? All I had is DOS, so I had to cod my own music sequencer and drawing programs.
At the same time I bet not many kids back then were modding their TV-s and ovens, so again, it's not that kids are dumber these days, just programming is less necessary with the current advancement of software to get casual work done.
What we can see nowadays is plenty of kids coding HTML/JavaScript, that's of course much higher level, but so is AppleSoft Basic from the 1980-s and even assembler, compared to hex sequences printed on punch cards, isn't it.
Programming is an useless subject to study for the sole basis of programming. Most good programmers I know, program because they see a neat problem to program for. I program because it has to be done in order for research to occur. Don't give me wrong I love systems, AI, and theory but programming just for the sakes of learning programming is kind of useless. Schools have lost sight of how fun programming can be or a challenge to solve the hard problems (or at least make it seems like a hard problem). My main complaint actually isn't that programming is not being taught, but new languages are slow to introduce themselves into the courses. For instance, Java and C# have many of the new language functionality believed to be impossible in earlier languages. They also allow programs to be written in half the code and one tenth the time. Therefore, it logically follows that the amount you can accomplish and fancier products with high level languages far out stripes what you can do with older languages. It is my belief that if newer languages are taught then the interest in programming would increase, because the products of the course is more apparent. But, this is just me.
At my old HS they started changing all the Computer Science courses into Information Technology courses.
They removed most of the programming and replaced it with more general computer knowledge.
I was lucky because my class still had programming but it wasn't part of the curriculum anymore. All the other schools in the district didn't have programming and the other teachers felt it was too hard for the students.
This started near the dot-com craze where a lot of students took IT because it was the big thing then.
They brought in a gifted program when I was in Grade 8 (8th Grade in the US). They put me in it, but I asked to get out after a few weeks. It was just me and 2 or 3 other kids in the library doing projects. Which was okay -- but _all_ my friends where in the "normal" class.
When I went back to my old classroom, my friends said they were glad to have me back. How great is that?
(Note: this was in a Canadian public school. I'm not sure how it would compare to a comparable American school. For what it's worth, I ended up at an American Ivy League anyways).
I work with kids and tech everyday, and I can tell you definitively that there are two primary reasons for this:
1- As far as kids are concerned, computers are now toys, not tools. Even the "upper crust" tech kids I work with see them this way primarily. The primary uses of computers are for consuming media, playing games, and socializing. All the tools to do these things already exist, so there is little impetus to create something new unless you are into computers for their own sake.
2- 99% of the "technology" classes taught at school have nothing to do with the technology itself. They're all about how to be good little Office and Dreamweaver drones. It's all about using the computers as an office tool, nto the tech behind them. So, this is in direct opposition to #1, isn't it. Well, I am _constantly_ asked how we can make something easier / simpler / more fun. Even when using them as a tool, people still think of them as toys, and expect that using them should not be hard, which in their world translates to "requires thought".
Those two things combined make it so that by and large people who are not interested in computers for their own sake never even consider writing a program themselves. It just never enters their consciousness until they are out of HS, and the educational system is doing damn near nothing to fight this, in fact, they are _encouraging_ it.
That leaves the "computer geeks". Well, 99% of them are the kind where if it can't be pointed and clicked, it must be impossible. A lot of them talk big about running Linux at home and blah blah. Most of them have it installed on a box that sits turned off next to their "real computer" that they use to play Counter Strike. Of the few who actually _use it_ for anything, most are running a special firewall distro that has a web interface. That hardly counts.
Some other interesting bits. In order to meet a percieved need at my HS (about 1000 students) for some "real" CS content, I started up a program for the "high flying" tech kids. I setup a sandbox server, gave them shell accounts, and I am there to help them program and basically do whatever they want on it in terms of a project. Of the 6 that were interested initially, 4 hung around. Of the 4, 3 are doing webby "I learned CSS" and "I got phpBB working" class stuff. ONE is doing anything that even remotely resembles computer science.
I really think that this is largely because the wonderment and accessibility of computers has been so hidden by the glitz and hand-holding. How can they explore options that they never even know exist? Hopefully we can catch them younger and still get that spark started because it gets quashed by mainstream ideas about computers. Hopefully in the next school year, I'll be able to have some intro to programming classes at the middle school...
If only Wargames were made in Yu-gi-OH! card game format...
~ slashdot.org - Where some of the world's greatest minds come together to scrutinize grammar.
At least not by our peers. Grades are kept secret so that we don't have self-esteem issues, at least that's the recent excuse. Meanwhile in Japan the grades get posted and the kids with the highest grades get kudos from their peers, and those with lower grades wish they could be like them. Meanwhile, back in the United States, those who devote their free time to athletics and are good at it get supported, and there's a mix of wishing to be like them and wishing that wasn't the reason they getting all the attention.
I too programmed in grade school but back then computers themselves were very novel AND didn't do a whole lot out of the box. These days you can download anything free and legally to do just about any imaginable function. Add to that the fact that you can write your own programs is rather mundane, whereas back in the day this was a new and exciting concept - and it is not difficult to see why kids today wouldn't want to write their own programs.
http://freebasic.net/ is much easier to program in, and comes with lots of wizz-bangy libraries and examples to use them!
It's because barriers to entry in the comp sci field are so f'ing high anymore. Think back, I mean really think back, to before you were a programming god (hard, I know). Chances are Java was not big yet, QBASIC and Pascal was taught in high school, and C++ was *the* language in college. Object-oriented programming was *hard* to get, much harder than pointers, but once you got it, you could be assured that you'd be in a great field, making good money, working on intelligent and cool things, likely on a single platform. Now there's so much buzz, so many languages, an acronym for everything (even AJAX -- please?), an API of the month, and so many aspects of comp sci, who the hell would want to go into the field? Couple that with schools' insistance on pummeling you with two years of physics, calculus, and random bs electives before you get your hands on some real programming, and you've got some sparse numbers of comp sci majors by Junior year (don't even start about the mandatory 3.0 GPA requirement by mid-sophomore year at any decent school). Kids are OVERWHELMED. When you're in high school and college, and you're worried about making the "right choice," you want to make sure you'll "be alright" when you get through that 4+ years of college. That equates to knowledge that'll last you more than a month (before all the recruiters say they're looking for a new acronym), a shot at 'mastering' something, and fulfillment. Oh, and uh, you might want a girlfriend, and to drink and enjoy yourself in college, and some of your study-time might be taken by a part-time job to pay your bills anyways. So when socially-impared and arrogant professors gloss over complex subjects with the attitude of "if you can't learn this on your own time, than you shouldn't be in the program," then you just might bail on the program.
Step out of the perception of well, I know everything now, and HTML is easy, we need to teach these kids the 'real deal'. HTML is HARD compared to many other things school kids may be hobbying with right now -- and put yourself in the perspective of a kid who can choose between comp sci, and *other* fields -- there ARE other attractive fields. If you want to do web apps, sorry, you don't need two years of physics and calc II and III to do it. You might want a lot of electives though on digital imaging, Java, Perl, C, SQL, and project management. They need to bust the field up into several fields -- and I don't mean "information sciences" vs. "computer science" -- if you want any hope of a major in it meaning anything. If you want to graduate from school with some competency in your field, you can't choose comp sci anymore.
In highschool I have yet to meet a computer teacher that is a trained programmer, other than self taught. Most are business/science teachers that get the job to try to teach kids to program while most kids goof off.
The best teachers within highschools are senior students. I was a peer tutor in a grade 10 coding class (while I was taking grade 12 programming[java]) that was learning Turing. The teacher the first day gave me a week to learn the years cirriclum including learning Turing which I had never touched before.
I marked papers, and helped the students find there mistakes in there code.
I hope they learned as much from me, as I did from them.
in middle school I learned BASIC for the Apple IIe
in high school, I took "emerging computer technologies" in 1993. here I learned about hypertext.
the teacher hadn't a clue what it's applications were(she maintained it was used for a presentation to someone). we also learned about video capture and editing. computer networks were never mentioned.
my other computer class was on a macintosh something or other 40MB hard drive. My accomplishments in this class were regarding being able to play a modern game.
not once in all my high school years or earlier, was I offered a class in programming. or anything involving a PC. for note, I graduated in 1995.
had I been tought about computers by someone who knew what the hell they were doing, I would be a dot com billionaire right now.
now, I did have a commodore 64 since I was 5. in all that time, I never knew about computer programming. My brother learned to program it though, and he now turned out to be an EE.
my father was a tech for Data General for 20 years until they got looted by EMC.
so I have an extensive background in computers. but never the slightest hint about programming. still to this day, the only programming I've ever done has been the classice convert temperatures F to C and C to F in the C language.
They're using their grammar skills there.
Hell, you seen these kids just trying to write English? snprintf() is worlds harder to manage than, say, the word 'theirs'. They haven't a chance!
H1B, come to papa!
Sure they're all crappy graphics but they were exciting "real" games in their day that a geek-kid of the day would be proud to show his friends. And programming such a game gave you a real option to extend your games.
These days you'd be laughed out of the school for showing such crap graphics. The amount of stuff you have to learn to program up a realistic alternative to XBox or whatever is too vast. It takes programming a game from being an afternoon's exercise to a 6 month learning course on 3d modelling etc.
If you want to encourage kids to experiment, you need to give them a more constrained environment where the feedback cycle is far better(eg. Lego Mindstorms).
Engineering is the art of compromise.
Being a senior in high school who has been programming/interested in computer usage other than simply using programs for a number of years, I believe that many of the problems amount to teachers not showing the interesting side of programming and computer science. In my high school there were three computer programming classes, two that used pascal and one that used visual basic. I took the first one before taking classes at the local university, and my experience with it was that mixed in with the serious students the teacher had students who were taking the class only because they needed an "arts" credit and didn't care. Thus, he never went into the details surrounding what we were doing and rather just had us do assignments that we never elaborated on. Later on, though, I realized that the man had a wealth of information and interesting ideas when I came up to him to expand on what we were doing. However, it's hard to expect students who don't know they might be interested in something to come up to a teacher and ask for more challenges or another way to solve a problem so that they might learn more than they have. There were kids in that class that did eventually take the higher classes, but not having any advanced classes (and no self-motivation to ask to take college courses), their knowledge in programming and computer science died out. A greater tragedy is that now my school doesn't even offer the classes, so there would be no way for a student to find out they might be interested in programming. Thus I believe the reason so few kids are programming is because they don't know they can, or they don't know anything about it and no one is doing anything to help them. Not every kid can sit at home and read dry 1000 page manuals, it's the school's job to give them an opportunity to be taught and learn something they might find they love.
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.
drugs.
twentynine.us
I am sort of "on the edge", here, generationally.
I was born in 1985, I started using computers at five. At the time, the options were mostly DOS or Mac. I learned both systems like the back of my hand--especially DOS. (I only had an opportunity to use Mac at school.) Because DOS involves a lot of "programming-lite" type syntax, the next natural step was for me to dabble in BASIC using some texts my dad had from his days at the Navy post-grad school.
I also was on the internet earlier than most persons my age. I started learning HTML immediately. With programs like Front Page, and most persons making their homepages with Blogger or LiveJournal or (*shudder*) MySpace, etc. there are fewer reasons to learn anything than the most basic HTML tags.
In any case, I have this collection of experiences that is more likely to be recognized by geeks a few years older than myself. I feel "computer ancient" compared to most my age. The idea of programming never enters most--even geeks--simply because it is no longer necessary to getting along with a computer. You don't have to go back into DOS anymore. Heck, I don't even mess with the terminal as much as I used to in most Linux distros I toy with. (I have never become anything more than a casual Linux-user.) However, this isn't the only problem...
Most high schools offer programming classes in older languages. Visual Basic. C++. PASCAL. And so on. One of the most popular programming classes at my school was the one that worked with JavaScript, simply because it was more useful day-to-day. Imagine what it would be like if high schools actually taught--lets's say--PHP. Or even LaTeX rather than Office. It's hard to see the worth of VB or C++ with what you learn in school. Many geek-inclined sorts I know my age didn't learn to program until they learned they could shortcut themselves in AP Calc by knowing their TI-83 inside and out. Let's face it: Basic C++ or VB has little application unless you're going to take it beyond the classroom level. Sure, my souped and super-violent version of "The Snake Game" was fun to make, but completely useless.
I'm not a programming geek. I'll even venture to say that many geeks aren't: the association of geeks with programming is largely an artifact of programming once being necessary to use a computer with any degree of competence. I saw little point to the programming classes I took in high school. I took them because they were "easy As" and left me with free time to read online. There are lots of persons like that my age, who didn't have my amount of early experience with computing.
I have not had to employ programming (outside of using LaTeX to type up my papers, and I hardly consider that programming in a "full" sense) in my work in either of the hard sciences I study: geology & physics. I've used programming in math and in philosophy, but not in the hard sciences. Also, considering the number of students who go into the hard sciences in hopes of a "good degree" rather than a love of the subject in-itself, it should not be surprising that many have found no reason to learn programming.
I started my programming career in middle school but I never got very far...maybe I was lazy but finding the docs and getting things to work never went very well for me. I got myself a few hello world programs in a few languages out of the way....but other than that my programming was slim. Now that I'm at a University I have taken a couple of programming classes (having no purpose in my major...just for fun) and I'm really happy I did. I always wanted to learn to program it just wasn't easy enough to get my feet wet. I'll probably continue playing around...though I'd never consider it as a major or career...being a code monkey just doesn't sound like fun.
-- Checking emails and kicking cheats `till the day I die.
When I was young (early 80's) kids who were interested in programming were a minority, so it's no different now.
All I know is that all the code examples out there are for older versions of Visual Studio and must be "converted" to work with the new, and then Visual Studio must be told what libraries the program uses.
You've hit the nail on the head. Back in the day (heh) when you turned on the box it just sat there and blinked at you. period. You either had to shell out the bucks for a cartridge game, (or if you were lucky find a disk based game) or you had to program the thing. Otherwise it was a box.
.02
Couple that with the manuals that came with and a subscription to C64 or whatever they called that mag. and you were not only forced to learn but were given the tools to learn as well. I can remember hours of typing in BASIC code from the back of the magazine to get some game to work. If it didn't work, then you hard to parse through the whole thing and figure out what was wrong and fix it. Even if you typed it in right the first time, you still learned by osmosis.
And there were some really cool projects in the magazines, too, beyond games: life, a 6510 assembly compiler, along with a brief tutorial, a weather tracking database that would make reasonably accurate predictions, an AI project that responded to your questions and would "converse" with you. All kinds of really great stuff.
Compare that with todays situation: most everything you could want to do has already been done. And, unless you give your kid a CLI only linux install, the distractions are too great.
My plan for my kids is at around age 10, they get a computer with linux with no gui. I'll teach them how to get into a language interpreter for something like LOGO, or BASIC, or whatever, and then let them at it. When they figure out how to install the GUI, they can have it... Until then, they have to figure it out for themselves. I'll help them write a simple text editor so they can do school papers etc. Hopefully, over the span of a few years they'll progress through the levels of computing until they are at the current level. Then, if they choose to code, great, but if they don't at least they'll understand what's going on under the hood.
my
man, I feel like mold.
So no, it would not surprise me that kids these days don't program. Most of the "geekier" ones may get into some sort of HTML, and maybe some sort of scripting (javascript) perhaps though.
smash.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
I am just wrapping up my chemical engineering degree at a top-tier US university. While we certainly have specialized tools to solve engineering problems, Excel was highly stressed.
The rationale was this: no matter what company I may be employed at, I will ALWAYS have access to Excel. Therefore, we were encouraged to leverage the built-in VBA to write algorithms for problem solving. Sure, we learned FORTRAN and some other languages, but Excel is arguably the most important in terms of real-world engineering work.
From my perspective as an engineer, I don't fault the school systems at all for pushing Excel. It's much more powerful than you may realize. I would hope that high schools *really* teach Excel and its VBA scripting capabilities. These experiences could seed further work in the more traditional languages used by computer science students, while also giving non-CS high schoolers a good grounding in basic computer programming.
I went to a parent-teacher conference recently. my 6 year old was identified as a TAG (talented and gifted). the teacher coordinator was very helpful with many useful hints for his development, but i cringed at one suggestion. she wanted him to "Powerpoint" so he could be confortable giving talks to his peers. i would like him to excel in many things, but "Powerpointing" isn't one of them. besides, we only run linux in this household ;) i look forward to suggestions in this topic about programing for kids. with a linux box
sort of off topic, but nintendo Brain Age is alot of fun for the both of us. how can i make programing just as fun? i also need to have him touch type so he won't end up like his grandfather (hunt and peck).
Supreme executive power derives from a mandate from the masses, not from some farcical aquatic ceremony.
those who voluntarily choose to major in hard sciencesenter university never having programmed a computer
My two son's, one is a freshman in high school, and other is in 7th grade have had nada experience with programming. Mostly, at least around here grade school is still Apple computers and then they get exposed to the PC's in middle / high school. All are based on MS products, and geared toward's learning IE or Firefox, etc. Nothing specifically geared at programming, which is a shame. I didn't have PC's when I was in high school but we'd borrow the Apple IIe's on weekends (rented a room from my old english teacher) and have programming battles, play star trek, etc. Way cool at the time!
Life was hell, then I discovered Linux...
I have a PhD in CS. I cut my teeth on the PET and the Vic-20 starting around gr 4, and a TRS-80 CoCo later. After about Gr 7 we had a computer in the home, but I only used it for games. No programming. In high school I focused on math, science and music, and really knew nothing about modern machines or programming when I started my B.Eng.
If I were sitting on a university admissions cttee, I'd certainly accept the core of students who got good marks in their computer classes, but I'd flag kids with top marks in math and music as the ones most likely to succeed. Good math skills mean you can think algorithmically and systematically about a problem. Good musicianship implies that, given a certain set of algorithmic constraints, you can think creatively and express that creativity. There is a quote attributed to Steve Jobs (whether he said it or not I don't know): All the best programmers I know are musicians.
If you've got to choose between a high school programming class, and your school's music program- my advice is to take the music classes.
$0.02
So long, and thanks for all the Phish
Kids nowadays see computers everywhere. Computers are like refrigerators to them. Kids get what they want from the computer and leave. There is no novelty in having a computer anymore. And being a computer programmer is about as enticing as being one of those guys who fix Maytag washing machines. The good old days of that neat new computer thingy are over.
Perhaps, long ago, people were excited by the novelty of a new fangled device called a television and wanted to know more about electronics because of it. Do you feel that way today when you turn on the TV? I doubt it.
Those of us who use computers from the programming side see the computer as a vehicle for our creative ability (plus we get paid). Kids today see it as a tool to serve them. They are spoiled. But that's what you get when you trust the government to educate your kids.
When i was in school all they offered for a programing class was a Visual Basic class which i now belive after taking it anyone who wanted to program now has no clue and is confused as hell not only because of the very meaningless syntax but also of the way it was taught. Well it really wasnt taught more or less we just copied it off the board and if it ran ( we werent allowed to compile just test) our typing skills were in check. And when i talked of other languages that would be more suitible to learn everyone was in schock there were other languages to pursue. The course was called something like gaming tech. It was described as if we were going to make amazing 3d fps's or somthing no we made calculators from built in functions teaching us nothing. It also outlined we would work in groups to solve problems. Once again no but we did work in teams installing quake demos on all the computers. (the glorious days of Fps in school lasted 2 days before the teacher noticed it wasnt a cool online flash game.) Well anyway that was my experience of learning or attemting to learn programing in school.
I gave the bat commader a high five.
I think there is too much candy on a computer to make people interested in e.g. starting to learn asm, or lcoding 64k demos ....
....
...
..
.... at least teach something, basic, pascal, dunno, to get the kids interested ...
too many games, too much distraction to actually sit in front of a dull screen with terminal fonts on it
oh well, it was those kids who programmed kickass stuff back than who had the crappiest rigs, because the ones that could afford one that played quake, played quake
just my 2c
ps: yes we should care
Take it from a just recently graduated hs student. Most schools are not prepared to teach programming classes. Our sys admin for the entire district is a math teacher with no certifications who stepped up 10 years ago. The school couldn't wait to take out a grant to put 7 computers in every classroom however they never thought through the replacement cycle. Instead of leasing computers or focusing on labs, we have 7 75 mhz computers in every class collecting dust. Most computers were never used in the first place. Now that teachers are finally starting to add use to the curriculm (due to force from the principal and district), they are finding that 75mhz computers cannot due much anymore. The only computer class offered other than typing and into to word/excel teaches basic on 286's. We still have apple 2e's in service. As far I see, schools haven't stopped teaching programming, they never started. Also, we cannot afford visual studio even if we could run it and the district refuses to adopt open source feeling that it is too insecure. The sysadmin is against programming courses because he has enough trouble as it is with students hacking in to the network. He doesn't want to introduce more insecurities. Instead of securing everything with windows server, he counts on a program known as fortress to secure things on the user level. The average student has full control of the system in 5 minutes if he wants it. Students want to learn but schools are not prepared to teach them.
(note that it is 1:00 am and I was drinking so grammar and thoughts are not up to normal standards)
Ah! I can remember why I began programming. It was not so long ago, in 1998. My father bought a computer for the family some years before. But at that time appeared games that required 3d accelerated hardware. Too old to run those games, my computer was making me sad. Then I discovered a book. It was called "Programming games in visual Basic". It wasn't great at all, but it brought interest of programming in my life. I was thinking that "If current games cannot run on my old machine, I'll make games that can". Later, I learned c/c++, php, shellscripting, etc.
I don't say this is the best way/reason to learn to prog. The trick is catching the interest. Once that is done, people can see the true power of simplicity that scripting your life brings. Programming isn't for computer gods or geeks. It's for anyone who understands what he does enough to write a generic receipe. Once you see how simple it may be or how useful it can be, programming gets attractive. For that, I hope Squeak gets popular. It is a wonderful tool to catch interest of non programmers.
"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.
For calculators, learn TI-BASIC first, then jump here to learn assembly (assuming you're using a TI-83+/84). It's easier than you'd think, you can write real games with it, and you learn a lot of low level stuff like pointers that makes future programming concepts *much* easier.
For programming, I'd learn Visual Basic .NET. It's simple, .NET lets you make real applications, and introduces some vaguely object-oriented stuff. If you're feeling confident, learn just enough C/C++ syntax and parts of the Standard Template Library to jump into the Win32 API and MFC. There's a bunch of free compilers out there, like Bloodshed, and Microsoft offers trial versions of their Visual Studio compilers, which are actually worth checking out.
For web development, PHP is, in my humble opinion, much better than Perl. However, it's kinda neutered if you don't also learn some MySQL.
Java is an insanely difficult language, especially for those first beginning programming. They take object-oriented programming to a freakish extreme, to the point of avoiding all native data types. Just adding two numbers together and displaying the result is a horrible combination of objects, casting, parsing, and window manipulation. If your school offers C/C++, take it over Java in a heartbeat - it's a more popular language, used more in professional development (especially games), and can teach object-oriented programming *much* better than Java.
DATABASE WOW WOW
The reason "most" high school computer classes these days are about using Word, Excel, etc. is because there are a LOT more computer classes these days. And this is good. Unlike 20 years ago, today's youngsters are going to face a world where many, many jobs are going to require basic computer skills like using email and other programs, and it is good that the public schools are teaching these skills.
But programming is, always has been, always will be, NOT for everybody. As a result, it is difficult if not impossible to make a general programming class in public school. At best, you're going to have an elective class in high school which a rather small portion of the students are going to take.
I am glad you learned how to program when you were in grade six! I learned even earlier, having gone to school a few years later than you (basically in the 80s), during the age of the various micros that followed the PET. And yes, one of the big things to do on computers in those days was to write programs. Why? Because the number of useful programs available for these computers was rather small.
By the time I graduated high school, a computer class had been made a requirement for the entering students, and yes, a lot of those classes were not programming classes, but "learning to use computer software" classes. There was still a class that involved programming, and there was talk of adding a more advanced programming class, which didn't happen while I was there. Personally, I postponed taking the class until my senior year in hopes of being able to take the more advanced class, and when it didn't happen, I enrolled in the existing class. The teacher of this class was also the organizer of the school programming team which took part in two annual programming competitions, and from her experience with me she knew I already knew everything significant from her class. So she loaned me her college Pascal book and had me work at learning this language on a computer in the library that was set up for Pascal while she taught her ordinary curriculum to her other students. I pretty much never used Pascal again after leaving her class, but the experience with a language with some real structure to it (as opposed to BASIC) was useful to me when I later learned other languages.
Now I ask you, how many times during your school days did you write programs that essentially just crunched some numbers for you to solve some sort of mathematical problem? Guess what: The kid taking the Excel class in high school today -- at least, any of the ones doing well in the class -- probably learns how to do equally or more sophisticated number crunching in Excel than you wrote BASIC programs to do in your day. Sure, he may miss out on some of the other programming you learned, but he has learned a useful skill that will help him in real-life situations in the future.
And as far as hard science majors not knowing programming? Guess what, the kind of programming these types would have done in the past is primarily of the number-crunching variety. In the real world, today, scientists and engineers very often use Excel to do these tasks. Or they use software specific to their field, much too specialized to have learned so early on, but their early-on use of other programs has taught them the basic skills they need to learn these programs as needed.
Today I work for a company that makes a wide range of software used by not only engineers and scientists but also people like gas station managers. The products I work with are more targeted toward the engineers, with a lot of custom modeling capabilities to handle whatever we didn't think of. These custom model capabilities are quite widely used, and in earlier versions they required you to write a program (or a function, at least) in some language. But in more recent versions, due to customer demand, we have added the ability to use Excel instead of a programming language for many of these types of customizations.
Why would the customers want this? Because these model
I used to program a lot, I was irritated with my schools for not offering harder computer classes to freshmen, then got in trouble because of boredom in the, microsoft office class.
I stopped programming when I got a job and a girlfriend.
(my computer also broke, and i've been too broke to replace it.)
yes getting a life will kill it... maybe kids are just getting a life rather than realizing that there is already software out there for everything.
from artificial intelligence to... something simple that my brainfart is preventing me from saying.
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+.)
If you listen to the talking heads who give keynotes at ed-tech conferences and the like, you'd get the impression that teaching programming was a mistake that was made back in the 80's that we've subsequently corrected. It is baffling, really. Educational technology is still utterly dominated by people who can't program and have no interest in seeing it taught.
In my opinion, there are two primary factors:
.bat files. It was a good entry point into programming, and I benefited from where computers were at at the time. The best shot we have right now it seems like, is teaching how to use scripting inside Word or Excel. Except software has taken the same evolutionary path. Word and Excel now have SO many functions with GUI tools that scripting isn't as necessary as it might have once been.
1) Computers are too easy to use. Chances are, if there is a new task you need to do on a computer and you don't already have a GUI tool for it, five minutes on Google will lead you to one. When I got into programming, it was during a time when installing hardware sometimes meant editing autoexec.bat files by hand. There were needs for other
2) Computers are ubiquitous. Everybody takes computer classes in high school now -- not just computer geeks. Which means that the classes themselves need to be toned down and made more accessible to more average users. Even higher level computer classes must cater toward a wide rrange of students. Computers are used throughout the business world now, so classes have reflected typical uses -- which doesn't include programming.
And what all this comes down to is that schools don't need computer experts to teach the classes. They're teaching non-programming to kids that will never need programming, so why pay a premium for teachers that can program? Most schools probably don't even have the resources to teach programming now.
Punctanym: alternate spelling of words using punctuation or numerals in place of some or all of its letters; see 'leet'
It may be different elsewhere, but where I live, there are no programming classes. At the local community college? Sure. At the private high schools? Probably. But public high schools? No way.
Computer classes? We have a web design class which is basically "here's Frontpage, have fun." We have Computers in Business, which is Word and Excel. We have Graphic Design, which is Photoshop and InDesign, with a tiny bit of Illustrator and Flash. But there aren't any programming classes at all.
Those like me who want to take them can find a summer or evening class at the community college. Nobody else cares.
Oh, and calculator programming? I take AP Calculus. My teacher told us that we couldn't use notecards on our tests, but we could put as many notes as we'd like on our calculators because they let you do that on the AP test. "But how do you put notes on your calculators?" "Just do it as if you were editing a program, but type your notes there instead." "...you can program them?" I wasn't just the only one in the class who knew how to program a TI-8*; apparently I was the only one who knew it was even possible...
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.
Do they teach Law in grade school? How about Medicine? What about toaster repair? Why should a grade school teach advanced subjects? You don't need to know how to program a computer to use it.
Programming is a career just like being a Lawyer or a Doctor. It is and should be a high paying profession. Teaching kids who are otherwise not interested in programming is an inefficient use of school resources. Let's teach them to read, write and maybe collaborate using the new tools but let's not bog them down with nerd stuff.
When I was that age, I was very interested in computers. I figured out how to take college classes at 16 years old and learned a little programming. But I was the only person I knew who did that. You also hear about the kid-genius
who get's his medical degree at 16. I think these are the exceptions and should not be the rule. Let the average kids ( and maybe the geniuses too) enjoy their childhood rather than pushing them too hard.
I must say I am doing Astrophysics, and I have basic-to-no-programing knowledge. I took C++ this year, and I found the idea of object oriented programing very hard to grasp. And I must say in highschool all they did was teach us how to use a mouse and operate windows (not that it was exciting). I blame the fact that alot of teachers lack a knowledge of using a computer so they dont realy care how the students fair.
My kid brother is a highschool junior and a huge geek who loves to program (current infatuation: Objective-C and Mac OS GUI apps).
One problem he has run into in terms of taking programming classes at his school is that most of the classes are considered Regional Occupational Program (ROP) courses. The problem is that time spent in ROP classes doesn't count toward state funding here in California when it comes time to tally the hours that kids spend in the classroom. At my brother's school, this has equated to some pretty severe restrictions on the number of ROP courses that students are allowed to take.
An interesting aspect of the logic here is the conceptual difference between classes that teach you how to do stuff (theory) vs. classes that actually teach you to do it (vocational). At the highschool level, most programming-oriented courses seem to fall into the latter category, which happens to be the category that is held to be more important by educators. Hence, actually programming computers is de-emphasized at the highschool level, much to the disappointment of my brother.
My other
- You think we have free time? We don't, so programing must be really, really interesting if we are going to find time for it.
- Many kids these days aren't as awed by the power of computers. They don't care how they work. I think most of the kids who go into computers because they want to create games or write an application, but they don't actually know the work involved -- they don't really care about programing.
- Even the ones who do want to learn have trouble. As computers have grown more and more complex some of us have kept up... but it is making the initial learning curve steeper and steper.
Those are my thoughts anyway.I suppose I could be considered a kid (I'm 16). At the moment, the Information Technology classes in my school teach Visual Basic, and Web Design classes teach Java and PHP. A lot of students have lost interest, mostly because they get frustrated with it, and also perhaps because they can't write any "cool" programs right off the bat. I haven't been around long enough to actually witness a decline, but from what I have read, kids in the past did, indeed have more exposure to programming. It's not bad, necessarily. I think that, because of the breadth of programs available today, kids don't feel the need to make their own. Chances are, something they want is already available to them. We're a lazy generation, I don't have a problem admitting to that.
There's quite a few computer classes at my school, though none of them involve programming. They have all these wacky names like Computer Applications, but they should be called: Typing, Office 98, Dreamweaver, iMovie. Those are about the only things covered in our 6 computer classes. When I first got my class sheet for High School when I was in 8th grade, I hoped for some type of programming class, but alas, there was none :(
Once upon a time, a kid had a small but respectable chance at writing a commercial-quality game, or an impressive demo. Something cool.
For 8-bit machines, there were people who could do graphics, music and programming by themselves. Now, the music takes a studio, the graphics takes an army of 3d sculptors (are there free comprehensive 3d object libraries, by the way?) and the programming takes a team. That's big money or networking skills that would be the envy of any game company hiring manager. Kids don't ship with those things.
You can still program things on your own, kind of. Useful things, mostly. Some games, but mostly the kind that's pretty in a retro kind of way - not something that'll stand up aesthetically to Oblivion, or FEAR, or whatever the kids are playing today.
Has anyone been up on the latest PSP homebrew scene? Or any of the mods on many MMOs out there? There is a great deal of young Lua developers let me tell you. Most of the programmers are kids in those scenes. I should I know, I was one and made many a friend along the way. Also there is an amazing amount of kids programming in the web be it javascript or php.
There are actually a lot more kids programming today then ever before. How? you ask and the answer is simple Games! Yes many kids out there make sites for their clans/guilds, and companies are now including scripting to many of their games. Thank goodness for free trials and piracy (only in these case). A lot of these kids get their tools for free. I was working with Flash, Photoshop, Java (JBuilder) and even Perl in High School.
So yes kids are programming, more than ever actually. Just because the Major is on a decline doesn't mean kids love it any less, it just means all the money chasers have no more money to chase in CS.
El Profe
I wanted to program games since I was 4, but it wasn't until I was 9 that a babysitter told me about QBASIC. Before then, I'd never even heard of a way to actually program a computer; I was convinced that it was done by punching in 1s and 0s. The sitter showed me as much as he could in a single sitting. He certainly wasn't a programmer. I think he knew print, let, goto and while, and that was about it. Using that skillset and what little I could glean from the built in help, I wrote my own game when I was maybe 10. Looking to broaden my skillset in to more useful things, EVERYONE discouraged me. "Programming is soo, so hard," "you have to do a LOT of studying to program a computer," "maybe some day you'll learn how." I pretty much gave up because I didn't have the college degree everyone apparently thought I needed. When I was ~16, I picked up VB 6 learning edition. I didn't have Internet access, so I had to make due with the books that came with the CD. What a letdown that was. I just took it as proof that everyone was right, programming was too hard for a kid. When I was 17, I taught myself HTML in 3 days. Yeah, it was crappy table / frame-based layout stuff, but given what I had to work with, I think I was pretty damn handy with HTML after 3 days. I made a few sites and people loved my work. Starting in college, I found that I knew HTML and was at the stage in my life that everyone always told me I had to be in to program a computer. My cousin showed me Linux, and from there I discovered Python and PHP. I took CS161 (C/++ centric at my school). Ya know what I found out? Everything I'd been hearing all those years was total bullshit. I could've been programming in perl and C for over a DECADE if someone had just told me it wasn't difficult at all. I'll never stop feeling like I wasted a lot of potential learning time. I filled that time with video games. I'll never get that decade back. Now I'm a dad, and you bet your ass my kids are going to know that anyone is capable of anything.
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.
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.
15 years old here. Getting into the programming more. As of now
Bash
PHP
C
Java
And next on my list, perl and learning most of c again.
It generally seems, that most people at my school don't really do any form of programming(Not counting HTML). I'm part of a little computer club, and we're attempting to learn something new everyday(For example, today. If doing a softraid, have a boot disk, and for a Cisco Cache engine, press random keys to get into the bios).
I think coding can be defined as anything other than HTML, that does a useful thing, and is fairly interesting.
I do alot more scripting simply because there's things to do it for, modifying filesystem stuff on a webserver and such has much more use to me than writing a C++ program.
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.
Is this referring to the American school system? Because I'm a second year university student, and in high school we learned VB, Java and a bit of C++. And in first year Engineering (and I mean Chemical Engineering, not Software Engineering) we furthered C++ and bit of just C. So maybe it's just your school system that's out of whack.
From CollegeBoard.com: The programming classes at my high school are some of the most important classes that I've taken. I think I've really come away from them with a lot, So I feel that programming in high schools, where I am at least, is doing fairly well.
Inter Arma Enim Silent Leges
Necessity is the mother of invention. But I guess this days there is not much of necessity left.
I started programming, coz the 2 game floppies that came with my BBC gave up after couple of months. So in a way unreliability of the old 5 and 1/2 floppies got me started. That was my way of solving problem. My niece has discovered her way of solving problems - but sadly thats not programming. Thats too much that is required to solve her problem [imagine recreating something like Age of Empires], and there is too little time she actually has after TV, Games, Chat, Internet, and TV. The only possible solution for her is to just use whats available. And if its not available [or she does not know of the availability], she will just think of it as something the computer cannot do. She just aint got no time or intention to be creative.
Are we doing something wrong ??? Are we not providing our next generation with enough challanges ??? Is life too easy for them [well at least easier then it should be] ??? This are some answers that we all need to ask ourselves.
I started programming in my sophomore year of high school. I always liked math and science and my friend told me about his older brother being a computer programmer and making tens of thousands of dollars. He recommended I learn C and move on from there. I bought one of the Waite Group's C programming books (which was also geared for the 80x86 platform) and learned all of the basics. From there, taught myself C++, then Assembly. Then I started college, noticed girls, and stopped programming except for my math classes and Java my last year to get me a job making tens of thousands of dollars. :-)
The point is that you need to start with the basics. Just as it is a bad idea to have kids use calculators in math class, it is a bad idea to start kids off with C++. Teach the foundations first, then move on from there. Actually, I really don't care for computer classes at all. The best programmers are self-taught. We have to do everything ourselves without anyone to fall back on. All of the creativity, ingenious ideas, etc. come from the individual, not a professor or T.A. There is no safety net. I noticed in the few computer classes that I had to take for my major that a lot of my classmates would always go to the T.A. asking how to do the assignment. There is no way that would work in a real I.T. environment where you are given specs and told to complete it in a few weeks.
Scheme was my first programming language, too.
I'm not going to call it awesome, though.
i forget
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.
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?
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.
I stated programming in Year 8 (I think) because i was bored at high school. I started with HTM then js then qbasic, and worked my way up to where i am now and I had no help only books. My computer teacher (in year 10) told me that i should quit school and become a programmer, i was basically teaching the programming part of the class myself. Now languages such as C, C++, Java, j2me, php, SQL, VB, xml, js..... all under my belt. I am now 20 and a Uni doing computer science.
I think that main problem these days is that most kids feel they need to be able to program things that will have imediate results, Like a complete front end. where as in reality they should be concentrating on the fundimentals, or even hello word.
These are mandatory computer classes that every student must take. The breakdown in the class is typical of any subject. A small percentage really take to programming. A small percentage can't get it at all. The rest fall somewhere in the middle.
The hardest problem has been motivation. Some students simply tell me that they'll "never use this again" so they don't care.
Many of the submitters are right in that computers are so much more complex than they were in our "saving-programs-to-cassettes" days that it's hard to do something comparable to commercial software.
Combine that with the obvious lure of the Internet and all it has to offer and you're left with kids who only know or want to know how to point-and-click to chat with their friends.
That said, if you put me in a sewing class I'd be pretty unmotivated as I'll never use those skills. Bottom line: everyone should be exposed to programming but not everyone needs to love doing it.
An invasion of armies can be resisted, but not an idea whose time has come. - Victor Hugo
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
.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.
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
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
I think part of the reason kids don't program is because programming, especially for large projects, is very hard and complex to tackle. Take, for example, your average computer game from 2006. Most of them will have 3d graphics, physics engines, fancy shaders or whatever new 3d card feature is popular at the moment. Making a modern computer game is extremely hard and requires advanced programming and math (e.g. linear algebra) to program.
Now, what does that have to do with being motivated to program? Well, kids are inspired by the software they use and play with. While kids play video games they eventually decide they want to go off and make their own games. However, they can be discouraged by the immense complexity and difficulty in accomplishing that task.
This applies to non-game software too. A kid might look at some cool open source software, say Firefox, and want to start making his own web browser. Or maybe he'll be fascinated by editors and want to make his own text editor. But where should he start?
I've been programming since I was ten, and even I stumble on these issues. There are lots of cool projects I have in mind, but I don't know where to start. I've found that the only way to get around this is to pick up experience building small programs and reading good textbooks (I like Structure and Interpretation of Computer Programs by Abelson and Sussman and Software Tools by Kernighan), but that's hard for an impatient teenager who wants to get a lot done.
How do you program the GBA? I'm a bit intrigued...
At our high school, there is a regular CS class as well as an AP CS class. Both teach java, though after completing the first year and a half or so, most students move on to expand their horizons. There are probably about 100 CS students in my highschool of ~2500. Of course there are BCIS (Business Computer Information Systems) classes that teach Word, Excel, etc., though those aren't nearly as fun. As a third-year AP CS student, I feel fairly fluent in java, and know a couple web languages and moderate C++. Just thought a little testimony might help :)
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)
I fail to see why people need to learn how to program unless they need to use it for a specific purpose. At my undergraduate school, I'd say everyone outside of Drama majors take Intro Programming (Java) because it's required for many majors. I took it my frosh year, and I've more or less don't remember much of Java anymore. It's a hard class (prof made us to random shit that other profs didn't even go over) that I aced, and I never really used it again. This shows unless you code reguarly you lose mastery over it - just like say a foreign language. I occasionally "program" in R and Splus and other statistics / econometrics software - just simple for loops, functions, etc. I look up code when I need to do anything really complicated. I would say I'm in a field that is requires a good deal of knowledge in programming (Economics PhD with concentration in Econometric and MicroTheory), but I'd say that coding is a skill that is very easily picked up. It isn't like analysis or econometrical theory that requires years of previous study in math / stat. If you learn one language, you can easily pick up another - you pick these things up as you go.
I take immense pride as a parent in watching my son program a checker game using C. He covered the following with pretty uncanny ability for an 8 year old.
...as well as a programmer.
1. Mastery of basic X,Y grids (graphics)
2. Basic rules of moves, king and jumping
The hardest coding part of which we discussed is programming of checker strategy implementation:
1. Sacrifical king
2. Cornering
3. Control of center board
What a throw-back! That makes my feeble 12-year old attempt, to program my 4-moves deep chess stratgem, pale by comparision. (And that was with a 64K Radio Shack Model II computer!)
My sons are already on their way to their career choices of tinker, tailor, soilder, sailor
With India and China taking up the slack, We don't need no stinkin' programmers. Instead schools are teaching students to manage overseas projects instead. PowerPoint and Excel are course requirements, with an honors course option for Microsoft Project.
Thanks for saying that.
It's a spectrum, isn't it?
.. pa-ra-bo-la, pa-ra-bo-la, 2 pi R, 2 pi R, where's your latus rectum, where's your latus rectum, 2 pi R
At the PhD level, hard scientists know how to program. We don't always use whatever's hot these days (you see a LOT of quickbasic, and a lot of what you do is programmed in mathematica or mathcad), but I reject the premise of the question.
get charged with felonious use of school property for circumventing access codes and the like. Instead of finding a way to encourage them and helping to channel their natural curiosity into a productive learning experience, we threaten to sue their sorry little asses and throw them in jail (former /. article). That'll learn them damn smartass kids to conform!
The contest for ages has been to rescue liberty from the grasp of executive power. -- Daniel Webster
face it, the appeal is gone. people see that kind of career as 80hour work weeks slaving away in cubicals only to be outsourced to india or china. big fat dead end
I am 14 and have been programming for around 6 years now. I started with Quick Basic, and I'm in the middle of learning C++ now.
-- Lattyware (www.lattyware.co.uk)
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
And for others, there's always the interactive http://tryruby.hobix.com/.
...distractions are too plentiful.
How can you write code when you're busy IM'ing 5 of your favorite friends, surfing MySpace, and watching pr0n when the parents aren't around?
Look, using a computer doesn't require knowing how to write code anymore. The lack of apps in the 1980s made it a requirement for anybody wanting to do something even remotely unusual (e.g. genealogy work). But today, there are multiple pre-packaged apps for just about any obscure software problem you can think of.
We're all obviously better-off for it. But that fact also removes the incentive for kids to learn to program, after all -- why reinvent the wheel?
I'm in my mid-20s. I code professionally, and I didn't start programming until high school. And there have been MANY times over the years when I couldn't think of something to work on, because a little bit of googling (or using AltaVista, way back in the mid-90s before Google) almost always reveals an app that has been written for what I want to do. Not so 25 years ago.
Is Capitalism Good for the Poor?
There are two things I think that are important to note here:
The fact is, as a percentage of the population, not many people are programmers or try to become programmers. That was true 10-20 years ago, and still is. We tinkered with programming for the fun of it back then, but when I started (grade 7 or so), I can't remember anyone else in my school doing it. By that, I'd guess that only 1 - 5% of the population actually programmed because it was fun. I'd guess that the amount of people doing it now is quite similar. It just seemed alot higher back then because you hung out with the 1-5% of the people that did it back then, and now see more people.
There needs to be an easy way to get into programming. You don't start with full windows apps. I think that starting in Javascript is likely the common thing for kids these days. It is a language that you don't need to compile, runs on every computer, and you can find example source code anywhere. Like the old command line, seeing your results is really easy, and it is just really easy to get into, as it is on every computer. Flash may be another starting point for the same reasons. Getting a C/C++ compiler for windows is not the easiest thing in the world, and just kills that as a starting point. Both flash and javascript let you do cool things without much effort, just like basic did when you old guys started (my first computer was a 386 with windows 3.1, so my first language was javascript).
You give much too much credit by saying 1% of owners of programmable calculators would know how to program them. It's much closer to 0.01%, possibly lower.
I'm a senior year Canadian high school student, and currently in a computers 10 class (Needed for the last couple credits). It's 3 things. Word, Excel, and Keyboarding. All of which I started using since getting my first PC in '97. The course is a joke, with highlights of the Word unit being on the difference between the backspace and delete keys, and the space and enter keys. Just about every single course is irrelevant to 99% of the school's populace. These are the kids who are attached to IM'ing, mySpace, and so forth.
Just to get through junior high, let alone high school (let me pause a moment, as I recall the US as not having a thing as junior high. In Canada, 1-6 is elementary, 7-9 junior high, 10-12 high school) you need to use Word, Excel, Powerpoint, and so on.
Programming has no appeal to the younger generation. I can definitely see why the Commodore (and such) generation was appealed to it, but that appeal has been lost in this generation, with one major factor being labeled a stereotypical nerd/geek/etc.
Another reason is that computers already come very much developed, with Windows being the norm (it is quite rare to find but a few people in most any high school who know of Linux) with it's extensive and customizable graphic interface, there's no real drive to program, they just set their backgrounds, font, and color scheme and go. The advent of multiplayer online gaming is not to be disregarded. Specifically FPS' and MMORPG's, which take precedent over other activites (per-say) on the computer, which was lacking in the earlier generation.
Is this a bad thing? Certainly, we'll be seeing a major decline in the amount of programmers/CS majors in coming years, with an undoubtedly growing demand.
Should we care? Naturally. With less and less programmers, and more demand for them, companies will need to shell out bigger bucks to attract talent. Which translates to higher expense for the end user.
That's my $0.02 CAD. (0.0178918 USD) Though I doubt much anyone will read this, my karma sucks
Maybe we need to make coding cool (or 1337 or k-r4d) again? Should we pimp geeksta rap, like MC Plus+ and Spamtec, or something? Coding reality TV shows? Real DG's and CSOG's to interest the kiddies? Everything "old-sk00l" is cool, right?
Or maybe everything is fine, and I'm becoming a cranky old man who tells stories about walking up hill through the snow to get to school.
This is a hacked account, for which the owner can not be held responsible.
What killed it for most of us old coots is credentialing, and I can't honestly argue that that's a bad thing. Us autodidacts were plagued by idiosyncracies and a lot of unperceived conceptual blind spots. I personally loved 6502 assembler language and Apple Pascal, eventually graduating to Metrowerks CodeWarrior and Microsoft Foundation Classes. Microsoft killed the joy for me personally by their policy of fixing compiler bugs in incremental updates which you paid for, each and every time. I give 'em credit -- if you'd report a bug, they'd fix it, but not now, and for your current project, not ever. The M$ protection racket yielded Open Source, but that's another can of worms. As far as programming goes, the final final straw, for me, came when Apple introduced Objective C, for no good reason that I ever saw. I could learn Forth and Lisp, but having to learn Objective C was too much. On the heels of AppleScript, the counterintuitive scripting nightmare for the rest of us geezers who loved Perl, Bash and Ruby lots better, Objective C just faded behind the black velvet curtains of obscurantist obfuscation, and I tore down my shingle. I still program, but not for everyone else. And why would kids bother? The real tools these days are larger metamorphs that express bigger ideas closer to the point of even having a computer -- things like Gimp, Open Office, PostgreSQL.
``Tension, apprehension & dissension have begun!'' - Duffy Wyg&, in Alfred Bester's _The Demolished Man_
Well, as our school didn't have a proper teacher for computer classes, *all* of the school were taught the same things. I mean, everyone from 6th grade up was being taught how to use Paint and Word.
Not a word of programming (as nearly half of the people were struggling to pass the class at that level).
That's what kids today think is programming.
/drupal/xmlrpc.php HTTP/1.0" 404 291 /community/xmlrpc.php HTTP/1.0" 404 294 /blogs/xmlrpc.php HTTP/1.0" 404 290 /blogs/xmlsrv/xmlrpc.php HTTP/1.0" 404 297 /blog/xmlsrv/xmlrpc.php HTTP/1.0" 404 296 /blogtest/xmlsrv/xmlrpc.php HTTP/1.0" 404 300 /b2/xmlsrv/xmlrpc.php HTTP/1.0" 404 294 /b2evo/xmlsrv/xmlrpc.php HTTP/1.0" 404 297 /wordpress/xmlrpc.php HTTP/1.0" 404 294 /phpgroupware/xmlrpc.php HTTP/1.0" 404 297
Example 1 of 1000000
console.log
207.210.74.100 - - [23/Apr/2006:13:24:06 -0400] "GET
207.210.74.100 - - [23/Apr/2006:13:24:06 -0400] "GET
207.210.74.100 - - [23/Apr/2006:13:24:06 -0400] "GET
207.210.74.100 - - [23/Apr/2006:13:24:06 -0400] "GET
207.210.74.100 - - [23/Apr/2006:13:24:06 -0400] "GET
207.210.74.100 - - [23/Apr/2006:13:24:07 -0400] "GET
207.210.74.100 - - [23/Apr/2006:13:24:07 -0400] "GET
207.210.74.100 - - [23/Apr/2006:13:24:07 -0400] "GET
207.210.74.100 - - [23/Apr/2006:13:24:07 -0400] "GET
207.210.74.100 - - [23/Apr/2006:13:24:07 -0400] "GET
I don't see many webpages with unique javascript stuff. Most of the flash-animations that are cool to look at, don't seem to be a programming challenge either. But I am no expert. Most flash scripts appear to me like a collection of pre-coded effects on media which are triggered by simple events.
Yes, HTML, CSS and flash are popular. But these languages seem to be mostly used with an artsy mindset. Artists use all kinds of tools, including, if they have to, scripts. But that doesn't make them geeks, at least not in my book.
I've started to learn drawing recently and I can say that the whole thought-process while drawing is very different from coding. (I had to attend years of mandatory drawing and painting classes in high school, but I produced only crap. I drew like a coder.)
From the initial article:
The definition of "geek" seems to be shifting. A geek who can't code? What exactly does a non-coding geek bring to the table? What, except for lack of social skills, defines a geek nowadays?
Being a 21 year old and working instead of going to college, I would have to say the draw to programming is somewhat diminished since before my day to even started... but just barely. The kids that I knew and grew up with, some of their first computers were the mac classics and lc II's. If I may claim that this comment would represent 80+% of my graduating class starting in the 6th grade, if it didn't have a mouse, I wasn't using it. So I think kids ARE programming less because of 3 main things. 1. They grew up in a time the most programming they ever had to know was how change a directory in DOS to play a pinball game. 2. Macs were common place among myself and my geeky friends(yes we can use the definition from the article). And last but not least, 3. Instant gratification. Between cable, DSL, Tivo's, and windows 95 being the most popular operating system in my home town. We didn't have the commodore 64 to go and play around with and see what we could do, we had nintendos and sega genesis. Needless to say, we thought we were putting our minds to greater use than that Gates guy anyway. Speaking from personal experience, I don't know anyone in my cohort that started using a computer before the 6th grade, and 6th grade for me was 1996-1997. That's right, the... eh hem... time of Windows 95. (DOS knowledge, not required, but preferred ;) [from what I remember])
I am 14 and from the UK and I do program a bit, I know PHP and some Python, not to mention HTML, CSS and Javascript. Mainly though this was because I was interested in being able to make the things that I used, I think that when you are young and I mean really young, you want to know how everything works, unfortunately this seems to get drummed out of people as they get older at the moment. The thing that really got me into programming wasthe apparent ease you could make a very simple program, I learnt some basic from a book but at the time I didn't have a computer that would natively support it (easily). This brief brush with basic left me with a taste in my mouth, then it lied dormant for some years where I only learnt HTML, then as I changed schools I met someone who was pretty good at programming and a *NIX geek, he introduced my to what some other languages were and he supported me setting everything up and learning. Then it was really a sense of competition that drove me on from there on. Also schools don't make it easy to learn to program, for example the ICT GCSE that I just finished the coursework for was heavily weighted to the suggested M$ products, it was harder in terms of getting the mark by programming in comparison to using Excel etc, even if both the solutions gave the same result, and in fact the programmed one was more user friendly. On top of this our school teaches people who don't know HTML the pre-standards HTML, it is horrible and messy, no css, non-compliant and in some cases completely wrong. We can only take Computing at A level not at gcse and I think that some people would go for it if it was GCSE because most people have at least a slight desire to program. Unfortunately they only teach us Visual Basic at A level computing.
Michael-m.co.uk - Home of Michael Mulqueen
I think it is highly variable... depending on the child and the school.
/very/ hit and miss.
I'm the computers teacher at the high school here and they're doing a term and a half unit on programming. We started of with logo as something a bit historical and simple, then some basic visual basic and finally Game Maker.
It is relatively superficial and a small part of the 2 year course (and it isn't mandatory - there are more than a dozen options with programming just being one), but I feel it is important. I remember using gwbasic myself back on an XT... vaguely remember doing something on a Vic 20 too, but I was pretty young at the time.
Unfortunately, I think kids are used to great graphics in games etc now... when text / basic graphics was the norm it wasn't such a drama if your game was only text (like my trading game in gwbasic). Which is where Game Maker is great... makes simple graphics relatively easy for the kids to produce quickly. Hopefully it will then inspire them to do more at home... out of the 20 kids in my two junior (yr 9 and yr 10) classes only about 2 have shown a real love for it. The rest will probably produce a simple game or calculator and be done with it.
We offer senior students (yr 11 and 12) three computers classes, of which only one has programming (the Software Design and Development course). The other two won't have any programming at all. This is in NSW, Australia.
I think a lot of the danger here is the teacher background. I'm actually qualified as a Geography / History / Economics teacher, but messed around enough as a student and took 2 years off during uni to run my own ISP that I'm close enough to able to run the computers classes. Standard practice is that computer teachers (in NSW) are part of the Design and Technology KLA (Key Learning Area). In theory our woodwork / metalwork teacher should be teaching the computers classes (it is a small high school - only 200 students in total). So if she was odds are she would be avoiding the more complicated areas like programming during the junior course so the only chance anyone would have of doing programming would be if they chose the single senior subject (which has happened, a sole student did it by correspondence last year - there will never be the numbers to run the SDD subject here if there is no interest stirred in programming in the junior years). I'd suggest it varies greatly from school to school and could be
But there is a change in computer culture... just as the internet has changed a lot in the last ten years (my first access was just to usenet and email via a UUCP feed), so have computer enthusiasts. Now a lot just play games and are considered power users (because they know a lot about video cards etc). There isn't a culture of playing with GWBasic with books of basic games to get you started or pages in computer magazines anymore. The text books available are mostly generalised too... the one we have a class set of barely touches on programming and doesn't really go beyond concepts and pseudocode while the one I'm using for the topic only has limited actual code in it. Unless the teacher is keen, it is so easy just not to cover programming in the junior computer course at all (it is one of a dozen or so options, of which a school normally teaches 4-8 if they're doing the 200hr course).
Computers are virtually commodified now. In the early days of cars, people knew how to pull them apart / repair them (I assume). In the past a greater proportion of people knew how to program... now virtually nobody learns how to program just the same as hardly anyone tinkers with their car anymore... and just like a lot of people who tinker with their car stop at putting in a more impressive sound system or neon lights or whatever, lots of kids now stop at replacing video cards etc.
Yeah, you heard me right...
... ?
Who doesnt spend as much time in C making sure they got all the '{', the '[' and ';' the right way, than they spend in HTML making sure they got all the tags properly
I'm from India and you wouldn't really be surprised to know that the same thing applies here also. In India, the academic season usually starts in July. Not counting non-academic distractions, some of the main causes could be: (1) The preference of school boards towards what they know well (ie microsoft products). As an example take my state (Tamil Nadu - in South India - supposedly a highly computer literate state). Instead of teaching programming concepts they changed the syllabus to specific programming languages and office automation, sub contracted the faculty placement to commercial organisations - you know, those who prepare studes for specific languages. So what happens? A maths teacher with lot of good and relevant experience and one who has possibly built rapport with the students is replaced by some diploma holder in office automation. This person doesn't understand school dynamics, holidays, vacations etc, is only a hack who is going to get fired at the beginning of the summer vacation and will move on. So next ter, a fresh guy joins, has to be taught how to teach .. Is is the same everywhere?
(2) Over specialised categorisation: Java programmer, VB programmer (cut and paste examples for your diploma)... Not even the best of them really prepare you for general pogramming skills.
In this situation,
(1) Schools graduating students should work with "non academic" boards. I mean if your local board doesn't train in general skills, a group of teachers should try to fill the gap.
(2) Schools enrolling students could reach out. Have a "bridge course".
End
and baddly wants one of his own. That, unfortunately, requires programing unless you want to run a stock game. And who wants to run a stock game? However, even though I've set him up an account on my BSDI box and he's got a stock merc mud on there, he's too busy 'being bored' or too busy mudding to bother learning the first thing about programing. So do they program? No most do not, there are too many distractions now. too much else to do that's fun to bother having to work for a while in order to have fun.
The greatest Epic Adventure of the 21st century! http://igp-iupf.omnitech.net/~hub/sojourn/
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.
While it could not compare with full C64 games it wasn't that bad either.
BUT what I think is even more important, it was relativly simple to achieve. Drawing a sprite on the C64 was infinitly easier then getting Dos let alone windows to even enter a graphical mode for simple drawing. Calling DirectX? Gibberish.
If I look back at Basic vs the languages you need today then we were in a way lucky.
I think however that it ain't all bad. Websites can take the place of the simple home computers. Getting some result with HTML and PHP is fairly easy and direct.
If there is a problem I would say it is because more and more computers are black boxes that just work. How many people who grew up from say Windows 2000 on have had to meddle with at least .bat files?
Old people like us HAD to learn some basic programming to even be able to use our computers. That I think has disappeared.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Ever since midschool I wanted to learn C++, but no classes in my area taught it, and I couldn't find any good resources. I got a reccommended book, "Game Programming For Dummies," which apparantly wasn't for dummies as the author assumed you already had knowledge of C++. It wasn't finally until college that I was able to get my hands on the language.
Microsoft should be GIVING OUT Visual Studio (and yes, I know that they have an express version now, but they most certainly aren't touting it. How is a kid supposed to know he can just go and download it?) and offer extremely simple tutorials and walkthroughs on the subjects.
Not all programming languages have daunting edit-compile-debug loops like C++ or PHP. My C-64 executed BASIC expressions right away as does a LISP interpreter.
Sheet music, traditional typesetting, plays and screenplays would all count as code by your definition.
Programs need the ability to react on input and define algorithms. HTML doesn't give you the power to do that and is therefore not a programming language.
I've been attending baldwin wallace college for a number of years (5, i'm an old timer) and for the past three our chapter of ACM (www.acm.org) has been sponsoring a programming contest for high school kids. There has been a great turnout every year so far. We see students programming c++, java, and vb.net mostly. Actually they are mostly java programmers. So the answer is yes, kids are programming. Some of the kids can whip out a program in a more elegant way than the seniors majoring in computer science. Not sure if this has been posted yet, but it's a note I thought I should post.
Let's see. 20 years ago, computers were not ubiquitous. If you bought a computer, you either had to use it or were very interested in doing so. Today, computers *are* ubiquitous.
I'm willing to contend that a bigger fraction of the overall population programs, but obviously it shows up as a smaller fraction when compared to "everyone that uses a computer", because the group that just use a computer because they have to have expanded enormously compared to 20 years ago.
I think the problem with why there has been less interest lies not within the kids but in the environment they are in. I remember back when I was in primary school (when I was 9 to be precise) computing was something fairly new, especially here and at that age. As was programming. I also remember most of my friends wanting to play games and do nothing. I was different, I wanted to make the computer do something. The key to me, gradualy evolving into a programmer and a student of CS, was our teacher. She thought me the fun parts of programming first as opposed to what a lot of people are doing now. For example, in high school our CS teacher actually starts to explain bits and bytes and how to calculate the length of a file from the number of characters inside one. Well, really, beautifull.
... Given this, most of my friends thought I was the über geek at that time. I mean, considering they had no knowledge of the computer, when I showed them a fairly simple program, something that I wrote, they would just go like, wow. So I think that the problem is, as I've said in the environment.
:-).
I don't know about you, but if I never programmed before, thinking of all those bytes and stuff, would have made me feel uneasy to start. I mean, I don't know, will I be smart enough to understand? She doesn't say that, there are languages like LOGO that you can actually learn stuff. She says that computing is a complex task, with 1 and 0
If we want more people to program we have to start teaching them in a different way, in a way that promotes self learning and which does not imply that knowing how to program means that you are a geek. We'd have to change the world... But the other question is, do we want more people to program? These days anyone who has seen a C++ code file can contribute to an open source project, which is great, if he has some knowledge to contribute, or very bad if he just bodges up something that works but is impossible to maintain. This same is true for companies who employ non qualifyed students to do their work. It happens that the end program looks great, and does exactly what they asked it to do, but when they want to maintain it, they see stupidities like:
Sring s = new String("");
This is, btw, a real example from a code review at our company. So, maybe we should just leave it like it is, make people think that programming is an elite skill that only a few know. Those who really want to learn will learn. As many of the posters before me stated, they learned themselves. I did too; granted with a few pushes from my teacher but still, after primary school I was more or less on my own. And I think this was OK.
In conclusion, no, I don't think people are losing interest in programming, I just think it's the same percentage of people who are interested, but it's a higher demand. So we either force people (kids) to program and make them into bitter programmers who write spam zombies, spyware and adware, or we let them learn and write cool software that actually helps us do something better. I for one, opt for the second options as I have way to much spam in my inbox anyway
I'm 16 right now - most likely classed as a geek - and I can program in C++ / PHP and I guess VB.. :P.
I don't think I actually know anyone else that does... but there are probably others in my school that do.
Too often I see things done in Java (or whatever language) that I made mistakes about in early Basic programming stages. The advantage with programming in Basic (not VB or something like that) is that you get the instant feedback and all bread and butter is already there so it's no need to declare a mountain before you climb it.
Of course - Basic isn't a good language when it comes to design skills, but it's a good language when it comes to learning the fundamentals.
Not too long ago Pascal (Classic style) was involved in the learning curve of programs, and it's actually not a bad language, but a little aged. Anyway - the step from Basic to Pascal isn't very large. And with Pacal you can actually do some design work too by modularization which classic Basic doesn't allow you.
The step to C from Pascal is a little larger, since it will require the programmer to consider two major things; Which include file to use and how pointers works. (and a pile of other small issues too). But if you have done Pascal before C you will have learnt a lot about structuring your code.
And the downside today is that there is no easy starting language. Visual Basic isn't easy to learn, and I wouldn't recommend it for beginners since it's permitting too much that can be considered bad manner. Classic Basic isn't really good here either, but you are at least limited to differ between Integers, Floats and Strings while VB is also having a big pile of objects with unknown properties to make a mess with.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
Because I do
So far I haven't seen any mention of Hypercard?!
So it's around 1992 or 93, most people have never heard of the internet, let alone have it in their home, but the personal computer has taken off. You're in your middle school computer class where, like many schools, they have a room full of apples, newly upgraded to system 7. Some kids are starting out learning to point and click with a mouse. Others are beyond that and are learning how to use Claris Works for word processing. You like computers, and the teacher can see you've picked up the basics and want to fool around some more because, well, they're neat. She shows you a program called Hypercard. Looks kinda like paintbrush, but also has stuff like text fields that can be moved around on the page. Your assignment is to write a report in Hypercard about anything you want, and with this program you can mix pictures and text.
On second look, this is a little different than paintbrush. It's only black and white, which kinda sucks, but it has some redeeming features. The page is a "card" and you can add more cards to the file to make a "stack", and flip through them using the menus. Hey, you can drop on buttons too, and make it so they take you to the next card (or any other card). That would look better in the report. Alright, it looks nice now, guess I'm about done.
Hey, Skip over there has a button that makes a little insulting message pop up when you click it. And he changed the button choices in the box. How'd he do that? You can't see that choice here anywhere...
Aha! The button actually has a "script" connected with it. You can pick the button with the selection tool and then open up that script. Lessee...
on mouseup
go card 2
end mouseup
So that controls what runs when you click the button, and you can change that middle part to something else...
At this point, you're hooked, and after looking at the included examples or over someone's shoulder, soon you're using loops with counters, and setting properties of objects:
on mouseup
mymsg = "Testing "
repeat with x = 1 to 3
mymsg = mymsg + x + "... "
set text of field 1 to mymsg
wait 1000
end repeat
end mouseup
I spent a fair amount of time playing with Hypercard. Actually, I'd started with GWBASIC back in 3rd grade, but Hypercard was the next step. I'm sure I got some syntax wrong, it really has been a while.
One time I made a stack that I insisted used an unbreakable code. I was almost right - I'd just reinvented a one time pad but it depended on the machine's pseudorandom number generator. Point is, I had a nice gui frontend, and the code basically added the text of two fields, a character at a time, and spat the output to a third. That was one of many odd projects done on a whim in this very easy, very intuitive, very elegant tool. The more you explored, the more the tool revealed its capabilities. It really encouraged playing around.
Vidi, Vici, Veni
Couldn't you just start a club and teach the interested kids? They might be a little less uptight when it comes to extracurricular activities.
"Bother," said Pooh, as lightning knocked out hi%#&(F*@NO CARRIER
i dont think it's kids' attitude that's the problem, but the way a computer is perceived these days. in the commodore days, a computer was something "mystical", something new and strange. that causes people (including kids) to experiment with it. compare that to today's situation, where computers are present everywhere, and there's much less to explore. kids see computers as gateways to the world wide web, to chat with their friends, to surf for pron, not as something "new and exciting".
me and my thinkpad, sittin' in a tree, c-o-d-i-n-g...
Old programmers: "I used to program up hill both ways!!" Stop it already, you are not smarter than the latest generation of programmers, in fact you are less valuable than the latest generation. Stop with this! The IDE of today is way better than your IDE of yesteryear. This kills me. Is this a post to stir up some nostalgia?
the "hobbyist programmer" has to deal with an overcomplicated environment. To be quite honest, just using a computer, for day to day things is a bit more complicated than *programming* it originally was. Computers are no longer tools for hobbyists, that come with the original basic on rom.
Now there's just a lot more computer to program, which is intimidating to a total newb, and a lot more *fun things for kids to do on a computer* than program. When I was 10, writing scripts in apple basic was about an equivalent amount of fun to playing the original oregon trail. If I had oblivion and starcraft on the same computer, would I have spent so much time screwing around with the computer itself? Probably not.
Now to even get started, you have to find and install a bunch of complicated software. For a kid, whose parents know nothing about computers, how is he even going to find out about python or gcc? Windows doesn't *come* with a development environment. Mac and linux do, but frankly most of the tools are pretty complicated by the standards of a 10 year old. Probably the simplest tool is python... but even python will require you go hunt through tons of documentation before you even *choose* what graphics library you want to work with. The SDL is the right answer, but how long will it take to figure that out? and is pygame installed? of course not. Graphics are important for keeping kids interested in programming... really, the only genuinely interesting projects that kids can work on are games.
The truth is, computers by and large are now professional tools and entertainment devices, and no longer hobbiest devices in the purest sense. Now we need classes to introduce kids to programming. Kids who go to high school in a fairly wealthy neighborhood may be able to take an AP computer science class in high school (my neighborhood was *not* one of those)... but by that point it seems too late to me. The point of kids programming to me is introducing them to the wonder of the art before they get caught up in the business and science of the thing.
We could easily fit some simple programming classes in gradeschool... but frankly, our school's are so unimaginably crappy, that everything before high school, and much of high school... is pretty much just day care. We could easily cut things out, like teaching kids cursive, and accelerate other things (like not waiting until 9th fricken grade before teaching algebra), to fit in some basic programming lessons, and maybe even a little logic and philosophy (golly gee!). However, the school's are run so incompetently in most places, and teachers are so concerned with keeping kids from dropping out (let em!), that public schools aren't willing to make the effort to teach anything of value.
What percentage of drivers could change a tire or their oil. How many kids can cook? Why bother... there are drive thru fast food all over and drive thru oil change places.
My first computer, a C-64... no tape drive.... if I wanted to play a game *god I loved telengard) I had to type it in from a magazine... then I got bored with the handful of games and started hacking them. Now If I want to pay a game, I shell out 50 bucks and pop it in. If my car broke down I bought a repair manual and figured out what was wrong and replaced the part... it's not that way so much anymore.
I've made both of my kids change their own brake pads and their own oil the first few times, just so they can learn a little bit about how their cars work and save a few bucks.
I've read/watched numberous sci-fi stories about a big machine that runs everything and begins to break down and no one knows how to fix it. That seems not only possible, but likely.
G
[quote]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".[/quote]
But this is at least a noble intention and I wish this method would have worked. Instead I had to learn all of these social skills in my twenties on my own.
The only kind of social skill smart kids learn during group-work for school, is how to help others with their expertise. This doesn't even teach you the skill to ask for remunerations in return.
Instead of teaching math, science and computing nerds more math, science and computing, there should be social skills classes for them.
Yes, It's a bad thing. I've been saying it for ages. Only I don't see the point of teaching programming in high schools because the teachers know less than the kids do. Sad situation, but schools here are crap. Kids can educate themselves, but aren't encouraged to.
Recently, a friend of mine asked me how she could get into programming, kinda like an additional qualification. Here are my thoughts on this:
... =)
Basically, what you have to learn is how variables work, what functions do, what loops and decisions are and which way the flow in an application runs. All things considered, I feel the best platform to start with *no* knowledge whatsoever is Visual Basic:
- the language itself isn't as strict or complex as C/++
- one line will already do stuff
- you don't have to know anything about OOP - an entry level programmer will not struggle with error messages regarding scope or initializations or inheritance - you can start with structured programming
- it's Windows, she uses it, most people use it, so she'll be better off than saying 'I once wrote a csh-script in OSX, how cool is that?'
Anyways, I had this introduction to VB.NET by Diane Zak (Microsoft Press) floating around which comes with a trial of Visual Studio. Gave her this and she's happy with it. However, I also cautioned her to move to something more complex as soon as possible once she decides to keep programming.
Options for her life after the trial period are IMO:
- PHP: most practical, platform independent, LAMP skills are nice to have
- Java: if she wants to be able to write actual complex applications and share them
- (C++): in case she really digs the technical aspect of coding
Personally, I would recommend learning PHP or Java to anyone who's programming for practical purposes as an additional skill.
Thank I had an Atari 800XL
still have excellent IT subjects, I finished highschool 13 years ago and we learned basic, Pascal, logo (LOL); and even did an external programming university subject while finishing highschool. Did alot of Delphi and Pascal coding in College and still dabble in it evey now and then, altho I'm disappointed Borland have gone the way of getting rid of "Standard versions" of it's IDE environments, I just use the Personal Editions of Delphi now. Kode
But this is at least a noble intention and I wish this method would have worked. Instead, I had to learn all of these social skills in my twenties on my own.
The only kind of social skill smart kids learn during group-work for school, is how to help others with their expertise. This doesn't even teach you the skill to ask for remunerations in return.
Instead of teaching math, science and computing nerds more math, science and computing, there should be social skills classes for them.
Yes, we do program, if you consider 14 (almost 15) a kid and C/C++/LISP programming languages.
This is a problem of concern not only to engineers and those in the "hard sciences," and a problem rooted not only in how people may learn how to program, but also to the everyday user who still views the computer as a magical box from which porn and solitaire emanate. Yes, engineers, physicists, and mathematicians (to name a few) should know how to program. There is nothing inherently evil about using straight C to generate a Taylor expansion for some series of interest; in fact there is a lot--aside from the development of intuition per unit investment of time which is indispensable for the student and of, perhaps, decreasing usefulness to the professional--that the specialist has to gain from applications such as this.
But programming shouldn't be useful only for geeks. Using a computer shouldn't be an experience restricted to those who can count past 18. I submit to you that there are very useful, although very complicated, devices that we use on a daily basis the general workings of which we may consider to be common sense. Blenders, washing machines, automobiles, and television sets to name a few. My grandmother knows that the little propeller on the bottom of the blender cuts food up, although she may not know exactly how that blade gets spinning that fast or anything so hi-tech. But still, there is a level of knowledge there that she possess from observing the apparatus at work. GE cannot knock on her door sometime in August and demand twelve dollars for all of the work it takes them to chop up graham crackers or whatever else the batty old ninny chops on that ridiculous thing. Although GE may come to her door and demand twenty dollars for getting the little blade to spin quickly, she possesses a degree of freedom.
There seems to be--and this is of course simply my own observation--a general progression towards greater absolute understanding (knowing more separate things about the workings although the entire general workings may be, relatively, as vague) of a device as its complexity, capacity for danger, and usefulness increase. You probably know more about your car than about your toaster. It may be general stuff--I put gas in my car. When I turn on my car the gas somehow makes the wheels spin. My car goes when that happens. Turning the wheel makes the car move. Hitting this button makes it slow down; this other one speeds it up. When I put toast in my toaster and push down the button, it toasts the toasts. Then the toast comes back up. There are fewer operating parameters.
Of course, this is contestable. But what isn't contestable is this: Black and Decker has never come to my house to tell me how to not break my toaster. Microsoft tells me repeatedly not to break my computer.
How can I accept--increasingly--the dependency on the Big Boys of Software Design to figure out how to make stuff easy for me and my grandma? When is she autonomous enough to break the damn thing if she wants? Yes, I understand that the point is to make things easy for her. That's a very noble goal--but what sort of users are being created from this process? What sort of world will we live in thirty years down the road when my exquisite knowledge of 80X86 assembly language (I can change a JMP to a JXX and vice versa. This is NOT impressive.) will be rendered on widescreen HDTV and paraded about with captions in big friendly letters? Who will Microsoft hire then?
A couple of previous posters mentioned the Apple ][e and the Apple BASIC it had. Personally, I think that this is an idea that was not only necessary then, but also necessary (although for slightly different reasons) now. Unfortunately; the relative amount of damage a newbie could do with BASIC for the given set of system specs at the time was monstrous compared to the relative amount of damage a newbie could do (in just about any programming environment) in Windows today. If you get some of that hot gaming action on your computer and try to, from zero (or even nonzero--in fact, let zero go to infinity) programming
When hunters/gatherers started to cultivate the land everyone needed to work in the field. It is still happening in many villages around the world during seeding/harvesting seasons. Now when technology matured, very few people need to do that to eat the fruits of seeding/harvesting, and even people who are in this business do not take the seed with their hand and put it into the ground. They use it with powerful machines.
When computing started, almost everyone needed to know how to program computers to use them. Now technology matured, so very few people need to know how to program it in order to intelligently use it. In the computer related fields very few need to actually to code. Majority is needed to test the code, to manage coding, to sell the code, to market the code, to plan the code, to "project" code development.
Programmers are like peasants of XXI century. Everyone uses the results of what they are doing, but actually very few will have to actually code.
You can be very talented user of computers nowawadays: amazing gamer, the master of AutoCAD, or Powerpoint wizard.
I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
I agree with that and my theory is only about gaming.
...
....
When we was young, we were attracted a lot by computers because we knew we could play games on it.
But, at this time, games were not so easy to have (no internet) and were not always running on your system and, also, were less polished, less complex.
In order to play games, we had to understand the system, type commands (even without understanding them), wait patiently for the game to load itself,
Some of us had perhaps hundred games on floppy disk, but we were always looking for more. Eventually, we would found some BASIC manual with code of games as examples. And patiently copying all the code without understanding it in order to play the game. The game itself were not so different than commercial games.
My personnal experience is the following : in order to play quickly one of my hundred floppy disk, I programmed my first QuickBasic application to have a menu displayed on my DOS screen. I also discovered "Gorillaz", in DOS 5.0, and wanted to have bigger explosion. I tried (with success) to understand the code of the game. (but I didn't understand why I had to "compile & run" in order to play... Well, I did it without further question.
I also had a game that would not launch itself if you have less than 4 Mo of RAM. As I wanted to play it anyway, I read the whole DOS 5.0 book and discovered that you can fool the system by carefully editing some autoexec.bat, system.ini, etc.... Indeed, the system would be very unstable, Windows 3.1 would not start but at least I could play. It tooks me two or three major crashes (and computer back to store with my father not very happy) to find the suitable change.
In conclusion, I wanted to play game and I discovered that hacking the system in order to play the game was more amusing than the game itself !
A lot of my geek friends followed the same way.
In today's computer, you simply have to click on a button to play the game. More, games are so complex and so polished that a litle self-written game is nothing but crap. Try to show "gorillaz" or "nibbles" to a young WoW player
I don't think that they are dumber than us. They just have less opportunities to discover how hacking and programming is cool.
Ploum.net.
I'm just about to start at University here in the UK this October, and I have already done programming, having started when I was 8 on Visual Basic. Most of the people I met at various interview days at the universities I had applied to were also serious coders, and some were free software dudes too. At my prep school (ages 8-13) a fair few of us (probably about 30, in a school of 200) used to code because the school seemed to have quite a tradition of encouraging people to code.
As for the calculator comment above, though, most of the mathematicians here just use the calculator (TI-83+) and download programs for whatever they want to do. As far as I know, only I and one other person have ever actually written functions for them, and to be honest, it's a bit of a pain given that there's no QWERTY keyboard on a TI-83+.
George Wright
... and I *do* program. so far, I've jumped on the chance to learn how to code in C, shell scripting and Python, HTML, CSS and PHP (does that count??). I've also jumped on the idea of building my own network with a Linux server.
It know how to build my own ethernet cables (not hard, but it proves that I will go looking for stuff to learn).
I only know of 1 other pupil in my entire school who can program, per-say (given, he does it in Visual Basic), and a different pupil runs a MS Windows server (in London, where he's bought some space on it, and logs on from time to time and updates it etc.) I know of one other pupil who uses Flash + ActionScript, and creates things that way. That is the extent of programmers in my school.
There are 900 pupils
The ICT lessons are just that, how to use MS Wort and MS Excel. I took ICT thinking it would be interesting to me, a programmer, but no, it has just been boring. They're training us to be office gophers, although I have heard rumours that it is possible (with enough requests) to do computing or computer sciences in 6th form, but they are just rumours.
Im 16 and ive been programming C++, Basic, Java, JavaScript, ActionScript and PIC chips since i was 11, schools dont teach programming, even with the calculators your told what to enter, not what the code does or why it does it, kids dont program because the vast array of downloadable applications and enthralling games out there means they see no need to program, its a dying skill. I know i programmed because my computers didnt do what i wanted, talking to various people they informed me that basic would be pretty easy to learn, so i did, and then some. But on the whole issue, we dont learn anymore, the PlaySation 2 comes with YaBasic on the demo disk, when i asked people in my area did they use it the most comprehensive response i got was "its some porgramming thing, i couldnt be bothered", which really shows our future.
Then came teletypes where you could only use a simple line editor, so the expeience was not that different from punchcards. Then came the permission to write interactive programs, where you could get keystrokes, and make something happen on the teletype (or screen, later) that wasn't just what you typed.
Then, for me came the lab's Commodore Pet with 512 bytes of RAM. You weren't spending your precious x units of processing and storage allocated by the administrators when you played with it. It was just sitting there if you weren't using it, so you used it (or more often you hung around while someone else used it). That was when the computer experience really caught fire. There nearest equivalent I can remember is getting broadband at home, but that was nothing like the rush. Okay, there was RACTER, and there was a bug squashing game, and there was a static StarTrek game on the mainframe which the admin kept trying to delete, and not a lot else. But it was glorious.
Then came machine code on the Spectrum or the BBC Acorn. You weren't living in the tidy little OS world; you were making the little bits in the thing do what you wanted personally. Man, you were baaaad!
Now, if a kid asks you to teach them programming because they wanna write a videogame, what do you tell them? It takes ages. It's lots of typing before you get to see the first thing move. And all you ever write will look incredibly sad compared to the other stuff on the computer. It's not the act of learning that daunts people, but the examples of what has already been done.
Maybe webpages are the way to go. The standards are not so high. Many good webpages are entirely static. Kids can use familiar tools to edit the bits of graphics. Then they see a bit of animation, so you show them how to look at the source, and to google and wiki for the bits they don't understand. If they then say they want to learn programming, they understand what they are asking for.
-JM
I'm using the programming language Game Maker (4th generation, Object Oriented with 3th generation programming language) and I notice the avarage age within the Game Maker Community is about 14 years old. Lots of children are still interested in programming and creating programs and are willing to spend large amounts of time in this. This program is to used more and more on schools around the world and children really are motivated to create computergames.
Last sunday I gave a class on how to make computer games at a group of 11 year old kids and they really loved the idea of being in control and making there own games. The only disadvantage is that all these kids want to create the next 3D GTA game. But kids really do still spend lots of time in programming.
My freeware games
My first computer was a ZX81. 3.5MHz Z80A, 1KB of RAM {soon expanded to 16KB}, 32*22 text or 64*44 graphics, upper case only, mono, unreliable cassette interface, slow. Got as far as I could manage in BASIC, couldn't get anywhere in machine code. Graduated to a BBC model B, 2MHz 6502, 32KB of RAM {of which up to 20KB required for framebuffer}, various colour and mono text and graphics modes, blindingly fast by standards of ZX81. More sophisticated BASIC allowed for some stunning graphics programs {you could write a program to draw an animated scene -- the beeb could draw filled triangles, and palette switching was a doddle} and integral assembler meant I was doing 6502 machine code before I knew it. Was also building stuff to plug into the expansion ports, like a device with relays for controlling Lego motors. Now more comfortable with the basic concepts of machine code, having learned to program an easy one, I returned to study Z80 machine code, this time on a Spectrum 48KB -- everyone knows the specs of that machine. And to plug some homebrew goodies into it. BTW, it's a bad idea to short A8 and A9 together; your program will crash and stay so even after you remove the short, requiring a power cycle.
..... well, if you knew the right addresses, you probably could write a program full of POKE statements that would do something stunning. But those addresses just weren't in the manual. Also, we were told that we could program it in C; but it didn't actually come with a C compiler. At least PC operating systems do come with a C compiler nowadays!
..... anyone remember that? Probably some people experimented with modifying things {let's see what happens if we change line 210 to read LIVES%=255 .....} At least we do have the internet nowadays ..... or what's left of it, anyway ..... so there's an opportunity for beginning programmers to share the knowledge they acquire.
Then came my first 16-bit machine, the Commodore Amiga 500. 7MHz 68000, 512KB RAM, graphics to blow you away. And though it came with a version of BASIC, of sorts, it seemed very limited. The Beeb allowed you to do anything in BASIC that you could do in machine code. Anything that the computer was physically capable of. Even the Spectrum gave you access to the I/O with IN and OUT statements. The Amiga
That, I think, is when the rot really set in: when computers and peripherals were no longer supplied with all the boring technical manuals {I even learned some PostScript reading a laser printer manual}.
All that being said, most of the people who had 8-bit computers in the 1980s were using them just for games; not very many people mastered BASIC, still fewer machine code. If they did any "programming" at all, it was usually typing in listings from magazines
Je fume. Tu fumes. Nous fûmes!
I'm impressed that this thread is not full with references to the LOGO programming language. LOGO is still (after decades) one of the best example for teaching programming to kids IMHO. And by "kids" I mean persons bellow the age of 12.
There are some commercial flavors (some are quite impressive), but my teaching of LOGO is based on the FMSLogo released under GPL http://fmslogo.sourceforge.net/ (an updated version of MSWLogo) and of course the Berkeley Logo (UCBLogo) is a nice way to go, too http://www.cs.berkeley.edu/~bh/logo.html.
For starting, you get an interpreter ready to listen to your commands and an editor to "enter many commands" and/or group them in methods and many more nice things (you can of course write quite complex software, but for me this is not the point). You get to know a programming language which is alive for decades suited for children and why not teaching material about fundamental programming concepts which are mature and build over decades.
Understanding concepts like: a computer program (writing, saving, loading your source), program input/output, writing and calling methods (functions, subroutines whatever you want to call them) with or without parameters, syntax errors, loops which is not that trivial for small ages gets easy with LOGO and moving this turtle to draw on screen is a nice way to enter this world at these ages.
Afterwards there comes variables, decisions (if-then-else) and you have an environment to teach all the principles of programming which are used almost in every programming language the kid might be interested in the future. All these while moving a turtle (=having fun).
BTW, before the OOP paradigm became such a standard as is today, LOGO from the early beggining was kind of Object Oriented; the turtle is an object and commands to the turtle like 'forward 30' or 'right 90' are turtle/object-centric (object methods). Nowadays you can have many objects (turtles) moving around (our turtle is a class). Not just for historical reasons, kids at these ages get into thinking giving commands to an object which is a nice thing to have in their minds for their future findings in programming.
a problem, But look at computers now a days. Most of the time the computers are setup and need no programming. Compared to the old computers. The schools just don't see the need anymore. I do wish they would offer a few programming classes in High schools. Mine offered 1 class and all we ended up doing was making a poker program in c++. As it is now if your job is going to need programming you might as well take a few college courses on it.
Why be a programmer when you can be a videogame artist! The fame!, the incredible pay!, the power to create!
:)
sigh... Seriously jobs in computers suck
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.
Speaking as a kid and a teen, I've always wanted to get into programming, but I've found it very difficult due to a number of restrictions in the UK education system.
Firstly, I'm currently in Year 12 - and our computer lessons for the last 8 years have been solely about Word, Excel and Powerpoint! After one year, we already knew more than the teachers, the rest of the time has just been absoloutely wasted.
Doing my A-Levels now, I hoped it would be different. Unfortunately it is not. We have to do a big project and writeup, I was hoping to do some programming - but no - programming is banned!
I quote from the specification: "It is not within the spirit of this syllabus for candidates to use a stand-alone general purpose programming language."
Our teacher told us we could use VBA in our Excel spreadsheet project, which is what I did, hoping to get at least some programming done. When I got the project back from marking, I'd been deducted 2 marks for including "too much programming". I guess a small amount of code on each sheet was too much.
For most schools, programming is a thing to be feared! It should be discouraged at all oppurtunities, and it is. To make it worse, there are no teachers that know anything about it.
There's nothing I would love more than a little encouragement or oppurtunity for programming within school, but it's not going to happen. Silly really, when almost all computer-based university courses involve programming, and everyone will be unprepared.
To make it worse, I can't even do programming very well in my own time. Homework, coursework, revision is stacked so high, that there's just no free time in the school term for things like learning to program. The only chance I get is the summer holidays (6 weeks a year). Normally anything I've learnt by the time I get round to the next holidays a year later, I've forgotten most of it. This makes it very difficult.
The point is, many people, like me, want and have always wanted to do programming, but in a school system that constantly discourages and fears it, there's little we can do.
I went to an all girls high school. In our first year, there was a term long general IT subject that did exactly that. Taught us how to use Word, Publisher, powerpoint, Excel... Basically the whole Office suite. And that was it. Seriously. Throughout the rest of my hig school years, I never once had another IT subject offered to me. And it pissed me off majorly. It was one thing to be a geek (and the only one in my year level come to that) in an all girls school. It was another to be a geek at an all girls school that didn't encourage the computer-inclined.
I'm now studying programming, and I'm struggling. It's what I really want to do, but I'm finding it hard because many schools don't offer the background needed to be able to go in with at least some idea of programming. All the guys (I am the only girl doing it too) have some idea, because either their school offered some better IT subjects, or their families are also very much into all aspects of computer, and in some cases both of this applies.
We should be worried about the quality of IT subjects, but also at how many schools offer them. I would have loved to have gone to a school with more IT opportunities, but was told I had to stick it out at the high school I was with. I don't know whether it was because i was at an all girls school that was why we didn't have more IT subjects, but shouldn't people of both genders be encouraged to learn more abot IT seeing as its so abundant in most workplaces? We're encouraged to learn biology, but how many of us will end up working in the fields of medicine and botany?
Back in the days of yore, most computer in schools werent networked, didnt need a "computer guy" to service them, they were pretty much controlled by the math/science/computer teacher.
Nowadays, teachers have little say in what you can do on the computer, the school tech does, and the average tech has the "it's mine, you cant touch" mentality and usually blocks anything that is beyond his knowledge or beyond what he wants others to know.
At my alma mater, there was a computer repair class, but I have severe doubts it's even there, they took out cisco after several complaints and grievances from the school tech because it "allows kids to hack the network, or learn how to do it" and computer repair was threatened to be rid of because "it taught the kids how to take apart computers and they could learn how to steal parts or mess with "his" computers" The programming class was limited to Visual Basic. C++ wasnt allowed because "you could write hacking programs and viruses" with C++.
This man also hated me because I insisted on building a linux server out of scrap parts, I'd find it stored away, keyboard taken, or unplugged every other day. he would also try to get the teacher to fail me out of the class..
Also ran into this shit at my first highschool, both my junior highs, and my elementary school.
"computers are look but dont touch" mentality gets rid of the whole point of them being in an educational environment.
The schools just see them as tools to ease their own jobs and responsibilities, just how televisions started teaching things in many classes like science.
The most public education wants from you is to learn basic office skills so you can better serve your corporate masters and not do anything that may eventually change society. Want advanced computer skills out of school? go to a private school that promotes technology. Because it's rare that a public school will as it's against the grain.
Plus students shouldnt be touching or interacting with such things! how dare they try to learn beyond our comprehension! HERESEY!
They wonder why students destroy or tear up computers and mistreat them...
I'm 15, not sure if that counts as a kid but i'll just post my experiences here anyway.
Somewhere when i was 14, i was really involved with the Motorola E680/A780 hacking scene (for those who don't know, these are motorola phones running Linux). I managed to telnet to them and i started trying all kinds of things on them, basically exploring even though i had no idea what i was doing. There were a lot of other experienced people in that scene though, including for example Harald Welte. As such i learned a lot of new terms and new things. Wikipedia was a great help in this.
So, after a while i wanted to start programming. When it came to choosing the language, i wanted either C or C++, because most of the programs for the phone where in those languages. I eventually went for C. So i went over to my local bookstore and got this big book, named C, The programming language by Al Kelly. I started learning and reading it, and managed to produce some small programs. I still felt stupid though, since they were command line! I mean how stupid is that. And the book didn't teach anything other than usage of the C stdlib. Also, i kinda got bored really fast with CLI programs. School didn't help either, which just thaught us how to use MS Office and Ms Paint (really!).
So, to sum up, i think the problems are: no necissity of doing in anymore, high entrypoint, i'm one of the smarter kids in my class and im doing Gymnasium and i thought some things of C were fucking difficult, and that we take GUI programs for granted nowadays.
I'm a Highschool Computer Science teacher in the UK and the answer as far as i can see it is NO (though I wish the opposite). You see, here in the UK we have something called League Tables for schools and those tables RANK schools according to the grades that their students get. Higher ranked schools get more money, lower ranked schools are closed.
... of which programming is one.
... but it has a higher fail rate than say making a presentation in Powerpoint if I have a high fail rate I lose my job, if I have a high pass rate I get more money ... Programming and Powerpoint are equally ranked ... I teach Powerpoint.
One of the effects of the League Table system is to eliminate the "Difficult but Fun" options from classes
I *COULD* teach programming to students
i'm a little late to this thread, but for the past 3 years i've been volunteering for a 1 hour/week 'computer club' at my daughter's catholic school. i usually have between 7 and 10 6th, 7th and 8th graders who learn vi, creating a web page (in vi), shell scripting, perl/cgi, using yum and rpm, cvs, and what to do with all those files in /etc. in short, it's a crash course in linux systems administration, light programming, and user maintenance.
sure, it's hard for them to wrap their heads around all i throw at them in 1 hour a week, but i can easily tell which of them are adept and will easily have careers in IT.
they also learn other lessons by accident, like noticing the fact that in 3 years there's been only one girl who stayed with the club, so a career in IT is probably not a great way to meet women.
in any case, it's possible that next year we'll be expanding the club to a regular class for the older kids where they'll learn just one topic, like systems admin, or programming, or whatever. all this is still up in the air.
the most frequent question i get asked by them is, "will we learn how to program games?" and i tell them "yes" because one of the perl programs we write is 'russian roulette.' it's a great way to teach the logic that's necessary for programming.
When you recognize love in another and realize how precious it is, everything else seems so insignificant.
we do it.
i started programming when i was 12.
programmingä obligatory in many educations hio.
we have beautiful girls to
cheers
It is simply too difficult to write programs for PCs now. The description of methods and data structures for programming in Windows would fill a bookcase or two. This vastness overwelms most beginners.
A much better starting point are the simple microprocessors like the PIC series. These still have a basic IDE interface and a limited number of commands. They teach writing, compiling and debugging in a small environment with quick rewards.
I'm 13, and I consider myself fluent in Perl. About a year ago I decided to pick a language to learn. I picked Perl, downloaded "Beginning Perl" (a free online-edition exists, FYI) and read on. My latest project is a browser-based RPG powered by Catalyst, Perl's MVC framework.
"Let's face it, it's a good story. Accuracy would kill it."
It shows some perseverence that you learned 8086 machine code. I believe it was a long story.
Maybe you should also learn a nice assembly code like 68000. Still one of the neater ones out there.
Work in a cubicle for $40000 to $150000 while surrounded by fairly intelligent nerds...
What will the salaries be once more and more jobs are outsourced? Probably closer to $40K unless you posess special skills.
I think that programming is vastly underutilized. I see very intelligent people doing mind-numbingly repetitive tasks that could be taken care of quickly and efficiently with a short program. Even Excel functions can be used to speed certain tasks. Problem is that these very intelligent people just don't know how to program- in any language.
There is the other extreme however- spending an hour on a program that would have taken 30 minutes of time to do manually. Oh well- price of being a nerd.
When I entered the university to study computer science I'd never written 1 line of code. I'm wondering if that would have made me a better software engineer? I think not. For me it is all about abstract thinking.
In my opinion you do not need to know how to program a computer, but how to solve a problem in a structured manner. Knowing a programming language (or architecture for that matter) very thorough can even make you narrow minded: thinking only inside that box.
In other words: what makes a great novelist: mastering a language very thorough? Or having great ideas and thoughts to write about? Probably both, but which is more important?
Only mastering the language very well -> very dull books
What I'm trying to say is that every practice has different layers of depth, only in the field of software engineering those layers are not very clear yet. An engineer designing a bridge should be an iron worker as well?
Furthermore: wrong habits are hard to loose. Teaching your self to program stuff helps you to understand a lot of things, but can also learn you some bad practice.
BTW: do you think today's lawyers were spending their childhood wrestling through legislation? Or were they playing with other children?
Programming requires highly developed logic skill which can probably be applied to other situations which require formalization. So, its not good people do not excersize programming at school... It will have overall negative impact on human intellectual potential.
For example, physical training is seen "more important" by public as it is healthy. But ability to think in precise terms is something everyday life shuns. So we see a lot of "Easy to do...", "No brainer" things. The whole industrial progress is centered around making people think less.
Yeh, I was placed in some sort of program in 1st grade, and ever wednsday I'd ride the bus to another school and do lots of interesting stuff, and one of those was doing simple little programs in Logo (this was the late eighties).
As I recall, I rather enjoyed it. Also, I still hold the interest in programming, even though I'm not a programmer per se.
--The universe will not be altered by forum threads, even those which are very wry. --Tycho Brahe (Penny Arcade)
I entered college without knowing how to program anything more than a very basic TI-89 equation.
I'm perfectly "up to speed" per se on programming, and was by the beginning of year three of college, often being the guy asked how languages work by my other friends who've been prgramming before they hit puberty.
When I was a TA in college for the intro class, 75% of the students who did know how to program had some VERY bad habits or misconceptions that needed kicking. The other 25%, of course, were years ahead of everyone else, but the people who didn't know how in the beginning but just applied themselves did much better at it after a class or two. Most HS teachers SUCK at teaching programming.
Why does this matter? I don't get it.
Programming is not an especially hard task. A new way of thinking, sure, but so is almost any highly technical skill in engineering. I'd personally say electronics, robots, fabrication are a more valuable "skill set" to play with as a teen, as they give you practice in the hacker mentality, however require much more basic practice to be proficient in.
--Michael
Want to see every step I took to start my company? http://www.rowdylabs.com/blogs/pitchtothegods
Figure out the most effective way of accomplishing what you want to accomplish, and do that.
Sometimes this will be college. Sometimes it won't be. Sometimes you'll get partway through college and realize it's no longer the best way to spend your time and money.
I've dropped out of college twice. The first because I wanted to do something useful. I went back to finish my degree and lasted one semester - it was not worth the time or money. Now I work at Google and put together plans to start my own game company.
Would a college degree help? Possibly. I won't argue that. Would a college degree help enough to justify the thousands of dollars of money and years of time? No fucking way.
This is my road. It's not for everyone. If you want to go into academia, stay in college. If you want to go into physics research, or biotech, stay in college. But for a lot of other things, it might not be the best move.
My advice to smart people: Think about it seriously and make a decision based on your own situation. You're smart, right? You should be able to do this.
Breaking Into the Industry - A development log about starting a game studio.
Over the course of my day, I see many kids in school using computers, solely for the purpose of playing games like Runescape. Why program if you can do that? Why bother with the inner workings of computer software?
I had to teach myself to program, with the aid of Herbert Schildt's books. I learnt C++ and Java, and of course HTML, CSS and PHP. I do a lot of stuff with my computer that my friends can't comprehend: running Linux, making programs and small games, and geeky stuff in general. The reason they can't understand it? They don't want to.
A lot of people think that it instantly makes you an outcast from society to program. A lot of people think it's impossibly hard, and that only super-geeks can do it. A lot of people don't even know what OS they're running: they just use a computer to use MSN Messenger to talk to their friends, and occasionally to do homework, or make a crappy website with an online site editor that makes awful pages. I've even had some people say that computers would be useless if it wasn't for MSN Messenger. That's a worrying thought.
I certainly hope that my school is the exception rather than the rule, but I think it might take a few super-geeks to help educate new programmers.
I'm 14 and a high school student. I happen to be a programmer. Never taken any classes on it. The biggest reason that high school students no longer have much an interest in programming is because (in my experience) you end up missing out on lots of social experiences, especially those with that of the female sex. I think that in the mind of most high school geeks, girls are becoming more important. Hell, I almost gave up programming for a girl.
Another thing is that high school computer science classes suck. The grade 11 course offered at my school (keep in mind that I do live in Canada) teaches Turing. Ever heard of it? I sure freakin hope not. It's the most useless language one will ever come across. It is good for absolutely nothing!
You Python fan boys are getting to be as bad as the Gentoo crowd! Python is in no way shape or form, a replacement for C. Python is a scripting language. It may be suitable for RAD and prototyping, for which it was developed. But, it is not suitable for "production" applications! Pyhthon may be better than Lisp but, that's not saying much at all. You'd have a hard time finding Lisp programmers anywhere, let alone India.
Tcl syntax is not nice (and I say this as someone motivated enough to learn it myself purely out of interest). Sure it has it's fans, but by and large only among people with degrees in computer science. It is pretty unsuited as an easy to use language for the average "curious" computer owner. There are a few nice ideas in and around wish, but the fact that it uses tcl is not one of them.
:)
MS Windows if it lived up to it's name would allow you to right click -> new window and let you start programming the window there and then (in something nicer than Tcl
From what I've seen in my highschool, kids are just lazy. I get people coming up to me quite often and asking me questions that could be easily answered by getting online or taking a 5 minute walk to the local library and checking a book out. But no, I'm always asked, "Will, how do I get Linux on my computer?" "Will, how do I learn C?" "How do I make websites?" "My computer's broken and I can't make it work, can you help me fix it?"
So far, I've only seen two people install Linux and continue to use it. I've also only seen one of those two continue on learning a programming language and becoming sucessful with it (successful as in they can do what they want with the language without having to have a function reference open all of the time).
While there is usually the stigma of being the "computer nerd," that's definitely not been an issue in recent years. What's been the issue is that it just feels to me like we kids are just expecting it to work, or maybe we don't really think that programming would be beneficial to us. I know that the outsourcing scare unsettled me a bit, but the majority of the time it just seems like we're not exposed to many job opportunities. I usually hear something about how we should just concentrate on highschool while we're in highschool and save all that specialized education for college. There's just a general sense of either apathy or laziness among the students, at least in my school.
Of course, there's going to be different results in different schools. My highschool is in the same building as the junior high, and there's about 1000 people total in the building, 700-800 for the highschool alone. We're also suburban, and we've got a lot of students with really well-off parents who like to spoil them. This might have something to do with it.
I'd assume that in a bigger highschool, there would be different results, especially if said school was pulling more than just rich kids or poor kids or what have you.
My name is Will, and I'm a sophomore in high school. I know HTML, CSS, Javascript, PHP, C, and moderate Linux system administration.
Windows ships with visual basic. It's simple, easy, and you can write a 1-line program with visible results in it. The only thing wrong with it is that most people (see: yourself) don't even know it's there.
You can also program the shell in windows, but that's shit. Macs and Linux come with python, bash etc.
have a degree in physics (having written small applications in approximately 9-12 languages, depending on what you count) and am working at university. Whenever I talk to new students, i have to note:
* The ones which like to program are better than me - they started a few years earlier.
* "Intermediate Programmers" e.g. knowing something like 3-4 languages don't exist any more - only students who just learned one language and understand the computer only from this viepoint (=they did not understand the computer; funny things like beeing completely unaware of cache when writing numerical applications sometimes occur).
So I would call it a bipartition..... It seems that the growing complexity of programming systems makes it harder to be of "intermediate skill".
And, Yes, we should care.
Whenever the chance arises I talk my potential interns into Python or some other OS PL and away from Word and Excel. I also bug them into using and learning jEdit.
Geeks gotta learn to spread the love to prevent MS from taking over. Todays Comps are to bloated to show their inner workings imediately, we have to help the Padavans look inside of them.
We suffer more in our imagination than in reality. - Seneca
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. I'll let you in on a secret.
In 10 years, she'll have a nice job as the production manager at a TV station, and you'll be a pissed-off mid-level geek, who never gets to talk to people outside your department you think that everybody who doesn't code is a moron.
I've been writing various flavors of code since 1975, from ASM to PL/SQL Java, and found that the real secret is that people just want their stuff to work. They don't care what you wrote it in (or even if you wrote it) or how elegant your algorithm is, as long as they get what they want, when they want it, and the software doesn't confuse, annoy or yell at them.
The most valuable part of an education is learning how to deal with people.
http://whytheluckystiff.net/articles/theLittleCode rsPredicament.html
Before I say anything, I'm currently a senior in high school and will be attending the University of Pennsylvania next year.
/.ers, I could spend my entire day in front of the computer hacking away at something or another. But I really find myself crunched for time. School nowadays is really time consuming especially for some of us highschoolers keen on attending good schools. As of right now, I'm taking 2 classes online in addition to 7 in school and with extra-curricular stuff, I barely manage 3-5 hrs a sleep a night. So, even though I might WANT to program (which I do) I really have no time.
I am really interesting in programming. Like many other
Yes, you're right. The computers at my school have a few games, dealing with math and such, a learning program called Plato, Microsoft Office, and Internet Explorer. Kids are interested in computers, just not how they work. They just see computers as ways to talk to friends, play games, and listen to music. I have been interested in computers since I was a small child, and started learning Python, for I hear that was one of the easiest to learn. These children are the future of the computer world, I'm sure of it, but there won't be many. Honestly, I think children are too lazy to program. It'd be something like # u ned 2 raed the words print "U r raeding the words" They are too lazy to type. But, I do have do have to admit, there are a nice handful, harder to find, around that are actually interested. I find the best thing about sites like MySpace is customizing the profiles with the HTML. A few kids would actually try and learn how to do it. Most would just get a template, though. Kids are learning to be crafty, only some, using proxies and such to get on innapropriate sites at school. So, I'm not going to say all kids are uninterested. Maybe when they are older, they'll get interested, but they'll fall behind the kids who started at 13.
Yes, I do program. Though admittedly, I am in the minority.
At 14/15, I had fun with the TI calculators in math class. I was making really long, stupid programs that had absolutely no structure and contained hundreds of goto's.
Programming excited me, so I decided I wanted to learn a "real" language.
I bought a book on C and learnt that. I had so much fun with C (pointers, structs, and the last thing in the beginner's book: linked lists), that I decided I wanted to learn C++.
After buying a big ol' book on C++ (C++ Primer Plus, not the best choice at the time), I worked through it, and had a lot of fun in the process.
I was learning high-level scripting languages (Ruby, Python), but I recently had the desire to program at a lower-level, so I am going through Thinking in C++ Volume 2 to refresh my memory.
Like I said though, I am in the minority. The computer science course at my school is awful (mostly due to the terrible teacher), and most kids are completely disgusted that they took the course. It is really a shame, because I end up trying to reassure them that programming can actually be fun, despite our teacher's miserable attempts.
I think there are plenty of young people with personalities and interest similar to mine, but they are not exposed to the "programming world". The image they have of programming is very negative (you know the one I mean), and what they're taught (at least at my school) is boring as hell.
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.
I program and im what youd probably call a kid. Program computer apps, PICs (pereferal interface controllers) and definately will continue to do so for a lot longer.
The ability to do whatever you want with a PC is way ahead of where it was 10 years ago. The question isn't whether a program will properly create your photo gallery/handle your e-mail/deliver news to your desktop, it's which free program will do it best. I don't think young people ever stop to think, I need to do this myself the same way they might have 10 years ago. A calculator is still pretty limited if you don't learn to program the stupid thing, or at least to manipulate someone else's programs. If someone cares about making the thing work at its maximum, they'll learn what they need to, but PCs don't make young programmers feel needed anymore... And, yes, I think it's a problem--a distinctly American one, unless we'd like to see highly trained Asians and Indians doing all the technical work 10 years from now.
And they love it! The main thing I can contribute is best practice stuff like commenting, CVs, team work and open source. I teach at a Minnesota charter school so I have the flexibilty to offer these courses. The draconian approach to IT in large scale school districts does not allow for students to get "under the hood"
Back in the old days, computers had built in programming tools. On the C64, the shell was inherently programmable. Most of the cheap text adventure games you bought were simply basic scripts you could look at. Back then it was hard to use the computer and *not* figure out how to write a simple program.
Along with the GUI abstraction came an almost paranoid desire not to use a shell. Programming is simply further away from the typical user's experience these days. They can barely install Firefox, much less get a full Python build environment working, and forget about knowing what in the hell to type into the magic box once it's up.
I'm a student who was unfortunatley scheduled into a "computer apps class" which was basically a windows biased look at the office products and remedial computer skills. I thought i had it bad with that class untill i found out that there was a remedial version below the class i was taking. I don't know how to program but i'd like to take the computer programing class at my school. I just don't see why they couldn't have combined programing and office (though i wish it was spreadsheets and word processing (instead of the microsoft products)). Microsoft is monopolizing the industry by providing resources that schools teach specifically. Hardly anyone at my school knows what linux is, and because they haven't been taught it, they probably never will.
os x also comes with bash, perl, python, tcl/tk, ruby, c (c++, obj-c), and many others, which are not locked to os x.
not that applescript is a bad thing. its like a tcl(1) of the mac platform, but thats not a general purpose language. of course applescript is a really good thing if your going to use os x alot. learning the given shell and how to script it will save effort in any platform you spend that much time on. its a good lazyness that equals efficiency (and creativity)
(1) tcl stands for "tool command language" it was meant to tie together other tools easily, but ended up just being its own scripting langauge especially after tk(the graphical part) came out. applescript is also meant to tie apple apps together with the finder and aqua, and also make simple apps easy to write. (its gui shell scripting) thus serving the same purpose for more graphically oriented users. the big differnces are applescript can access mac specific stuff (like applescript hooks in cocoa / carbon apps) and tcl/tk scripts can also run on unix/linux/windows etc.
such a long time ago was it now. Well, I did graduate in 2000. We had a 3-tier programming class in high school. Let me say, they were sadly deficient, at least for me. The first one taught QBasic, and I really hope they have since changed this and just start out with C. The next two classes were both of the C/C++ variety. I never took AP Programming because I knew I did not want to 'code' for a living. Turns out I might be doing more programming at my new job then I had originally expected.
In the classes, I was usually given free range to work at my own speed, which was typically far ahead of the other students. By the time I took the first programming class, I had already been using QBasic for a few years. The summer between classes, I took a class at summer camp on PASCAL. I believe the problem inherent to these classes, at least at my school, was that they were handled by the Math department.
The teachers had neither an interest or any practical experience in computer programming. The machines we used were also pretty sad at the time. During the class wth QB, we had old IBM PCs with no HDDs. Two floppy drives below a monitor, talk about out of date, even for 1996, when I first took the classes.
The machines for C/C++ were Windows based PCs running Win95. We did most of our work in DOS, a fairly painful experience, though it did not make much of a difference with the simple programs being written. I believe high schools with a large enough size should have a dedicated programming instructor. A teacher who has a degree in Computer Science or Engineering and actually has several years of experience in the area. On a normal block schedule you only need to fill up their course time for 3 blocks per semester, and I have to believe that would not be too hard by teaching classes in Java, C, C++ and, get this, Unix. I would make Unix the first computer course and maybe even get into simple programs in Unix. Then allow studnts to take courses in Java or C/C++.
Sadly, I do not think there are enough high schools that could fill up these types of classes to warrant a dedicated teacher.
"Some days you just can't get rid of a bomb."
Gah! I learned to program as a sophomore in HS (TrueBASIC) and have then taught myself C++ and JAVA. Most of my current job (as a sophomore in university and a lab technician) is creating custom drivers for custom built research devices. Kids don't program my ass.
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.
It still didn't discourage kids from wondering what made all that happen.
Hell, I learned Pascal on B&W Mac. But, even then you could see the outliers of what has happened. I can remember sitting there at 12 y.o. banging away trying to learn Pascal while other kids were jerking around typing swear words into King's Quest, then Sim City and onward until you have WoW and Nintendogs.
Most human behavior is inherent. Most people are idle and generally uninterested in growing if it is not absolutely necessary.
This of course is why geeks sit there snarling at much of the rest of the world. They have something to defend.
I scream. You scream. I assume that means we're both acquainted with the problem. We proceed.
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?
Basic was simple but, it taught horrible programming practice, and ended up a dead end since it was quite limited in total scope. On the other hand these days Python is free much more elegant, and infinitely more powerful. It's easy to start with, has a very linear learning curve, but is capable of supporting very powerful applications. In particular it is ideal for rapidly developing games with pygame and delta3d.
In the meantime, learning Python provides structucture object orientation and incredible data structures.
I'm writing up my thesis at the moment and I spent about 3 hours yesterday trying to figure out how to make a simple graph in Excel!
Seriously though, what do they teach in those classes? Don't you just pick most of the Office functions when using them to write up your projects? Surely learning programming or even web design in high school would be more beneficial to students.
Ironically when I was in high school, the school got loads of brand new computers when I was in my final year. The teachers wouldn't let us use them, let alone give computer classes because "we'd only end up looking at porn". I kid you not. God...just thinking about high school pisses me off...
I agree with the point you made about learning programming out of necessity and kids these days not really needing to know it. I do find it a little upsetting though. When I was in high school (a good 10 years ago), our programming classes consisted of Wacom BASIC and Turing. I begged and begged my teacher to teach us C. As I was finishing my high school career they finally brought in a small C++ class (which apparently only lasted a year or two before they canned it). If kids today have it so easy that they don't need to learn programming, because everything they could ever want is already done for them, then we're going to eventually see ourselves in serious trouble because no matter what is out there right now to make our lives easier, there is someone behind it who programmed it. Where oh where did all the programmers go you say? Well they were spoonfeed simplicity their whole lives. Why on Earth would they even consider programming at the time. Troublesome indeed. Is this a bad thing? Most definately! Should we care? If we don't we could possibly see technology in future generations regressing. Impossible you say? Who knows...
First id like to say: In my school there are 2 nerds that program. I bieing one of them. This may only be true for my area. Dont get me wrong but outher people take the AP Java corse. But NONE of them program for fun or in "free" time. Personaly I found the Java corse it mostly a how to book, a relly simple one at that. We cover the basics if then loops ... and mostly do written problem solving.
NONE of the kids are given examples of what u can do with Arrays and sutch. So they get no kick to motavate them to program. All they get it "it's a pain, Corps. are picky about remarks and format,..."
Personaly I think I lerned more from a Boreland J builder manual I found at a libray and red in a day.
I'm not planing to futher my education in computers. But I will ALLWAYS program and sutch. Ive mady manny class progects (history science...) in VB HTML(not gui)...And my TI-84 program for physics is larger then my pacman game ...=)
Needles to say kids are not motovated by the schools(at least mine)
manny schools are so driven to "secure" thir computers they block any program unless in's on a "safe program list" meaning "WE CANT RUN our favorate vb c++ or java exe " manny of which In the past I made for my outher classes.
They just expect that all we do it search google and write stuff in MSWord (get a better office /p> http://www.openoffice.org/)with an occasional power point. And oh, we need to teach them a computer lang. we will throw togeather a coupple worksheets.
Whenever I hear someone say that they have learned (or improved) their HTML/xHTML/CSS/JavaScript/ECMAscript skills by hitting 'view source' in a browser -- which is just about anyone who knows those languages -- it occurs to me that that proves the benefits of open source.
The web is the proof-of-concept of the open source movement.
Well, I'm 16, and I had at least decent experience programming in college. (To make a long story short, I was home schooled, IUPUI has a program that allows you to take any college course for dual-credit, so I started going at 13 and graduated early.)
:-)
I think I started off at around 9 or 10 years old. My interest mainly started with screwed around with Counter-Strike config files. I eventually learnt HTML, and I started messing with mIRC. I made a pretty extensive mIRC script, no dlls or anything, but a lot of mIRC programming. (I even made a program that captures images from my still-image local weather radar, and then saves up to 10 of them, and animates and loops it. It even refreshes every 2 minutes!)
Eventually, I downloaded Apache and started with PHP.
After that, I took some computer courses in Java (ick), and decided that I like programming as a hobby -- not a job.
The point is, I at least knew how to program. I didn't know how to program in anything like C++, but once you have the basics of programming down, it's not too hard to learn a new language. It mainly just has to do with memorization of functions, and whatnot.
I don't know if I'd be considered a "kid" by this story, but incase I am, we're still out here.
A friend of mine, who is 15, is really into Java, he is self taught and is really good at it. He created his own blog and has even got recognition from Roumen Strobl. His address is http://rekahsoft.blogspot.com/
I am a student in my final year of high school. Earlier this year I completed a two year diploma in programming (Java was my major language, but I also learned SQL and various programming and computing concepts), and have done a fair share of Lua scripting, along with basic C++. So I would say that some kids do still program, but we are in the vast minority.
The fact is that today's programs often require several programmers working for extended periods of time to produce anything even remotely impressive. Children's first encounters with the results of programming will most likely be in the form of games (whether they be recreational or educational), and this will be the level of programming to which they become accustomed. As such, when they learn how to print "Hello World" onto the screen for the first time, they are often less than ecstatic. When they learn that creating a fully functional GUI might take a bit more time and effort, all interest that they had in the wonderful world of programming often disappears.
This, coupled with the fact that most Computer Studies teachers can barely program, let alone teach programming, provides little incentive for kids to learn how to do anything themselves (my teacher, for one, has never taught the class the basics of OOP, and most students are afraid to ask a question, lest the teacher launch into an hour-long lecture on everything *other* than the subject of the question, and how Microsoft is the source of all his problems).
The problem is that most children are used to instant visual results, and have neither the time nor the patience to achieve those results from scratch (especially when doing so would result in comments such as "you should rather be picking up ladies, har har"). From my experience, most schools do not cater to these children either. They teach programming to those who are already willing to invest a lot of time and energy into it, and not to those who have a passing interest (there were over 60 people in my grade studying computers two years ago, now there are about 9).
I became interested in programming seriously about 5 or 6 years ago, in anticipation of the scripting that would be possible with Neverwinter Nights. I found that most teachers were less than eager to teach me a lot more about programming, and was forced to pursue my interests on my own (which, to say the least, was not very easy).
I think that, as games include the possibility for modification via scripting (NWN and WoW are just two examples), we will start seeing more and more kids interested in programming. Granted, there may be a learning curve involved, and the scripting can be a (sometimes) watered-down version of the real thing, but it can provide the instant result that will keep kids interested and the subject and wanting more.
I learned to do some BASIC when I was younger (I'm not that old) on a calculator because what was true then is more true now: programming is not nearly as accessible as it used to be.
In the old days you sat down, tinkered with BASIC and had a program running and you just kept playing - it was great. And calculators still offer that effect. But when it comes to making a basic application in today's world, you have 3000 steps to follow to do the most basic stuff. And that's how it should be because using complex IDE's and API's makes complicated programs possible. We shouldn't worry about programming at an early age. We should worry about spreading the message that there are jobs out there for new programmers because right now there's still the belief that your bubble will burst if you dream of becomming a programmer.
I'm 13 years old, and I know PHP, ASP.NET, C++, C# and CSS - although I don't really consider stylesheets coding.
.NET IDE - google it) and some Visual Basic tutorials I'd written a while back that were a lot more kid friendly then what he had provided (as they had been written by a kid). Since then, he's thanked me profusely each time we meet in the halls, because about twenty more students had signed up for the course since then.
I think it's really because my dad works with computers, and we generally go for what our parents do. Alot of my friends don't even know what their parents do for a living - they simply don't care. I've tried to teach my friends simple languages like Visual Basic, and they seemed somewhat interested, but when they do turn on their computer, the instant gratification of playing a game, or looking at internet animations, or talking on instant messenger seems to overcome their will to learn.
Not that I disagree with the simpler pleasures of computer using. I do however think that it's better to learn constructive things. I have a suprisingly successful web design business, and by the time I'm 16 (at the rate I'm going) I'll probably be able to buy a moderately nice car.
Alot of kids I know think that either a) Computer programming is just some stupid geeky thing (they look at geek as a bad thing) that they would never consider, or b) they would never have time to learn it because they're juggling school, social lives, and sports. However, I'm successfully juggling all three of those things as well as learning computer programming.
Developing software and writing code has even helped me in other areas of my life. I'm able to buy cool and popular toys because of money I've made from web design, and coding logic has really helped me now that we've begun going into more complex subjects in math.
So, yeah, some kids do still program. Unfortunately, as you said, the most complex computer course I've seen was very basic HTML, in middle school 8th grade (where I am now). The computer teacher at my school had attempted a C++ extra-curricular course, but he simply told us where to go for some very complex tutorials that went way over most of the students head. So, I brought him a CD with SharpDevelop (free
Looking back a couple decades when I first started programming in grade school, no one even though of programming, let alone tried it, or had a computer availble to do so. In middle school there was one other kid, out of a couple hundred. In high school, there were 2 other kids. Again, out of a couple hundred. The numbers were never high to start out with, so I'm not too sure where the submitter seems to get an idea that there were quite few back whenever the past was to him.
:-)
Even in those days, by high school we had "computer" classes. Either it was an introduction to programming, that some kids would elect strictly in order to get enough credit to graduate (or simply because they couldn't have a second study hall, and staring at a computer sounded better than learning French), or it was a in reality a typing class using WordStar. I was a TA for the programming class, because the teacher needed someone to teach him how to do "the crap" in the first place.
Then on to college, in 1993. I was majoring in computer science, and again was amazed that quite a few people had not only never programmed, but had hardly any prior experience with computers, period. CS101 was pathetic. ("After turning on the computer, you get C:\, which is called a 'prompt'".) Luckily, things picked up after that. And a lot of students either dropped out or changed majors.
So I find it hard that todays standards, 13 years later, are that different. Most people just aren't interested in programming. I have one suspicion, however, as to one reason there MIGHT be a decrease in programming at younger ages without being told to. Computers to mostly everything you need them to. Coming up with brilliant new ideas to use a computer for are become harder and harder. (They exist, creativity will always trump stupidity, but it's just that things are less obvious now.) Ontop of that, back when I started programming, I was actually making tools. Tools that I could use. Like a paint program, or a simple database. (I hadn't heard of a database, I just figured that to store data, you needed something like that, and based on those ideas I built one from scratch, in BASIC of all languages. And no, it wasn't an RDBMS, much closer to a spread sheet in reality.) This was because a lot of programs either didn't exist for the platform I was using, were too expensive to buy with my allowance, and was impossible to pirate since it I only had dial-up access at 1200bps to a long distance BBS number, which got my parents on my case when they saw the phone bill. (No one around me used computers, so getting a copy was out of the question.)
If your main reason to program is to make a tool that's not available, but you happen to have photoshop, illustrator, any flavor of SQL, word, powerpoint, iPhoto, iMovie, iTues, what have you, then the drive to program is slim at best. If you're starting programming from scratch, you're not gonna easily be able to make a program that can trump any of the above applications.
As for myself, I stopped programming 10 years ago. The money wasn't good, I was making bits and pieces and not full applications, and I switched to network engineering. That was fun for a while, learning all the security issues and designing secure networks and practices, blah blah blah. Then I got tired of sitting in the datacenter fixing someone elses mistakes. When you get good enough at something, they call you out to fix things that someone else wasn't good enough at.
Now I changed careers entirely and translate. Real, human language. I work at home in my office, get to sip on coffee, and the money is much, much better and the languages don't change every 7 years. I use programs now, rather than make them. Life is good.
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.
microsoft has made programming difficult to start among the young windows programmers. I remember that visual basic was interesting but I pumped it after being not able to do anything fun with it. Basic was more fun back then and I did acctually wrote many text adventure games. After moving to C it all went to so difficult that if you are a kid, you want to make something fun, programming with c# a console program is after a big work and if you even find any program you are able to compile your program. Yes you can get a free visual studio c++ .net from microsoft but how many people even know about that? To get it you have to register and give away your home address and stuff...
While in linux side, starting programming is easier but getting know to linux and hey, they are kids! Linux might be fun and productive enviroment but again. Microsoft rules the world and there are little of families with kids using linux only. Getting interested about programming is hard for them even thought it might be easy. At least programming text adventure with python or basic c in linux is easier than what it is in windows but not much.
I accuse that more and more developing computers have become so hard to understand that it's needed something like big books to getting started with programming. It's easier to make fun looking www-site than to do 'hello world' program in windows. that could explain the rising fashion to consentrate on www development than actual windows or linux as software platform. will to learn php is bigger.
this could be fixed with programming language everybody uses, it would be easy to learn but hard to master. With it could every single interesting function able to be learned from the IDE. it would be cheap and come with every computer. Basic is great example of this as it's version 2 came with like every Commodore =64 and what happened? A living room game makers where like big stars. John Romero and John Carmack started their careers like this.. I doupt that it's possible in modern day society where consoles like xbox360 will not do anything exept run some video, music and play games.
Playstation 3 could be first console to change this sceme if it really comes with linux pre installed on hard drive and python and instructions somewhere available how to start programming with couple easy steps.
-Seeing the problem is ½ of solution-
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!
... if you wanted to do something with a computer, it was usually easier to write to code or modify some other code to get it to happen. Sometimes, you had to code your own BIOS to get the motley assortment of hardware that you called a computer to work at all.
... search for Tools.
There was no ocean of open source software, or even an internet to search for the tools you wanted. You dialed up the local BBS and looked in their very meager libraries of programs, which were contained on a few tens of megabytes of disk space. You pretty much had to know what you were looking for to find it -- by name. No Googling of keywords or attributes.
That's why, In the Beginning, everyone who used computers wrote Code. As the internet became widely available, and acres of software -- more than anyone would ever be able to use -- sprouted out on the 'Net, the search for Tools became more of a
Much easier to find the software than create the software yourself. If a kid can download and use software that is far, far better than anything they would be able to create on their own, where's the motivation to learn to code?
The availability of well-crafted programs to do virtually anything is a major impediment to budding coders deciding that they can create the program to do what they want.
That, and the fact that the younger generation is a buncha slackers who lack the ambition to add one and one to get 10. Learning the game cheats is about as far as their ambition takes them.
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
Way too many generalizations in that post. Heck, when I was 10 I wrote code like connect 4 (with recursive, albeit somewhat slow, AI), and some other useful code (that I recently converted to scripts) which I use today to speed up my homework, such as a determinant solver and a matrix inverter (source for both available by converting .php to .txt at the end). Avoiding generalizations is key!
Kids 20 years ago switched on their machine, and after a few seconds they typed:
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:
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.
I don't think elementary schools are pushing programming any more, but no programming might just be better than line-numbered BASIC. BASIC doesn't teach proper modern programming skills. It's bad for them. I am hearing from some young kids who are taking Java in high school. That's awesome. I wish I'd been able to learn Java in school without being corrupted by Apple BASIC.
Another part of the accessibility is it should have a good easy to understand syntax I don't think most noobs would get into spaghetti coding by themselves. Examples of some popular languages with approchable syntax are Python and PHP. Python has a immediate-mode command line interpreter which also make an introduction easier in my mind.
Second is some introductory tutorials in using the built in languages, from how to start and use them to enting your first commands to getting some simple programming using variables, control statements and loops. I've seen many good ones in the Linux magazines, but rarely anything of that sort for the other platforms.
The reason the 80's generation had it so easy was that the majority of computers had one form or other of BASIC in ROM or included with the DOS disks, and almost every computer magazine had type-in programs, which even if there was no tutorial users got a sense that mere mortals could write games or simple weather forcasting programs.
Do we need to go back to BASICs? I don't think so, in using Python and PHP I see it is way more easier to understand than 80's BASIC was (line numbers added to the confusion), we just need to return accessibility of tools to make it an opportunity instead of a struggle.
"Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
Firstly, most kids today are either computer illiterate or know more than most adults. Secondly, kids are lazy, I know from experience, and most don't want to go through the trouble. And finally, kids (when I say kids I mean teens), aren't offered to many opportunities to learn more advanced computer skills, due to the fact that schools are teaching to state standards, which are only in the area of word(tm), excel(tm) and powerpoint(tm). Although there are programing classes, they tend to focus on BASIC, which gives a general sense of programing but, in most cases, totally useless.
GCS/MU d- s: a--- C++ W+++ w+ M-- PS--- PE++ t+ R+ tv b+ DI++ G e- h! !y
At my school, we have three VERY EXCITING and USEFUL programming courses:
Microsoft Visual Basic programming <sarcasm>(Yay!)</sarcasm> (Uses MSVB 6)
Microsoft Visual C++ programming (uses MSVC++ 5) and
HTML Basics <sarcasm> YAY!!! Our school ROCKS! We have SO MANY good computer classes!!!</sarcasm>
I really wanted to change my sig to something witty, but all I could come up with is this.
I've been programming BASIC since six on an old Commodore 64. Now I use Visual BASIC and C - and I'm only 13. Therefore I consider myself a qualified child. Sadly, it's a dying phenomenon which needs to be revived. Hang on - hmm, you've got me thinking...
Those using pirated Tinysoft signatures(TM) are a real threat to society and should all be thrown in jail.
Don't forget about the web. Simple stuff is still somewhat cool on web pages. HTML and CSS aren't programming languages but they lead to things like javascript, php, perl, etc. Kids who learn to program these days could go that route.
Background: I am a Math teacher at a public high school in Silicon Valley. I have taught programming before (C++) but do not at my current job. I see few kids who are interested in programming. Our programming classes are in danger of being cancelled due to the very low sign ups. Most of our students cannot/will not program their calculators either. I do teach how to do some programming of the calculator as it helps with simulation. My students will go to extremes to avoid this relatively simple task. That being said, there is a large group of students who are interested in the hardware. We offer two levels of computer repair and system adminstration. These classes are all about recycling old computers for service at the school. Our students were able to successfully build a computer lab as part of the process. I do believe the students also have the option to build a computer for their own use. So the outlook on programming doesn't look so great, but computers in general (especially hardware) does look good.
As a EE I learned how to program C and then Java. But I never enjoyed programming all that much. Learning programming was all about learning the syntax of the language, and the language was focused on pleasing the computer and the compiler. But programming isn't about languages, and it is not about thinking like a computer. It is about problem-solving and creating with the use of a computer. I am learning that now that I am not constrained by curriculums. People are going to continue to be turned off by programming as long as they are introduced with classes that focus on learning the syntaxes of languages that focus on pleasing the computer. Classes should be taught in languages of the mold of Ruby and Python, with emphasis on actually accomplishing things, not learning a language. http://tryruby.hobix.com/
I've been programming since I can remember, I started off in webdesign learning html, php, css , javascript. Then when I was about 15 I realised there was no future in webdesign because now everyone with no talent is doing it, for £500 a week, which sickens me, "ZOMG IR WEBDEZINER", I just want to peel the skin off their face. So I taught myself c, c++, now I'm 17 doing pascal, assembly, and VB .net at high school or whatever Americans call it, we call it college in England. Anyway, I bought a load of Andrew Tanenbaum books the other day and just started reading about operating systems, I want to goto MIT, stanford, or vrije and do a degree in computer science, or something to do with operating systems.
What really pisses me off is the internet is too easy to use now, I died a little the day someone referred to css as "myspace codes", I almost choked to death as I bit off their face. The next time someone asks me to "hack myspace" for them I'm going to punch them,
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/).
Ahem? And I suppose they're the ones that keep saying "Hey! Enough of that there science and questioning stuff. You know it's all answered right here in this here Bible. Now stop challenging my faith."
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.
I write Python and Perl scripts every now and then and do the fair bit of VB programming. And I churn out HTML like there's no tomorrow. I made my first site when I was 11 with a notepad and a pencil. I'd say us kids do still program.
-- There are 10 types of people in the world: Those who understand binary, And those who don't.
there are in fact many kids (like myself) who still program, at windham tech theres a group of about 10 people we do programming
Exactly. I am 15, and have been programming for 2-3 years. Mostly in java.
It really can be quite comfortable if you can write some desktopwidget, or interesting, if you can simplify some hard task, but it isn't a thing you can show to your friends for "wow" effect. If you've used time on creating some game, writing physic algorithms, painting shapes, all that stuff, they'll just compare it to some IO interactive game, and call it amateur.
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.
I programmed in highschool, only about five years ago. Many of my friends, who were also geeks, had learned to program more than just TI-85's. I remember as early as 8th and 9th grade comparing assembly and Java with a friend, in our own amature understanding of the field. Even as early as 6th grade, I was taking use of the class computer during free periods to program video games for the other kids in class to "wow" over. In highschool, there was even a prgramming class (teaching C, sadly) which had a fairly high signup-rate. The kids there got pretty good in the one semester it ran, going quickly from text-based address books to tank battle games. Along with all that, I knew at least half a dozen other kids who were running web design bussinesses and could do a fair ammount of perl or php in the day.
Question
http://www.ironfroggy.com/
I've read through the comments, and decided to comment myself. I hope I'm not repeating what everyone else has said. I started writing BASIC in elementary school. I learned some from my mother, and some from my fifth grade teacher. I never got very far with it, because in sixth grade I learned Perl at a Boy Scout camp. The first real program I wrote was Tic-Tac-Toe, and it was a good three hundred lines of Perl. By the end of middle school, I had written a few JavaScripts and began to dabble in C++. In ninth and tenth grades, I learned C and PHP on my own, and Java through the "Programming and Computer Concepts" class (which has since been renamed, though to what I don't know). I continued learning Java in eleventh grade (with the "AP Computer Science" class)--I even got a 5 on the "A" exam (highest score, not a very complex exam, though). I also continued learning C, with the help of Kernighan and Ritchie's "The C Programming Language", 2nd edition. I've written programs that use basic Unix file I/O, Berkeley sockets, forking, and POSIX multithreading. I know two other kids in my grade who know Unix/Linux well, and a handful who program well. It's not many, out of a class of 250 or so, but it's still a good few, especially since I go to a rural school.
My dad got me a subscription when I was young. I didn't care about programming at the time. All I knew was that there were free games inside. The seed was planted.
If Sony throws their weight behind Linux on PS3, supporting it until EOL, I wouldn't be surprised to find the same kind of magazines floating around. Unfortunately the likelihood of this happing is nil.
Paul.
You are lost in a twisty maze of little standards, all different.
Kids do actually still program, even though it won't do them much good -- most programming jobs will go to Asia.
What would probably be more beneficial to them is to understand hardware and learn how to engineer it.
Programming, of course, is an invaluable tool in and of itself, but programming-based jobs are going to become more and more scarce.....
might as well get kids into something that will benefit them more in the long run.
I learned to program on Delphi 5 Standard Edition when I was in 5th-6th grade, as a hobby. From there, I learned DirectX 8 (particularly Direct3D) and started using C++ Builder. A couple of years later, I got into C under Linux. A few months ago, I learned Lisp. Now I've learned Java to take the AP CS AB exam. I'm 17 years old.
Of course, I'm also a nerd whose closest friends live several towns away.
Ahem? And I suppose they're the ones that keep saying "Hey! Enough of that there science and questioning stuff. You know it's all answered right here in this here Bible. Now stop challenging my faith."
Now, that comment simply displays the knee-jerk (let me emphasize the JERK part) reaction which I have come to expect from so many of the 14-year-olds who post here. Your response has nothing
at all to do with the topic or the parent post. In short, you are no more worth listening to the most fanatical of
the religious right.
maybe your language was designed by committee. Has the C++ committe ever said "no" to a feature?
C can be mastered.
A few years ago, at the highschool I went to, the guys who were supposed to be in charge of the computers/network for the school couldn't figure out how to block certain features and services from the computers. As a result, punishments were given out to any student who tried to use these things. Use of the Microsoft command prompt was specifically forbidden, after a student 'net send'ed a message to his friend on the computer next to him.
At the same school, it is required that students take a semester of 'computer concepts,' a course that introduces students to the most rudimentary elements of Word, Excel, and (maybe) Powerpoint. Although this course might have been useful six or seven years ago (in this geographic region, at least), I would say that a high school student now who doesn't know how to use a word processor is a rarity. Then comes a semester of 'Keyboarding,' another requirement. After these two courses, students are allowed to take a class on Visual Basic. Unfotunately, by this time, most students think of computer courses as boring and repetitive. It's a shame.
You're the guy in the cube next to me who uses fancy algorithms that nobody else wants to deal with, while fucking with pointers because you learned C++ in a day.
Really, I'd rather work with the guy who can write a bug-free bubble sort. Painfully slow code always beats code that crashes.
Now, this wasn't the first program-ish thing, but you know what was (in retrospect) a really awesome phase of my childhood?
Tribes.
The original Tribes had something resembling a Perl interpreter built into the game. Myself, I became interested in modifying other scripts to work with features in the HaVoC mod.
Let me just praise the old game again: it was so functional, people even made versions of tetris that you could play while bored defending the flag. Of course there wasn't enough functionality or tie-ins to the system to let you make an aimbot with it, but things like additional hud elements (timed grenades or flag-returns) were possible, as were featured like auto-equipping sets of weaponry, alternate HUDs for quick-selection of loadouts, etc. When I sat myself down to learn perl years later, it was practically a nostalgia trip.
Hell, I think it even had bitwise operators in there, although I never used them. Most games nowadays (like Half Life) have their client-side scripting totally neutered, which is a shame.
I am actually a Python fan, but I have to tell you the language is not very aesthetic.
It actually is a huge 'cacaphony of discord'. Although I like Python I only use it as a scripting language and not for programming, because I don't think it is suitable for that.
I find two things to blame:
1. The style of the program doesn't really allow some of the things needed in large programs including: static functions and private variables. Although there are some hacks or additions to the language that allow these things they were definitly added as an afterthought.
2. The standard libary which makes Python so strong is also its weakness. There are no coding conventions in the library and there are pieces of code which are just not up to muster.
Anyway that's my 2c
God made the natural numbers; all else is the work of man - Kronecker
There are a lot of instances where kids might need to program:
I mainly learned C because I played MUDs. When a friend of mine showed me that he was working on hacking on mud code, I downloaded the base code for the type of MUD I liked and ran from there. Games are fun, when presented with the possibility that something I could do could add some neat-o functionality to a game that was already built, it really sparked my interest.
On that note, I think the easiest intro to programming should just be tweaking someone else's code or script and seeing that you have the power to make things happen. Once you've got to that point, you're good to go towards creating stuff of your own.
Parents haven't been buying computers for their kids or even upgrading their own. The parents are using outdated equipment for themselves only in most cases and none at all in some cases. Kids aren't attracted to the old broken down computer their parents have because it can't play games, and they're told to not touch it by their parents anyways. Instead, parents have been investing in video consoles and games for those consoles.
Once when were at a family get together, my brother's son was telling me how he wanted to design cars. I told him that he needed to learn to use autocad or similiar 3D software on the PC, he didn't understand. Then he started explaining how he wanted to put car parts on the lawn and a car body and build one from scratch. At which point I replied, "Oh, so you want to be a car mechanic, not a designer." And, he replied, "Yeah!" At that instant both his parents screamed, "No!" at me. At which point I laughed.
Later, I had a private discussion with my brother and pointed out that he should start investing in the kid's future by purchasing him a brand new computer and a couple video games so he's attracted to it, in addition to some CAD software. My brother, who is really in the money btw, said he didn't want to waste money on a computer. And, a month later I witnessed his kid asking him for a computer and my brother replied, "save up for one yourself."
Meanwhile my brother has dual monitors on his own computer, and now he's building/furnishing a second house in another state. It's all about himself and not his child's future.
This is extremely common now, my coworkers and friends are treating their children the same way, e.g. buying them a video game console as a babysitter and letting their potential PC skills vanish out of apathy and selfishness. I argued with my other brother to upgrade his PC and he said he didn't have the money, then my cousin showed him Xbox360 at a party and Ghost Recon Advanced Warfighter and his reply was, "Oh, I have to buy this now." Neither of my brother's computers are capable of playing Bf2 or Oblivion or any other modern video game worth playing.
I remember back then we had Pascal programming courses (guess I am getting old...) but when it came to process and analyse data from sensors in physics or do statistics work many spent a long time writing hundreds of lines of Pascal because they new nothing else.
It was much easier and appropriate to do the job in a spreadsheet by importing the data and designing proper formulas and a little scripting. The problem is that when they teach excel they teach you how to style a table and calculate sums, not how to do real work.
I agree we gotta stop teaching students to be secretaries and teach them how to use the tool.
I agree that the Lisp concept has something very powerful and right about it.
...) is implemented as a macro. In Python, for example, it can be implemented as a normal function that takes a function argument (a decorator).
...). This confuses me a bit every time I try to write Lisp.
All existing implementations of Lisp, though, fail to achieve anywhere near the productivity of other languages, such as Python.
I believe the failings of Lisp are in its implementations. It seems as though the Lisp implementors were blinded by the power of macros, and used them when appropariate, and when not so appropriate.
A macro is very similar to a function, except it runs at compile-time, and its arguments are unevaluated. For most practical purposes, if it runs at compile-time or run-time only has an effect on performance. The power of unevaluated code can be achieved via enclosed (closure) code.
For example (with-file
Most Lisp implementations also choose Lisp-2 rather than Lisp-1 for namespacing. A horrible choice that doubles/add a lot of namespace-functions (let -> flet, boundp -> fboundp, funcall,
Lisp also has quite a mess for a namespace. car/cdr are not descriptive function names, and what's worse, their name signifies nothing about their correlation to cons pairs. In Python, for example, it is easy to find code that operates on a given type because code is associated with that type.
In Lisp, if you have a CONS pair, there is nothing to hint you that "car" and "cdr" are available operations. Not to mention their horrible name. Actually, the whole dual-cell cons pair as a basic data type seems weird, arbitrary and arcane as a choice. This extends to all Lisp functions: There is no logical grouping of functions, and no association of functions with their commonly applied data types. The basic datatypes have undescriptive names.
Lisp also makes many of its functions (i.e car/cdr again) "statically-bound", and non-overridable. This means that you cannot create, for example, a transparent distributed library that proxies car/cdr and other operations to a remote server. Also, a lot of code seems to use car/cdr to iterate sequences, forcing the user code to use LISPish lists as the only sequence type. If I have an array or some other concrete Lisp type, its incompatible!
Lisp also has, in theory, a facility to create a readable syntax on top of its raw AST. But its not being used "because Lisp users found it unnecessary". I believe that's rubbish, and that it is very necessary. The reason its not being used is because no good implementation was offered yet. One possible implementation would be a graphical editor of the AST - not even exposing that it is an AST. No need to stick with the textual roots of the past. The parenthesis mockery of Lisp is not superficial criticism, it is a real learning curve slowdown and an annoying difficulty to anyone approaching Lisp. Infix is objectively better at visually spacing the arguments and making it clear which argument applies to which function.
The syntatic problems also extend to the various macro and compile-time code describing facilities, using things like @, ` ' and other various symbols that I have to reread about every time I want to use them. Contrast this with Python's syntax, which is so simple and consistent that I practically knew all of it on day 3 of using Python. Don't try to reply "But Lisp has no syntax", because defmacro, defun, quote, backquote, @, and the other various weird stuff are all a "syntax" you have to know to use Lisp effectively.
To say I strongly disagree that Lisp is some peak of programming languages, is a mild understatement.
Computers no longer ship with an easy to use basic that gives instant results.
Why do people keep saying this? It's so idiotic. 100% of computers come with a browser, which can be programmed in javascript using a text editor. I think most kids probably learn to program that way these days.
autopr0n is like, down and stuff.
God I remember my high school IT setup. They had taken these Macs running OS8 and 9 (no memory protection, yay!) and loaded this ridiculous multi-user setup, so that whenever you logged on, it would copy all your files over.
When they first started, the file server had about 1.5 megs per students, and no quotas, so of course that filled up in about a week.
Then they got more hard drives, but if you had a lot of files it would take forever to log on. I was doing a video project and had about 100mb of files, it took 10 minutes to log on.
Finaly, one day the system crashed while logging on and left me with none of my files. Of course, when I logged back out, it 'synched' them and deleted everything. FUN. No backups either.
People who work IT in high schools are uniformly idiots. This is exacerbated by having a network full of immature people, many of whom are far more knowledgeable then the IT person.
I learned programming on my own, at home. I got my first computer in 1995 and I bought a copy of Turbo C++ to go with it and wrote win16 programs : ). I also taught myself basic, x86 assembler, javascript, and Java.
autopr0n is like, down and stuff.
Its not being taught and exposed enough, but its exactly as easy as you wrote. In fact, its the exact same textual representation in Python :-)
...seems pretty much the same.
I programmed a little z80 machine code, on the Sinclair ZXSpectrum. as a 12 year old, and though a BASIC poker program was much appreciated by people around me, there was no feeling for people who would join me or groups that I could join,
I had hoped the internet would allow proto programmers to join together as let us face it any non trivial program is a community effort, but it appears that finding online comrades does not compare to getting a group of coders in the same locality (town/school/city).
My history of coding started at 12 and basically stalled at 14-20 where other people priorities (school/university) got in the way of my career. Having an Amiga 500 since the age of 17 with all its tricks confused me no end. I got a C compiler for it in the end but never did anything really serious with it. I now code for a living from the age of 24 to 36.
Be Free: Free Software Tuition
So, coming from the perspective of a chronic geek and a teacher, I think it's very important for kids to be exposed to some simple programming languages early on, both graphical ones like logo, starlogo, or scratch, and traditional ones like basic. I wonder if anyone has made a java shell for a basic interpreter that would allow users to make, save, and run programs. School computers often have huge restrictions on installing programs, but if there's something that's easily accessible through the web, and it was a site dedicated to something as benign as basic (no links to porn, etc...), it seems like it could be handy. I know this kind of thing exists for logo (http://homepage.mac.com/troy_stephens/TinyJavaLog o/), although more limited than a local logo program. What do slashdotters think about this?
I also agree with what a lot of people say about most new languages (html, flash, etc) being much cooler, easier to use, and with more interesting results than typing 10 goto 10. Is it even important for today's little geeklings to be learning text-based languages, or do we just think it is because that's what we did?
Of course kids still program. Who do you think runs the open source community?
From experience (I'm a high school sophmore), I don't think there is enough emphasis placed on computer education. Half of my friends don't even know how to attach a picture to their e-mail.
There are computer science classes (I took Honors Comp. Sci. last year) but they're a bit of a joke. I learned a tiny bit of C++, but not even enough to do anything remotely useful. The only computer class the vast majority of kids I know take is Computer Applications, which teaches subjects ranging in difficuly from "Use of the Computer Mouse" to "How to Send an E-mail."
It seems like a lot of the resources that could be spent on important things (things that will get people somewhere in life) are being spent on athletics, which in my mind are not very important. Instead of computer labs, we're getting gymnasiums.
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.
Yes. We do.
Living proof. Sure, I am just barely playing around with Perl at 15. But still.
And I read a lot of your comments. They aren't quite right. Here is the reason:
Few of us actually know what programming is.
Sure, I do. But it is a arcane process to most everyone else. And it isn't just kids. It's also the adults that raised the kids. They have no real idea of programming. To the mainstream, programming is 1's and 0's in random arrangments that work through unknowable ways that only a dedicated college student could learn over many years. They don't know. And the scariest thing is what you don't know.
Another thing: Few of us code out of necessity. We code for the fun of it. It's like a newspaper crossword to us. Something to do in the spare time, and learn a bit from in the process.
Check out these forums too. Most of us are under 18, and we are all coders of some degree.
You just stood there pounding your chest and proclaiming your stupidity in a public forum. I'm sure you are very proud.
No, Python was developed for high-level "glue" code. This just increases the resonation of your ignorance.
Let's see what resonates here, eh Sparky.
That depends on what you mean by "scripting language". "Scripting language" is a very poorly-defined term.
Is it really? It seems fairly clear to me and thousands of other programmers.
What makes, say, reddit, not a production application? Reddit is currently written in Python.
You're kidding right? Surely, you jest.
The guys who wrote Reddit, for one. Paul Graham and most of the other people who worked at Viaweb, for another. Want more? I can find them.
No, I don't want more that was the point. I don't want anyone trying to pass off Python apps as production software. I don;t want anyone inflicting the world with more of this utter crap! It shouldn't be done at all for reasons too numerous to mention and to complex, it would seem, for you level of understanding. But, whether you understand it or not, Python should most definitely not be used as a replacement for C, C++ or any other such language.
I am currently a junior in high school and have been programming since c. 1996 when I found HyperCard on my parents' Mac and figured out how to take existing buttons and fiddle with the code. Later I taught myself scripting in Iptscrae and LOGO, then moved on to REALbasic, and today I use Objective-C and a bunch of other languages. Each summer I teach a group of elementary schoolers LOGO and also enrolled in a semester-long Java course last year, so I've also gotten to see what works and what doesn't when people are introduced to programming for the first time. The biggest problem seems to be that they get so stuck up in having perfect syntax that they don't experiment or learn to structure an algorithm. They quickly form an image of the computer as a harsh and unforgiving monster, blowing up at them with cryptic errors at the slightest typo. Combine this with the knowledge that someone nearby already knows the language well (i.e., the kid sitting at computer #11, or the camp counselor), and they abandon any attempt to correct the error themselves; they care more that the program does something than it does what they want. Furthermore, the examples are so small (e.g., adding two integers) that they teach very little in regards to the syntax at all, and the concept of stringing code together to form an algorithm is lost. The best solution in my mind would be to start people off with a bunch of extensive examples written in something that's very forgiving and has a syntax they're already mostly familiar with. Yes, HyperCard (or, now, Revolution). I really can't imagine a better environment for starting off with, because the language reads like English. You can use your existing vocabulary to figure out which part of a line is a function, which are the parameters, which are variable names. It doesn't need a semicolon to end every line, there are far fewer mathematical (read: scary) symbols throughout the code, and artwork and GUI design is done intuitively and without any code.
(Sorry, I guess I still haven't mastered HTML!)
I am currently a junior in high school and have been programming since c. 1996 when I found HyperCard on my parents' Mac and figured out how to take existing buttons and fiddle with the code. Later I taught myself scripting in Iptscrae and LOGO, then moved on to REALbasic, and today I use Objective-C and a bunch of other languages.
Each summer I teach a group of elementary schoolers LOGO and also enrolled in a semester-long Java course last year, so I've also gotten to see what works and what doesn't when people are introduced to programming for the first time. The biggest problem seems to be that they get so stuck up in having perfect syntax that they don't experiment or learn to structure an algorithm. They quickly form an image of the computer as a harsh and unforgiving monster, blowing up at them with cryptic errors at the slightest typo. Combine this with the knowledge that someone nearby already knows the language well (i.e., the kid sitting at computer #11, or the camp counselor), and they abandon any attempt to correct the error themselves; they care more that the program does something than it does what they want. Furthermore, the examples are so small (e.g., adding two integers) that they teach very little in regards to the syntax at all, and the concept of stringing code together to form an algorithm is lost.
The best solution in my mind would be to start people off with a bunch of extensive examples written in something that's very forgiving and has a syntax they're already mostly familiar with. Yes, HyperCard (or, now, Revolution). I really can't imagine a better environment for starting off with, because the language reads like English. You can use your existing vocabulary to figure out which part of a line is a function, which are the parameters, which are variable names. It doesn't need a semicolon to end every line, there are far fewer mathematical (read: scary) symbols throughout the code, and artwork and GUI design is done intuitively and without any code.
Its painful to see that slashdot has degraded to the point where even the most obviously incorrect and ridiculous statement is modded up as insightful. HTML has no iterations or conditional statements at all. It does nothing even vaguely resembling what a programming language does. It simply describes how to display data, it cannot manipulate or create the data.
It seems reasonable to me that someone with any programming experience would be likely to search for a position with adequate compensation, and this excludes teaching in public schools.
Consequently, computer courses get taught by those with less marketable skills.
That doesn't explain the absence (if absence there is) of self-teaching.
Software development is a highly rewarding experience as personal study.
---
All your old jokes are belong to sigs.
When I was in 7-8th grade (here in the US) we witnessed what I would call the "home computer revolution". Everyone had some kind of computer whether it was a Commodore 64 or VIC20, a TI/99-4a (I had the later beige one), Apple II, or one of the dozens of other home computers being marketed at places like K-Mart. We programmed these because the tools to program with were available - every computer shipped with some version of BASIC or something BASIC-like as part of the OS. With BASIC in the 80's, you could create something that wasn't all that far off from the few simple games that were widely available. Text adventure games written by "kids" weren't all that different from "Zork". I think that is different today. You need significantly more skills to begin writting programs in a language that has the ability to create apps that mimic common apps found on today's computers.
"Nope. Last year, neither of the girls who went into engineering had sex changes."
A couple of the guys might have just for the attention.
It shows, all too clearly, though that computers are not too complex to program and that kids are willing to put in effort to achieve results, the only difference is where they are directed to go to do so.
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)
We have lots of kids that use our product (REALbasic) to learn programming and create their own software. Some have gone on to create their own small software companies. So I can say with certainity that there are kids programming. Are there as many as their were when I was a kid? I don't know and that question may be impossible to answer.
I'm 15. I know C++, Python, and a enough of Java to convert a small program to C++. >.>
I haven't alot to do with it, though. Just game modding, making small useful-only-to-me utilities, and... yeah. Not much to do these days. Everything else is already done.
What? They don't teach QBasic anymore?
The answer to the age, grade question is a simple program a student could write.
Age = Grade +5;
But having some knowledge of programming serves the same purpose that knowledge of math, science, history, and other basic subjects does. It's not to teach people how to do everything under the sun, but that everything happens for a reason which can be understood - maybe not right this moment, but someday - that there is no "magic" which makes things happen. This basic understanding can make the difference between someone who feels helpless among things they have no control over, and someone who knows that somewhere, there exists the knowledge to effect change - knowledge that they might even be able to attain.
Getting back to programming, it means that you don't have to know exactly _how_ to program a computer in order to understand that everything it does is a result of somebody having programmed it, and to understand the basic principles. Armed with that understanding, users will be better equipped to use, troubleshoot, and learn more about that complicated thing on their desk.
Unfortunately, the days seem to be gone when the computer would boot up and immedately start taking commands from you, without any logging in, editing files, launching an interpreter, or other mental baggage. But for the general population, I don't think this would take much more than sitting down with notepad and authoring some basic HTML - enough to demonstrate that if you want the computer to say "Hello World!", you tell it to say "Hello World!".
I do worry that today's generations aren't even getting that much of an education. Hell, even within my own profession (software), I often wonder if people have any idea how things actually work, or spend any time wondering themselves.
As a Canadian senior high school student, i feel that teachers/education system, students and modern state of computers all shares part of the blame. My school is very fortunate in that it has a very good computer science program. Our teacher not only teaches Java as a language, but also imparts on us some of the basic progamming concepts. The schools that my friends go to all teach Turing (because the teachers don't know anything more advanced) or just reduces the "computer science" part of the course to simple coding. For example, a person I know went to a school where they programmed in Visual C++, but the only real program they wrote was a graphical game. In contrast, we at least get into recursion, ADTs, and whatnot (although you may all be laughing at the n00bsness of it all, but hey, its a start). The homework from other courses also make it impossible to learn to experiment on your own. There simply isnt enough time to buy a programming book and spend hours writing a program to iron out a new idea.
It seems that the students of my generation are also rather unmotivated. They see programming as something that much too complicated to be involved with, and so don't bother to learn anything about it. A friend of mine is probably the only person in the school who can program a TI-83 (he once write a progarm during a test to answer a rather difficult question, but I digress).
Finally, the computers nowadays do nothing to encourage people to get into programming. If you want to program in Windows, you would have to go to the extra effort to find the SDKs, the IDEs and other stuff needed to program. Yes, you can program in notepad, but if people are intimidated by a simple command line interface, they would be positivly terrified to handle on the of the thick programming tomes. Most people my age just views computers as a way to chat with their friends or play games, and if they want some program to add extra functionality, the go download it, and there is no need to learn how to program it yourself
"Now, evidently, most high school computer classes are about Word (tm) and Excel (tm). Is this a bad thing? Should we care?"
Assuming this is true, the answers are:
"Is this a bad thing": Yes! Just wait until you share your workplace with these people who now are only kids but 5 to 10 years from now will be integrated in the workforce. Then we'll experimentally verify whether it's a bad thing or not.
"Should we care?" Yes! (see previous point)
https://www.accountkiller.com/removal-requested
No kidding. I first learned about programming from a cardboard computer. It was a computer science learning set for high school students whose schools couldn't afford the early PCs or minicomputers (not the same thing - I am referring to ancient history, the late 1970s). You'd learn hardware and programming basics from the booklets, then "program" this cardboard thing. It looked like a tiny flat IBM 360, but it was slide rule. An answer would be displayed. I gotta tell you, it had very limited usefulness. However, I did understand the basics of computing when I finished the materials. My science teacher encouraged me to write to various computer companies asking for learning materials. We received a pile of books, from early PC stuff to manuals for programming the PDP-8, the PDP-11, the Vax, and using VMS. I was fondest of DEC because they sent the most stuff. It's easier and more fun to learn on an actual computer, but cardboard can suffice in an emergency.
I work in a small midwestern school district as a teacher/technology director. The questions about why students are not being taught programming is that there is very little interest. Looking at the posts, I believe that if you read this article, you can consider yourself somewhat of a nerd, obviously you had a lot of interest in computers. Most kids these days are not at all interested in computers past the point of instant messaging and web browsing. I do teach some programming, but I attack it from a different angle. I use the LEGO mindstorm robotic kits. I spend several weeks teaching the basic concepts of programming such as loops, goto's, if-than-else statements and try to get them to think programatically (I don't think that's a word but oh well). The interface is that of a drag and drop system using icons instead of words. Sometimes it's all I can do to find a couple people in each class that finds this somewhat interesting and wants to "figure it all out". So there are some schools trying to teach the basics. Some people on this list are complaining about lock down computers, we can barely fund the computers, not the amount of staff and computer technology to fix everything that students fix. There are a lot of tools to restore to original conditions, but even these have their fallbacks.
Are there really fewer kids interested in programming? Isn't there really more demand for programmers and more computer-using consumers?
If there were x programmers out of y computer users in 1980, and there's x programmers out of y+20,000,000 in 2006... did the number of programmers change? No, but the percentage of computer users who program did.
The programming nerds are still being produced. It just isn't scaling up (in the US) with the number of computer users.
It's hard to convince people to buy and use Office when you can write a short BASIC program to track your small-business data. ;-)
Unless, of course, you bundle a BASIC language with Excel so that a spreadsheet programmer can do all sorts of l33t sh** with macros and then force would-be competitors to duplicate the BASIC functionality in addition to the spreadsheet functionality.
Secondary would be that schools feel the need to teach about business software instead of about writing custom software.
Blame the students for choosing computer applications instead of computer science.
Kids these days can't get, or haven't even heard of most of the the really thought provoking stuff that fed my generation:
Chemistry sets
Amateur radio
Erector sets - not flimsey plastic crap
Boy Scout projects
Cool WWII surplus at scrap prices
BB guns (for trajectory analysis:)
Okay, guys, go find some hobbies that require thoughtful complex construction, and Get the hell off my lawn!
I had a professor in college who taught his own kids that counting starts with 0 and never 1, always! The kid had problems at school because of this and my prof argued his point more or less successfully with the math teachers. This really goes to show just how far apart science and education really are. The professor is quite correct in his assertion that number systems should start with 0, but practically speaking so are the educators in saying that 1 is where everyone starts counting.
I'd rather have a full bottle in front of me than a full frontal lobotomy.
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.
When I was in grade six, the Commodore PET came out, and I jumped at the opportunity to learn how to program it!
Grade seven for me. Be thankful we went through school during the golden age of primary school computer classes. We learned how to create programs, vs. how to use the programs of others.
Now, evidently, most high school computer classes are about Word (tm) and Excel (tm).
Modern computer classes are training sessions for Microsoft software. Which makes sense pragmatically since true computer literacy (aka programming ability) is no longer an educational goal, and given Microsoft's monopolist position in the office software market.
Is this a bad thing? Should we care? Is this the harbinger of the end of the world?
Shrug. Do you mean morally or practically? Morally, it's bad. Teaching students how to program and understand how the computer works empowers them. Teaching them how to operate Word or Excel is a poor substitute, even if the version they are taught actually happens to resemble the one they use when they graduate (which it probably won't). On the other hand, since the need for programmers continues to decline (and their working conditions increasingly suck) there is little practical value to so empowering them. So arguably it's for the best. But it's still sad.
Take a look at the Aliceprogramming project. The current 2.0 release gives you a Java-like programming language controlling objects in 3-D rendered worlds. The development environment is designed to be attractive to beginners - program construction is mostly drag-and-drop. Download it (available for Windows and OS X (PPC - Intel is in the works) and give it a whirl.
And, the next major release is being done in collaboration with Electronic Arts, and will have Sims-level graphics.
To a Lisp hacker, XML is S-expressions in drag.
The problem is that software engineers are getting greedy. I for one would probably find teaching a programming class more fun than being a code monkey for a big company. But the big company pays much better than teacher. That's the root of the problem.
Your ad here.
From what I've seen, kids are still doing programming. It's just that its mainly web programming, as in HTML, JavaScript, CSS, etc. Also, even though many of them seem know these languages, some just use Dreamweaver or other WYSIWYG editors, with the excuse that they "don't have time" to hand code it all.
--Bob
This is not a sig. This is a llama-duck. Quack.
I learned VB when i was 8. I finished my first C++ DirectDraw-based program at 14. I'm working on a program for a microcontroller that i'm designing to transmit data over the X-band. I know four other people my age on this level. Now, i learned all of this on my own, due to the total lack of avaliable programming classes, save a simple Java class that didn't seem worth my time. The computer classes offered at my school are pretty terrible, the most advanced of which involves learning how to write HTML in notepad. Everything else seems to be a typing class. I recently spoke to a classmate of mine who showed interest in video game design, and here's an exact quote from him: "Oh, i'll learn all that stuff later. That is what college is for." Of course he isn't the brightest pencil in the case, but he represents the general mindset. Now, don't loose hope, there are WONDERFUL after-school programs that i used to keep my sanity in meatspace which are churning out electrical engineers and programmers by the hundreds. The one problem seems to be getting more than six interested people people on your team. Just advertise programming courses on MySpace. You'll have more programmers than there are computers.
In 1982 I took my first programming class (basic). I was in the 6th grade and it was offered at my junior high. Everyone that wanted to play with a computer had to figure out how to make it work, and had to write programs to play with it. It was the newest, and coolest thing. I think that nowadays people that have grown up with computers around everywhere are desensitized to them. They just expect them to be there, and they just expect them to work. They don't have to build a computer from scratch, they don't have to write programs to do the one thing they want to do, because odds are someone has already written it for them. I feel that until computers crest into the next level of 'new-fangled-ness' and there is a product vaccum again, that less and less kids are going to get into programming (in general). But what is really amazing is that I am at UCSC studying biology, and many of the people around me, although in their early 20's, have already done some programming. I just happen to be going into a field where there is a vacuum, and they have already had to fend for themselves. So I think programming will just become more of a niche, and that those that can do it will become much more valuable.
A person who says 'it can't be done' shouldn't be interrupting the person doing it.
Do kids still program?
No, because they stopped shipping EPROM chips in them, and started using masked ROM. That explains a whole generation of frustrated parents who just can't understand why their kids just "won't listen". It's not they their offspring don't want to listen, it's that they can't because their brains are read-only.
The higher the technology, the sharper that two-edged sword.
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. ^_^)
Where are the insightful mods?
Back in the days when BASIC was the code of choice (well, the only code a young geek with a Commodore 64 could learn), it was easy. Procedural programming. Nowadays the choice is too broad, the languages compared to BASIC are very difficult and the competition from old school coders too fierce. It seems to be far easier to grab a degree with diversified skills and enter the computer maintenance, network management, or get into the database management field. That seems to be where the easy money is, which is the drawcard for most IT undergrads these days.
When I did my degree in the late '90s at the tender age of 30 something(yewp, I'm a newbie), the focus was C++, database design and human/computer interaction. Granted, my focus wasn't pure computer science, but neither is it the focus of the majority of students now.
The anecdotal evidence I gathered in my days at uni was that people were doing their IT degree because they thought there was either good money to be made, a high demand for advanced computer skills or that students figured that an IT degree would be a breeze. How wrong these assumptions turned out to be for many, resulting in an average 80% drop out and/or failure rate in the place I studied at.
My motivation for obtaining an IT degree was (besides my love of 'puters') that I would find it far easier to get a job than if I'd studied Environmental Science. While I did find it easy to get a job in the IT sector, I think environmental science would have been a better long term proposition.
Cheers
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.
I've been programming BASIC since 4. I started with print, color, input and the usuals to make simple things like password protection. At six, I had an ok text processor. At 10, I got Visual Basic under control. Now, at 16, I'm doing ok at C/C++ as well as Assembly. Age doesn't matter really, it's what you are willing to learn, how much time you put into it, and how you learn things. I learn by doing, which gives me exellent experience. I encourage all people that have even a slim amount of interrest to play with things like BASIC. The best thing to do is show kids source code to simple games, let them modify it, and take time to explain it REALLY well. I spent about an hour each day with my dad learning how to make a text adventure. After that, I began playing with graphics on my own, and had a tile engine going. It sucked, but it was a lot of fun to play with. I know about 20 people with my level of skill or better. I know 10 more who have strong interrest, and play with it. All under 18.
Cheers, DH.
...the role of computers and their intrusion into every day life has changed dramatically. And yes, most computer classes are about Excel and Word because 'computer skills' has a very different meaning to what it did 10 years ago, let alone 20 or more.
But rest assured, with even Microsoft offering free development tools these days, those that are born to program still will. Even the chances these days of being born into a family with broadband and the ability to access pirate software for messing around with development are far far higher these days.
The computer industry doesn't know whether its about office infrastructure, high-end gaming platforms, VOIP, home automation, programming - eventually these industries will become more separate and universities and schools will create courses that aim into appropriate areas, it will just take time.
What worries me more is that people these days have no idea just how many CPU cycles their program hogs, because noone programs with assembly or C these days - you use Forms Designer and hook bits of spaghetti code to your window. Its disturbing that this is what people see of programming from the beginning, but at the same time there is no way I would go back to programming like I used to have to do.
That's what I think anyway.
Aaron.
It's OK Bender, there's no such thing as 2.
They need a PARENT to encourage them ...
They need the right environment at home.
And they don't need competing forms of passive entertainment (TV).
Don't expect the school system to do it for you.
My 11 years old son Daniel programs using a variety of tools and has been doing so for a couple of years already (Visual basic, a variety of flavors of Logo, Game Maker. I'll let /.ers find out what he's using in this photo). He also does other creative things like creating scenes and animations using Art of Illusion - this also involves kind of programming, like creating procedural textures/materials. He learns some math/geometry doing this, since his programming experience drives him to manipulate the data (coordinates) directly to get exact results. He also learns some physics for getting the right results, like making gravitation work close to correct in this game (/.ers should be able to tell what link is the game. Hint: the file extension is .exe*). (well... It not just parent encouragement. After school activity played an important role. School only taught him to use the computer as a typewriter).
His 5 year old brother Jonatan already learned to do some "visual programming" using Game Maker, producing working games (though still not one another kid would want to play with. He does get useful things produced this way: Birthday "greeting cards" that can only be made using programming). The need to do everything that his big brother does is enough motivation.
___________________________
* I thought that the game should really be open sourced (or "free-softwared") but the Game Maker "sources" (.gm6 files) are actually binary, and though the license allows distribution of the created games, it's not clear to me how exactly it can be done with an Open source or CC license. Compiling the "sources" requires (gratis) proprietary software.
** comments, and suggestions of useful software that can encourage kids to becreative are welcome.
TI BASIC rules! I had too much fun in AP physics writing turn-based RPG combat systems rather than taking notes.
I mentor a 5th grader and got involved in a robotics club at that school. To make it more interesting, we programmed a Lego robot in Java and everyone in the club got to write a class of it. The action the robot had to take could have been done easier in the RCX out-of-the-box software but I believe the exposure to programming was a lot more helpful to them.
There could be a lot more financial help to make programming more interesting to children but unfortunately teachers and politicians don't seem to get it so they pay no attention to the subject. The computers in public schools suck, and are poorly managed.
At home kids today don't program because it's very easy to just plug in the Fony PlayStation and start playing unlike in the time when I grew up and I at least had to type LOAD ""
In the hard sciences, real programmng is an absolute necessity.
;-) Java allows one to remain stupid forever, if one wants to, while C++ whips the guts out of you if after a few months you find out that the class design and encapsulation schemes you've built turn out to imply a dense network of code dependencies within that 26-MB-of-code project of yours, or in case you do someting similarily subtly stupid :-)
..., and, of course, in the IT.
I'm a physisist myself, and I've strongly been into all kinds of high-through-low-level programming since the age of 12. Many of my colleagues had not been coding before their studies - they learnt C and C++ and low-level-io and numeric computing the hard way - in two mandatory courses.
My impression is that for the average experimental physisist, it takes some time to get used to the typical kind of a physisist's coding - that is, 90% C++ with device I/O and lots of number crunching, 10% LabView (for the simplemost of setups) - but having been mathematically educated the way we are, it's not at all hard to learn it.
Coding quality, of course, is an issue, and it still takes a few years to gain industrial strength coding skills. Luckily, we do C++ so much more often than Java, and C++ is the best and only true teacher among the languages
What I worry a lot more about, is the fact that among the people who graduate at computer sciences, a lot CANNOT quite well program C++ or C and never've used ioctl(). As I part-time work in the IT, I've heard oh, so many stories about people who just graduated in cs and have learned alot 'bout JAVA and excitingly complex things like XML, including (my brain starts smoking) XHTML and (heart beating faster) JAVASCRIPT and who think they're clever because they know something about ENTERPRISE BEANS and WEB SERVICES.
Those people 1st will implement everything in the slowest way in reach, that is, via an application server with JREE, and so all communication via SOAP/XML, and when you tell them that you need the lower three bits of that byte they'll look at you as though you were an ancient dinosaur trying to tempt them to practice the dark arts of magic evil beyond believe, and you will show them something like x & 0x07, and they will note it somewhere, and whenever they come to the situation of having to fetch only the lower three bits of something, they will search for that note, and they will, character by character, very slowly, frowningly, type exactly x & 007 or something similarily not-quite-the-same, and it will even work, because a 7 is a 7 even in the octal system.
And whenever you bring them to a point where it finally does make a difference whether or not one understands bits and bytes and the methematical operator |, they will again look at you as though you were something awfully disgusting, and they will tell you that it would be so more simple to do it with EnterPrise Beans and XML, and that you've probably never heard of thouse wonderful new magic bullets because you've been spending so much of your time with tha arcane arts of C and systems programming that you've become a nerd who simply doessn't care about their Enterprise Beans.
And it will be true, because you've tried that J2EE, as you've tried most other major hyped technologies, and you've found out that outside a very specific domain of problems where it's just-wonderful-because-so-well-supported, it is simply not the right tool, and you know that sometimes it's better to do it manually, binary and fast, because 900% overhead sometimes do make a difference.
And you will either fire the man, or you move him to the HTML/JavaScript department, in case you've got any, and you will do as more and more people do in the IT these days: hire either a graduated physicist or a student of physics who is a programming geek to do the coding job.
Similar failures in the third-level education system are the reason why you find physisist (and, of course mathematicians, electrical and communication engineers, chemistrists) in so many domains, like incurances, stock trading,
i can't make any sweeping statements about other schools, but the one i work for ( i am Network manager for a UK secondary school ) is as follows:
The capacity to learn programming is there - the development environments are available, the systems are locked down sufficiently that the students can do the work but not ruin the school systems in the process... The main issue is that the IT teaching staff arent actually that interested in the subject - the head of the IT teaching department freaked out to me recently because new rules mean he has to teach relationalal database strutures in a more intelligent way - and he doesn't have a clue - he has worked for the last few years on handouts written by his predecessor. I know there are a few of the kids who would probably make good coders, but the teaching capacity isn't there any more - anyone with a real interest in the subject doesn't work in schools any more or has moved to a non-teaching role because the vast majority of the kids are borderline attention-deficit - they tend to have the attention span of a confused flea.
It has got to the point that i am actually teaching them more about coding than the teaching staff! ( kids coming round to my office and begging me to help them sort out an issue with MS Office VBA problems. I don't solve the problem for them, i just tell them how to think about the problem and how to find relevant technical references so they can work it out for themselves ).
It appears that no-one is willing to work things out for themselves any more - they want to be spoonfed because that is the way it has always been for them - and the teaching staff dont want t get involved other that regurgitating lecture notes...
arghh....
open your mind too much and your brain falls out!
Just browsing slashdot, as you do, and had to post some kind of sensible comment to hogghogg.
I think he/she has made a great point. I often get invited to social events and get to hear of a revered member of the family who is real computer geek. But after speaking to them for a few minutes I realise that they rarely programme and often have no idea about the underlying architectures of systems. The motivation to learn and program computers seems to have seriously waned over the last few years. I think this is down to a lot of factors, but particularly, due to the small elite groups of uber coders out there and the open source community.
Programs are now available that solve most problems and coders no longer need to code their own bespoke programs. I think this results in a down turn in people wanting to program. I myself often sit at my console, run into a problem, load up a java console, think about coding up my solution and then usually stop myself 'google' the web and save myself a few hours work.
Not only this but a lot of people I have talked to were originally motivated into programming to get the most out of their systems e.g. couldn't afford to upgrade but wanted to use the latest software. Therefore the only way to do this was to hack the system. However today people can buy modern computers very cheaply and with the modern economic trends allowing individuals more disposable income there's no need to push these systems anymore.
One other personally disturbing trend that I see emerging is that kids only care about games. Of course there is nothing wrong with games, they're great, but now everything is so easy to load, work, etc. No challenges now exist in trying to get software to run, everything has become so easy.
Welcome to the plug and play era of computers. Microsoft is realising its dream, the computer is becoming the video player of the modern day, the single entertainment device. With none of the headaches of old and the technological difficulties are being minimised.
P.S. I have experienced a wonderfully arrogant naivety in the modern scientific community of how easy programming is. Of course most scientists can't that's why coders can often find higher educational jobs in academia. But this attitude of 'pure' scientists is perhaps another reason for the deterioration.
Then after a few months/a year I didn't program a single thing for about eight years (I would have kept at it, but I couldn't get my head around stuff like loops at that age)... but the experience was still there to draw from when I came back.
Microsoft is the antithesis to your entire second paragraph. People don't give a shit if software doesn't work. They half expect it not to, and they fully expect it to confuse them.
And I love this idea that "The most valuable part of an education is learning how to deal with people". It's definitely a new one on me, but a beautiful piece of short 'n sweet trolling nonetheless: it turns the fact that he tried to help someone into an indirect personal attack, while invoking the image of the 'popular people' from everyone's school experience and implying that they are the real winners.
All in all, a very well thought out post. Guaranteed to infuriate, but also prime +5 Insightful material. In other words, a perfect troll.
It's kind of like musicians and instruments. A master musician will be able to produce great music on just about any kind of instrument. Nevertheless, they are also extremely finnicky about the kinds of instruments they actually use professionally--they just will not perform in public on some cheap instrument or an instrument that they don't like.
So, a master programmer will be able to produce good code in any language, but at the same time they'll also know better than to use the wrong language for the job because "good" isn't good enough for them.
Well, after reading all that, it makes me feel in somewhat of an "advanced country" since we choose what kind of high school we go to (instead of choosing classes) so there's a pretty nice difference between the 'not so smart people' and the other 'smarter kids'.
Thus we have the many "Dumb schools" and the "hard schools" (to which I,of course, go to).
And in those "hard schools" (I'm going to the hardest one in the area, and it's pretty easy), we learn programming! 1st grade (9th grade in USA) to 2nd is Pascal. Then the second "half" is Java for 3 years (High school is 5 years and not 4).
And about people not interested in programming... I have to agree, they are really few.
But that's HighSchools...
http://naerey.switch-case.org
...was that my parents let me pursue my own interests off to the side, and even counted it as coursework occasionally. So, I can now program in QBASIC (yes, I know. I was 13, give me a break.), C, PHP and Python. Linux runs in some form on almost every computer in the house, and I've got two FIRST robotics competitions listed on my high school transcript. The thing is, I did it even when I wasn't getting school credit.
If a kid is interested in programming, he'll do it. Heck, I didn't even own a computer when I started learning C.
I have been out of highschool for about 6 yrs. When I was in the 10th grade, I decided to take the 10th grade computer course for the first semester, and the 11th grade course the second semester. The 10th grade "programming" course was HTML, but the 11th grade was supposed to be BASIC and C. As the semesters changed, they put through a new "Internet Media" test course, which replaced the programming course that I had signed up for. What was this new course? HTML, scanning images, recording sounds, etc. All the "programming" was the same HTML that I had just finished doing in the 10th grade course. I was not impressed. They phased out all BASIC and C programming years ago - now its like TFA says - Word, Excel, Web Design. What the highschools didn't realize at that time is that kids in MUCH lower grades were doing the SAME course. My sister, who was in the 8th grade, was doing the same HTML that the 10/11's were doing.
You create your own reality - Leave mine to me.
OK, think about it. When "we" were teenagers, the only way to play a computer game was to invent one. I know, because that is exactly what we did on the TRS-80 Model III's that made up the computer lab in high school. There was no internet, no free games to download, no cable TV. We had to create our own entertainment.
Nowadays, who needs to program when you can just find one someone else wrote on the 'net and download it for free? Or get the 'rents to buy you the latest gadget that comes installed with all the entertaining gizmos one's little heart could desire.
The point here is that we need to find a way to make programming seem a little less like work and more fun. Try Alice. http://www.alice.org/ Java programming in 3D as an introduction to programming. This will help, and if more of us "tech geeks" take the time to inspire our youth to figure out how the magic works, their little creative minds may go in the direction of CS for the fun of it. Not because it is tedious work.
Writing a trivial program in Windows is quite easy in VB or VB.NET, I know of kids that can do this today, and could back in the mid-1990's. In Win32 C, sure, it's quite rough, but not even professional developers really do that anymore (they at least use C++ and MFC. And speaking from experience, I couldn't figure out Win16 when I was 14, but I could figure out the early versions of MFC and VC++ 3 and 4 (though barely). VB was much easier, as was Java 1.0's AWT.
Though arguably one can learn a lot more by reading, understanding the ideas behind what already exists, and fiddling with that, instead of crafting trivial programs from scratch. I recall the days with Logo as an example of this, when I was a child. Putting together crappy little C64 Basic programs also helped. But frankly it didn't teach me good habits or anything about "why" I may want to do something a certain way. It was when I read code from others in C64 assembly or basic that I really started to "get it". And then as I moved to other languages, great examples of code helped to show the way (in C, in Smalltalk, in Lisp, etc.).
PRO/Engineer arguably doesn't provide the intuitivity necessary as an exploratory environment, also because there is a large body of non-obvious theory behind its application. In programming, there is also this body, but I find you can at least get some meaningful feedback with small gestures to start with.
I really enjoyed the essay on the early history of Smalltalk. The PDF has fewer OCR errors. In particular, how it was used with children is an insightful example of the challenges of learning to program.
From the essay:
For example, Marion Goldeen's (12 yrs old) painting system was a full-fledged tool. A few yuears later, so was Susan Hamet's (12 yrs old) OOP illustration system (with a design that was like the MacDraw to come). Two more were Bruce Horn's (15 yrs old) music score capture system and Steve Ptz's (15 yrs old) circuit design system. Looking back, this could be called another example in computer science of the "early success syndrome." The successes were real, but they weren't as general as we thought. They wouldn't extend into the future as stringly as we hoped.
And on teaching adults:
It started to hit home in the Spring of '74 after I taught Smalltalk to 20 PARC nonprogrammer adults. They were able to get through the initial material faster than the children, but just as it looked like an overwhelming success was at hand, they started to crash on problems that didn't look to me to be much harder than the ones they had just been doing well on. One of them was a project thought up by one of the adults, which was to make a little database system that could act like a card file or rolodex. They couldn't even come close to programming it. I was very surprised because I "knew" that such a project was well below the mythical "two pages" for end-users we were working within. That night I wrote it out, and the next day I showed all of them how to do it. Still, none of them were able to do it by themsleves. Later, I sat in the room pondering the board from my talk. Finally, I counted the number of nonobvious ideas in this little program. They came to 17. And some of them were like the concept of the arch in building design: very hard to discover, if you don't already know them.
-Stu
You could just show some examples of Lisp code and macros that you think represent the best of Lisp.
Then I could show you how the Python equivalent is good enough while using less complicated means, or even better.
Then I could show you various examples where Python succeeds, and you can try to show me the Lisp equivalent.
I found it funny that even the Python introduction to Lisp'ers, while making some errorenous claims about Python (like claiming it lacks lexical closures) used examples which were shorter, more readable and more concise when expressed as Python.
Speaking as one of the aformentioned kids, this interests me.
One thing that cam apparent when I took a computing course was how basic it was, we used a language called REALbasic, visual basic without the brand name, and were taught basic commands.
I had no idea about coding properly until I asked my father for help on learning perl for use on a project (which I later learned that they wouldn't allow because the teacher couldn't read it.), but I had my eyes opened immensly. School was not a good place to learn computing.
The main difference between the generations is need. Earlier systems needed for the user to be more involved with the system in order to maintain it, and so the users will know the system. Modern day windows systems, the most commonly used, require no coding knowledge. Henceforth, non is learned.
It's a shame, I wish I learned earlier, as opposed to being a beginner now.
The distinction is in the execution environment, not in the source, so there is no difference between a program and a script. Most languages are available in a variety of different execution environments, including interpreters, virtual machines, and compilation to native machine code. Is a chunk of Java source code a program or a script? It depends on how you execute it, with virtual machines offering a broad middle ground of techniques ranging from interpretation to various types of dynamic binary translation. I've used a C interpreter, and even assembly languages can be and often are interpreted using system level virtual machines.
All very true and valid points. What this kid needs is his dad, or some friends who've already "figured it out"...
Sadly, it is just as Alan Kay has observed (paraphrasing): Kids are shown how to do too many stupid things on computers and they think this is all that they are for. They think that driving a word-processor makes you computer literate.
People have been bemoning this issue for a long time though. Witness the complaints when HyperCard became popular on the Mac: all the "real programmers" worried that it would lead to spaghetti-stacks. It might have, but at least the stack writers were learning something about programming, and becomming more computer literate than their game-playing friends.
Since now-days the computer has been hidden beneath a "user-friendly" interface, kids need someone to show them how to open the hood. Assuming that the hood can in fact be opened, which in Windows, it's been welded shut and you must purchase your own blow-torch first.
“Our opponent is an alien starship packed with nuclear bombs. We have a protractor.” — Neal Stepnenso
Now it is true that a lot of these folks wrote some pretty awful, unmaintainable code, but it is by no means proven that they would've been better off trying to wear an elegant straight-jacket.
There's something to be said for a "hello world" program that's only one line long...
I personaly do program and have been for 4 years now i started with HTML but my intrest was not truely sparked until qbasic, and i progressed through VB working on several Small 2d mmorpgs, then to several other languages, i now consider my self very adept in C++, and Java.
but i do see the intrest in actually harnessing the power of computers for more than video games, porn, and music are very much lacking. as a teenager myself i believe this is due to the shear fact that no one truely needs to create anything them selves, like they did years ago, everything is already premade and packaged with a nice user interface. most kids decide "Hey there is money in this so ill learn it" and start in collage. its quite unrewarding starting a new project or doing something awsome and not having anyone to physically talk to that can understand me. but aye..
Jordan McCann
solance(at)gmail(dot)com
I started programming at a sort of late age compared to most of the gurus out there. I am in high school right now, we have about 5 diffrent programming classes, such as beginners classes where they teach the RealBasic programming language. There is also a HTML class, and an AP Computer Science class where they teach Java. At my school there are plenty of opportunities in our high school for kids to get into programming. Although I have not seen to much interest other then using the begginer Computer Programming classes as a filler, just to get credits. There are hardly any students who are pationate about programming. I for one am in AP Computer Science, and there are rapidly decreasing numbers in the interest in this course, in fact so little, that next year there will only be just a A class and no AB. I would agree that kid's these days are not showing interest, enven though they have the chance to join a class and learn a thing or two.
I don't want to be guilty of the post that either ignites the "python sucks due to white space nonsense", nor the pythonista "spaces for indentation! no, tabs!!" war.
However...
Whitespace is NOT a barrier, nor a hindrance - it's a blessing, and, yes Judy, you do already use it as expected.
And **I** find tabs are easier on every level to use for indentation, rather than spaces. Pity there's an "argument" to be had by otherwise sane, rational people.
Eh.
Anywho, no, one may use Notepad to make python programs just fine. In case you didn't know.
-Larz
"To err is human, to totally fsck things up requires an election." - L.W. Hale
Well, not to sound like a hater, but I always thought there were way too many want-a-be programmers out there anyway. Better that there are moare kids thinking programming requires "work" which it does. I might still have a job in 20 years!
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. ~Albert Einstein
My mother taught me how to read and my father taught me basic algebra. I started programming at age seven, already having the necessary skills. If I was forced to learn these things in public school... I'd be illiterate and have no understanding of mathematics... not enough to program a computer anyway.
The majority of my former school peers couldn't solve equations or even perform long division by their senior year... skills I acquired easily and early on. The schools I attended were award winning, well funded, and regarded as some of the best... and still basic math and reading could not be taught. Nothing new was introduced between the first grade and tenth grade.
Hard sciences are declining because American education is a failure. Our embarrasing literacy rates, highscool drop out rates, and falling standardized test scores is all the proof anyone needs. Kids can't program anymore. We don't give them the skills nor the education.
wow, I seem to have opened a can of works to this. I notice that most of the people who are "having a go" are the students who are being locked out.
I'm sorry to say, nothing that has been replied has at all made me change my views. Unless the course requires it you won't get it.
Banning executables? Why do you think thats done? It's to stop people coming in and running whatever they want. Web proxy bypass? Password crackers? Screensaver junk?
And I'm sorry, giving any student extended access for unsupervisied use means that they will abuse it. "Hey lads look what I can do!"
> locking down the computer makes the computers really expensive pieces of crap.
No, it means that people like you can't mess about with the settings making sure the PC doesn't work for the next student. A locked down PC will still run applications, it will still allow you to program, it will still allow you to browse the web.
> how about unlocking the PCs and just restoring them to their original state during the night?
Because people like you will mess with the settings during the day. Your profile setting will stay with your profile, 600 pcs reinstalling at night means there *will* be problems in the morning.
> Your job is not like in an industrial setting, but is something much more important.
It's to keep 600 PCs and 200 various applications running for the use of 1500 students to facilitate teaching and learning. It doesn't mean allowing students to fiddle with the background so they can have a picture of (insert latest celebrity here).
Its to make sure when a teacher walks into a classroom all PC's are working, it means being responsive to breakdowns. A school different to industry or "Private Sector", with different pressures and different attitudes. One of those pressures is "why should I pay for another technician when I can get (half) a teacher?". Another is "I need this application for xyz".
> Then he would have said "We can't provide for 1500 profiles", instead of "1 mandatory profile is far easier than 1500 roaming profiles".
We could provide 1500 profiles. At the same time we could provide a computer system that is not available, takes an age to login. Even Microsoft are not "convinced" of the value of roaming profiles where a user could logon to any number of stations. Why do you think a cached copy is kept on stations when you logon? It's so the next time it logs on faster. Or did you not know that?
> Having 1500 roaming profiles should allow you to justify more admins
No, what it would mean is longer login times, more things that can (and do) go wrong. Extra technicians is not an option.
> the only text editor available on my school machines is MS Word; useless for compatibility
Ahh, why is that? It saves and imports as Text and as RTF? Whats not compatible with that? Compatibility with what?
> Riiight. We're too stupid to understand it, but you're the school IT guy, so we'll trust you.
You may not be stupid, but you don't understand about running a computer system. And I don't trust you or any of your peers.
> Of course it does, because the whole point of school is for you to make your job easier, right?
My job is to keep the computing systems in the school up and running. This means making best possible use of resources I have to do so, yes if setting something up will take less of those resources then I will take that option.
try to make ends meet, you're a slave to money, then you die
Part of the problem is that most computer teachers aren't computer science majors or even primarily computer science teachers. Rather, they're math teachers or librarians who got roped into teaching computer science because the administrators figure it's all about the same. Think about it... who's going to get a computer science degree and then spend years studying for a teaching degree for a job that barely makes $45k a year and requires extensive amounts of overtime work ouytside of the office? Quite frankly, I think teachers should be one of our more highly paid jobs. It's certainly important enough.
This sig has absolutely no significance and serves only to take up screen space and waste the time of the reader.
We have airplanes. Why climb Everest?
You, sir, don't know much about flying, I suspect. Mountains provide a great deal of challenges for pilots, let alone the other hostile conditions of Everest.
This sig has absolutely no significance and serves only to take up screen space and waste the time of the reader.
i consider myself lucky... im 16 now and have been programming for 2 years. i likely wouldnt be doing this at all if it werent for my amazing programming program (hah) at school. in middle school my neighbor who was taking classes at the high school would have me beta test his pascal programs. i was like dude! thats cool so when i was a freshman i took computer science I and learned pascal, took a semester in java then earlier this year a semester in c++. we really have an amazing teacher, other high schools in the area offer visual basic as the introductory course, i talk to them about c++ and they say, "ive heard its to hard, and i can do everything with vb" im now in an independent study class where we can either learn a new language or continue with an old one and work on our own projects. i wrote a pacman program in c++ with sdl and now im learning python, most other kids do vb. most kids just dont know about it, i know i wouldnt have... it was summed up nicely earlier, its because there isnt a need to.
you fail at trolling the internet
Being a high school student myself, I have first hand experience of computer education (or lack thereof). At my current school, the computers are locked down to where you can't even right click. Many sites concerning programming are blocked because they contain "hacking". Many teachers and parents aren't just indifferent to computers, they're afraid of them. They think that if they let kids have more knowledge of and access to the computers, they'll use them to "hack." I love my math textbook: Addison-Wesley Algebra and Trigonometry, 1994. Spread throughout the chapters are "problems for programmers" with sample BASIC answers in the back. Most of these programs can be written for the graphing calculators that are required in many math classes. The school is being forced to replace the textbooks next year because they are "out of date." Education is being dumbed down, and technophobic parents and teachers don't help the cause.
Reality is the original Rorschach.
What is it with you people?!?! Does it occur to you there is more things to Heaven and Earth that can be dreamt in your philosophy, Horatio? Why is it every person trained on using a hammer thinks all problems can be solved by hammering it?!?!?!
Its 2006. Have you not heard of a computer communication network called... the Internet? You can do really neat things like... download all the programming packages in the world that one would wish to use! You are a man dying of thirst floating in the middle of a freshwater lake because you're too stupid to realize its potable water keeping you afloat!!!
And why would one think the best way of introducing kids to computers is using crippled, archaic language technologies like BASIC??? Introducing kids to BASIC is the computer science equivalent of CHILD ABUSE! "It was good fer me, its what'll be best for my kid." Yeah, my dad felt the same way about using a belt when we got out of line. Some people grew up in Sudan; I guess chewing narcotic leaves and learning to kill people with AK-47s is the best way to raise an adolescent.
You don't see me telling kids to learn FORTRAN and COBOL when I was a kid. And hell, you can program games in COBOL too! I deliberately keep a copy of COBOL TREK in case I'm trapped, and only have access to a 370.
The kid wants to learn to program? Teach them to use a webbrowser and google.com, and they can go download the java SDK. Do you really think writing something like:
...is clear and easy? Compared to java???
10 J=SQRT($I)**$VLOG
20 POKE(J)
30 SPRITE(J*X,F)
50 GOSUB 470
Java too hard? Try this. Its as straightforward as BASIC, its an object oriented language, and much more conceptual and educational. Hell, it even caters to kids, here.
UNBELEIVABLE! Is it me? Am I the only one here who sees mentally crippled BASIC programmers?!?!?
There is no America. There is no democracy. There is only IBM and AT&T and DuPont, Dow, General Electric, and Exxon