Ask Slashdot: Do Kids Still Take Interest In Programming For Its Own Sake? 276
nirgle writes "I have been wondering lately if there are any kids interested in programming for its own sake anymore. When I was my nephew's age, computers were still fascinating: There wasn't a laptop on every table, facebook wasn't splattered on every screen, and you couldn't get any question answered in just a couple seconds with Google. When I was 10, I would have done anything for a close programming mentor instead of the 5-foot high stack of books that I had to read cover-to-cover on my own. So I was happy when my nephew started asking about learning to do what "Uncle Jay does." Does the responsibility now shift to us to kindle early fires in computer science, or is programming now just another profession for the educational system to manage?"
Another reader pointed out a related post on the Invent with Python blog titled "Nobody wants to learn how to program."
Programming means understanding (Score:4, Interesting)
Programming is a fundamental skill, almost like reading and writing. Children learn the shape of the characters in one year, but they keep learning how to read and write for many more years, because reading and writing aren't mechanical skills. Programming is a formalization of a solution, and this skill is fundamental. The most important aspect of programming is understanding the problem in detail, and that's something everybody could use. It's like writing up a complicated story without loose ends and contradictions: We're not all going to write books and screenplays, but almost everybody needs to express more complicated thoughts than "I want a cheeseburger".
Re:Programming for programmings "own sake" (Score:5, Interesting)
I guess there are several kinds of people, those like you (I think I get your point), and those like me : *I* was really fascinated about computers and programming *per se*.
It was not about one or a few particular goals, it is about the idea of an infinity of things that became possible, and being able to bring new kinds of solutions to almost anybody on the planet. In this regard, somehow I'm joining your point, because of course there always are ultimate goals, but they were not my own : they were other people's goals that I thrived to reach using my craft : programming.
Re:Programming for programmings "own sake" (Score:5, Interesting)
Everyone does something for a reason. For me, programming was a way to create the games and sandboxes I dreamed of and enjoyed.
In psychology, the motivation can be intrinsic or extrinsic:
http://en.wikipedia.org/wiki/Motivation#Intrinsic_and_extrinsic_motivation [wikipedia.org]
Intrinsic means that you do the things for the pleasure of doing them. In your case, creating games for your enjoyment.
Extrinsic means that you do the things to get a reward or avoid a punishment. In your case, it's about getting money.
If the extrinsic motivation becomes bigger than the intrinsic motivation, you don't enjoy your work anymore, and you get bored.
Education encourages extrinsic motivation, by grading people, which basically kills enjoyment in learning when grades become more important than learning.
The more educated you are, and the more you are dependent on extrinsic motivation, which makes people search for fame or money.
People with strong extrinsic motivation (and who have good grades at school) tend to fail in real life, because they search for the immediate rewards.
To avoid being bored, the only way is to do things with intrinsic motivation, and that doesn't mean not getting paid !
If you enjoy what you do, you'll be happier, and you can get paid for it, sometimes making a lot of money, but that's not the main goal.
But this also requires to determine if you can accept to earn a little less money in exchange of being happier...
Back in the 80s you could compete... (Score:5, Interesting)
When I was an 80s teen with my ZX Spectrum, I could write games that weren't too far behind the earliest commercial games. (back then it was even a novelty to have control over what appeared on your old telly screen!)
I wrote games that gave me as much fun as the coin-op machines back then, when things were primitive.
Now though, how can any kid write a fluid 3D FPS shoot-up? I take my hat off to any who can! Where's the incentive? Where's the novelty?
Little 2D games on the kids' Android phones, maybe. Perhaps.
Re:Programming for programmings "own sake" (Score:3, Interesting)
It saddens me how boring computing has become. When I was a kid, computers were my friends, mysterious odd creatures with their own faults, oddities and dark corners. Thus I learned to talk, dream and breathe in binary so that I could better understand and associate with them. Apparently not so today.
Re:Programming for programmings "own sake" (Score:5, Interesting)
I teach a research methods module to undergraduate life sciences students. The vast majority of these people have never programmed and never expect to. This is a bit strange when so much of being a professional scientist in my field involves programming. Recently, we changed the research assignment they have to do so that it now involves some very basic programming. Mostly GUI stuff where they build a timeline and a "flow" out of blocks, but there are a few lines of code they need to write too.
I was expecting there to be much wailing and gnashing of teeth about the content being too difficult, and a rebellion against being made to program. In reality, nobody complained and most of the students seemed to enjoy it. Some of them got very excited about writing a program that made a computer do what they wanted it to do. They also got quite competitive about writing their programs better than their colleagues (to the point of argument, but it was still encouraging to see). These people were not nerds, and talking to them I got the impression some thought computers were just "magic". One student didn't even understand that computer programmers existed who wrote software to make computers do things.
Not for programming's sake (Score:4, Interesting)
I recently built my own house for that same reason. I also made most of the furniture in it as well.
If, at the end of the day, I can say "I made that", then I am happy.
Re:Programming for programmings "own sake" (Score:5, Interesting)
For me I delighted in making the machine do something, and then when I learned that programming was a thing, yes, I programmed and learned about programming for it's own sake.
I was also fascinated by algebra as a child. Guess I'm just weird.
I agree though - don't try to teach kids what it means to be turing complete, or how to normalise data tables, not at first. Show them something with simple cause and effect, see if you can keep their interest.
Shortest possible way to produce something (Score:5, Interesting)
Well, when I started on my Commodore 64 you started at the command prompt read to write code, so yeah I'd say it takes at least a little more prodding than before to get into programming. Also you started with just two lines:
10 PRINT "HELLO WORLD"
20 GOTO 10
Okay, so it doesn't produce a very impressive result but as "bang for the buck" it's pretty good. If the reaction is "All that to produce so little?!" you've lost. Hell, you might have lost anyway if they point you to a $100 million AAA game and say that is cool, I want to make something like that. But since you can't ask for time to be turned back to simple sprite based graphics you can't change that, but at least not start them off down the long road.
Personally today I think I'd actually start them off with a game toolkit where you can script events, like Neverwinter Nights or something like that. First of all because it's a game and looks good and produces something cool, second of all because you can start with a level that already exists. Have them modify it and they'll start thinking about objects, attributes, state, conditions, boolean logic (assuming you want to start them down the OOP path) without banging their head on the really hard issues. Plus you get to make your own adventure, which is creative and fun while learning.
What about carpentry? (Score:5, Interesting)
This entire submission misunderstands the real draw of programming. The desire to learn programming is out of an intrinsic desire in some people to create or build artifacts from resources we have obtained. Some of us are builder/creator archetypes and we are drawn to the process of creation.
If the argument held up, then the quality of carpentry would have degraded considerably with the advent of power tools. Nobody needs to hand-spin a spade to drill a large hole anymore, and while I am handy with a chisel, I can still do things faster and with better quality by using a router for certain situations. The power-tools have allowed us to put arguably better quality wood products in a MUCH faster timeframe, and all with the same sense of satisfaction that you get from a beautiful new table, cabinet or chair.
I do think however that in todays age it is a lot harder to stay focused amidst constant distractions, and it is a lot easier to find information than ever before, making us all slightly lazy from time to time. We are more prone to get frustrated and do something else, so the extreme convenience doesn't come without its faults for sure.
Re:Kids have little context (Score:4, Interesting)
He never realised software development was so difficult, no realisation as to what was actually involved in the process or the building itself.
This can be said for any technical profession when you are 14. Electrical engineering? That's all about putting a few circuits together and the robot just works right? Then in first year of their EE degree they get introduced to concepts like imaginary numbers and it just gets harder from there.
I remember tutoring one subject at uni and a pissed EE student came to me to complain about their assignment. They were asked to simulate an EM wave propagation through a semiconductor in Matlab, quite simple maths but highly iterative so a perfect task to code up on a computer. The student said "I'm an electrical engineer not a computer programmer!" triumphantly. I said, "Ok, then do the assignment using this," and dropped a pencil and calculator on his desk.
His pre-conception on what it is to do engineering jaded his view of what his was doing. None of the people in the class were programmers, but they were simply using a tool they had to solve an electrical engineering problem, and that was writing a bit of code into a computer to solve a math problem that would otherwise take waaaay too long.
Absolutely out of control (Score:4, Interesting)
Absolutely they do.
My son is in year 8 at Melrose high in Canberra Australia. They are doing two courses specific to this: games programming and general programming. 3d modeling is also a choice. He is doing all of them (chip off the old block!)
Their assignment, for 14 year olds is quite hard. It raised my eyebrows when I read it. I'm a multi time CTO with a deep history is c, c++, java, ror, PHP and perl. They were asked as a 15% assignment over two weeks to write a number of very complex programs displaying skill in some quite complex areas in JavaScript, vb, actionscript and powershell. This is quite an amazing thing! These little fellas are in year 8!
The class is voluntary, but wow, is is hard. The kids absolutely love it. They apparently are hyper involved and super enthusiastic. While the teacher may be a messiah (I don't know her) but its obvious the kids are revved up beyond control.
Re:People who are naturally interested in programm (Score:5, Interesting)
It's funny you should mention boredom and building blocks.
When I was a kid, LEGO was all the rage in the UK (and probably many other places too). They were just simple building blocks. They had all the simplicity of wooden blocks, but the advantage that if a clutzy kid like me jogged the surface they were on they didn't all fall down. As they go more complex, they started including manuals to show you how to build different things with the pieces they'd included. (Mechano did the same thing)
Then I noticed a shift in philosophy and the manual had fewer and fewer designs - until they only had one design in the manual. This may have changed since, but I'd be surprised. Since my son was born, I've noticed how toys these days seem to be single serving. They only have one prescribed function. I'm sure that's not how it used to be when I was 5! I've also noticed how my soon to be 1 year old son is more interested in the boxes toys come in, than the toys themselves.
I still remember my Mum coming back from a night class where someone had demonstrated how to program the BBC Acorn Electron in BASIC (at the time a new machine - there I go showing my age!) to work out the average of two numbers, and she complained that it took longer to program the computer than to do the maths on a piece of paper. She clearly didn't understand the power this machine *could* have. My Dad on the other hand did. Not for working out the averages of numbers, but to do other things.
My question for the audience is this; Are kids these days bored because they only have single use toys? The toys they have only do one thing. This leads back to the original article, because when I learnt to program (on that Acorn Electron no less), I learnt because I was fascinated by how I could get the computer to do stuff, other then the prescribed functions that came with the machine.
Re:Programming for programmings "own sake" (Score:4, Interesting)
Soooo - what would a shrink have to say about a guy who has changed careers a half dozen times?
Wow ! You have a very rich life ! I'm really jealous. You should be very open-minded. It took me a lot of time to accept myself and the others, I'm sure it's easy for you.
Personally, I have been a game programmer during 18 years, and did almost all companies at the time.
I lost interest in game programming, and I accepted a job of developer in a startup, just for extrinsic reasons (earning money for my wife).
Recently, I evolved incredibly, thanks to a work on myself since 15 years. I know myself pretty well now, but I also discovered that I have no real limit, since all my limits were self-imposed: I can probably become a CEO or develop an innovative product, or become wealthy.
But what interests me after all these years of working behing computers is humans. I have to admit that I never had a lot of interaction with people, and now, I love that.
Re:Programming for programmings "own sake" (Score:4, Interesting)
I don't remember a single thing that I enjoyed learning at school.
If you're talking about pre-college public education, yes. A teacher can take the most interesting subject matter in the world and make it boring as hell. I never enjoyed public school at all. College was way different, my instructors could take "mundane" things and make them fascinating. I really enjoyed college, and plan on taking classes again when I retire in a couple of years. I was grateful that my employer occasionally had me take classes, too. I love learning.
Also, grading is just spoiling all joy, because it's in general completely arbitrary.
Grades let you know how well you have absorbed the information. It's simply feedback.
The only thing that grades show is how good the teacher is !
Well, if you get poor grades you didn't learn, and if you were trying to learn and didn't then yes, the teacher failed.