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?
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!
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.
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.
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.
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 . . .
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.
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.
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 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 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.
Speaking as one who is too much older than the demographic you speak of, and is a fairly competent programmer, I call your BS. Complexity has gone up, but it is by no means beyond someone who is interested and dedicated.
:/
My school doesn't offer any classes in programming, so I teach myself, but sadly, I'm not sure how many people would take it if they did offer it. Most kids my age are just lazy sheep; programming isn't required to graduate, and it isn't 'cool', so people don't take it, sans geeks.
Geek to sheep ratio is low though
DYWYPI?
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.
That strikes me as hilarious. No disrespect, I know you guys mean well. I just can't picture kids diving right into a professional environment and language as complex as C# (or god forbid C++). It's not that they can't start with the basics, it's that the basics don't let them do anything interesting. You have to learn a huge number of syntax rules and complicated APIs to get anywhere. Last time I looked (which admittedly was quite a while ago) even the VS gui builder, which takes a lot of the pain out of making interfaces, still requires you to at least partially understand some fairly sophisticated concepts (event handling, VC of MVC model, etc).
I see more hope in a language like Python. Simple, clear syntax and a powerful library that's pretty easy to use. You can get off the ground running a lot quicker, making useful programs your first day. It's that kind of positive feedback that encourages people to explore. Just like back in the day, when a few lines of basic were enough to make a useful program. As machines have gotten more sophisticated, the bar defining "useful" has risen a lot higher too.
But hey, more power to you guys at MS. I applaud your efforts and wish you luck. Just please don't tell me VB(.net) is your answer to python...
Democracy is two wolves and a sheep voting on lunch.
To some extent, maybe. One could also make a good argument that teaching Excel/Access/Word is not pointless, because in many jobs and even in college knowing them (or some equivalent, and let's face it, Word and Excel are far more widely used than OO.org Writer and Calc) is a necessity.
The reason I say "to some extent" is that when I was in middle school and high school (1974 - 1980), there were no computer classes either. None. Zero. I don't think one teacher in either school even knew how to use a computer. But, we did have computer access in my middle school (my high school was private and had nothing).
We had dial-up 300 baud access to the city schools computer systems (HP 2000 Access machines). We had two terminals - a DECWriter II and some heinous CRT that would practically burn the eyeballs out of your head after a few hours.
Students had to join the computer club to use them (set up by the principal; I don't know if he knew computers himself or not, but he was a very insightful and forward-looking man who clearly appreciated their value and potential). You could play games like Star Trek or Wumpus, or you could program in BASIC. Most of us mostly programmed. One guy had a paper route, and had written a program to do all of his paper route accounting. Other people worked on games and stuff. One guy wrote the first malware I ever saw :-) It disabled the break key and pretended to be the login screen. You had to know *its* password to disable it. If you typed in your userid and password, it would save them to a file and return to its bogus login screen. Some of us had access to the source code, and this set off a little competition of sorts to see who could most improve upon it to make it more realistic.
The thing about this computer use and the computer club is, there wasn't really anybody who taught us. There were no classes. The club moderator (a teacher) wasn't a programmer, either. We taught ourselves and taught each other, as best we could. Experienced guys (and I mean guys; I went all through 7th, 8th, and 9th grade without ever seeing a girl attend a computer club meeting, let alone actually join) would help the n00bs get started, and when we were no longer n00bs, we'd pass it along.
So, while I agree with your point about a lack of programming classes, that's hardly the only thing that matters. You have so many more resources than I did when I was in junior high school. In most schools, most students have at least one computer of their own at home, and that one computer has more processing power than every computer in my entire city did in 1974. Compilers and IDEs are affordable (or free, if you're using *nix). There are more programming books in an average bookstore than you could even get home in your car. There are massive amount of free tutorials available on the web. We didn't have any of those resources in 1974. The one resource we had was one that you have, too: a group of like-minded peers who were interested in computers and helped each other learn. One of the things that got me into Linux in the late nineties was that I found the user community was very much like my old junior high school computer club: smart, very enthusiastic, talented, very often self-taught, and very willing, ready, and able to help others who wanted to help themselves.
I bet that if I had a list of names of all the students who were in the Taft Junior High computer club and could track them down today, I would find that most of them either are working, or have worked, in computer jobs.
The one resource I had available for learning computers in junior high is a resource you have available, too: a like-minded peer group. If you're not in touch with people like that, get in touch. If there's no club and you think it would be beneficial
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 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
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)
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 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.
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.
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?
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.
Erm... And where is this, exactly? I'm certain the Visual Basic runtime's there, but under what menu in WinXP will I find the Visual Basic compiler?
Program Intellivision!
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.
Well, I know that programming is not taught in the same way as my father learned; when he learned COBOL and Fortran, the first things they learned were planning/flowcharting the program. When I learned VB.NET in college, the professor didn't even explain what a variable, constant, etc. was. He just jumped right in and expected people to figure it out. The kicker is that elementary ed majors had to take that class for some reason, so they all were getting Cs or worse. Because of this lack of planning, bad programmers are born, and then the process of debugging is too tedious for most people. Personally, I hate that kind of tedium. Anyway, just my two cents on the issue.
Hey, can I bum a sig?
Heh!
:-)
:-)
Yeah, it seems as most kids involved in computers are gamers or myspace addicts. Then there are the "script kiddie" wannabe criminal hackers.
It does remind me back in the day of the Amiga (late 80's,) a friend of mine and I had a dispute about C versus Basic, so we decided to have a programming contest on who could write a clone of Pong the fastest. Well, to make a long story short, my Basic friend won by about 15 minutes on something that worked, (I think it took us a little over an hour) but I still maintain that my version more closely matched the behavior and playability of the original
I think there are still a lot of kids out there that are truely interested in programming and other deeper understanding. It's just not a huge percentage (and never was.) I think computers are also a lot more complex and less "hackable" today. The Apple ][ was fun because you could go in and really tweak things (peek and poke the hardware) at a very low level. People really had to learn a LOT about how things worked in assembly language - you KNEW binary / hex / decimal / ascii conversions intimately. Anyone remember the Merlin assembler and Sourcerer disassembler?
It didn't start recently, that's the shame.
I haven't been in school in a decade, so I don't know how much worse it may have gotten, but things have been on the way downhill since before I was in school myself.
I've recently become a fan of Richard Feynman, and he has some scathing things to say about the teaching of Algebra when *he* went to school. I'll relate one of his stories as best I can from memory, but I do highly recommend reading his "memoirs" such as "Surely You're Joking, Mr. Feynman" even if the lectures he gave on physics do not interest you.
He talk about when he was learning mathematics himself, as a kid -- I believe he was about 10-12 and he'd taught himself algebra from a book called "Algebra for the Practical Man" or some such -- at any rate, his cousin (I think) was learning Algebra in school at the same time. And he told Richard he was having a hard time with some problem, say 2x + 4 = 8, solve for x and Richard said, "Oh, you mean '2'?" and his cousin said, "Yes, but you did it by arithmetic; we have to do it by Algebra."
Feynman then makes the claim that this is evidence of how the school system is in decline; he knows the important thing isn't how you get the answer, it's understanding how these things relate and (he explains all this much better than I do) that schools had invented this "process" called "Algebra" where you could follow some rote steps and arrive at the right answer with no understanding whatsoever of what you were doing.
Tell me if that last part doesn't ring true for the education YOU received in Algebra. It certainly does for me.
-Chris