Forgot your password?
typodupeerror
Programming Education

Ask Slashdot: Do Kids Still Take Interest In Programming For Its Own Sake? 276

Posted by Soulskill
from the too-hip-to-be-cool dept.
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."
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Do Kids Still Take Interest In Programming For Its Own Sake?

Comments Filter:
  • by ProgrammerJulia (2589195) on Tuesday March 06, 2012 @06:15AM (#39259315)
    Anyone rarely does anything just for its sake. There's always some ultimate goals. As a become adult, programming became means of getting money and helping with business. When I was a kid, programming enabled me to make games and sandboxes that weren't otherwise available. I did some great things too.. but I never wanted to program "just for the sake of it". I wanted the results of that programming. Even if that meant a little fun sandbox game made by me.

    It's not just computers, this is true for everything. Everyone does something for a reason. For me, programming was a way to create the games and sandboxes I dreamed of and enjoyed. I never really even finished anything, but I had my mind going around the AI and the general gameplay mechanics. Especially when I was waiting for bus or doing something other boring stuff. But, I was never really fascinated about computers or programming *per se*. I was interested at what those techniques could give me.

    So rather than trying to educate programming, computer history or other boring stuff, try to tell what fun stuff you can do, or whatever he would be interested at. Everything else will come later, and the kids will either pick it up themselves or ask, if they want to.
  • by Daniel Dvorkin (106857) on Tuesday March 06, 2012 @06:31AM (#39259361) Homepage Journal

    ... are a tiny minority. Always have been, always will be. The submitter seems to think the average 10-year-old should be interested in programming because he was at that age. Well, good for him, and I guarantee there are still 10-year-olds interested in it, but they're going to be awfully thin on the ground -- and this was just true back then as it is now.

  • by goldcd (587052) on Tuesday March 06, 2012 @06:32AM (#39259367) Homepage
    The ability - which generally just takes a PC, a book and some time.
    The desire. You've got to want to build something. You then get to add stuff to it. You then realize you don't know how to add something (this is where you go to the index of the book you abandoned days before, realize it's not in there, rush online, find the solution, realize you've done something else in a stupid way, decide you might want to fix that etc etc). Basically the hump is getting hello world up on the screen and then creating the very first bit of your 'thing'

    I don't even think it has to be programming per se. Quite fun playing with APIs on sites that you're familiar with, with something friendly like PHP.
    I wanted to look up the prices of my old DVDs I wanted to sell. Pain in the arse on Amazon... oh, hold on they have an API.
    Oh, then how about using a CSV to load and dump results to?
    Shit, I seem to be getting results back from the wrong bits of amazon, lets add some array sorting.
    Would be nice to store lookups I've made - MySQL
    Oooh, how about other sites... they don't have an API *googles*... "Oooh Curl" etc.

    Basically, if you're interested in something and have time, it will all follow. You can later learn how to do it properly later, but it tends to flow. Nobody wants to sit down and read a chapter on exception handling - but once your program is mysteriously failing, you suddenly find you've become quite fascinated with the intricacies of exceptions. You'll just bolt them on until the problem is fixed, but on your next project you'll have that pain in your mind from the start, and may find yourself now dutifully adding them.

    I'm meandering all over the place here now - I think you just need to ask your nephew what he wants to build, make sure it's realistic (or choose a functional subsection to start with). Also nice if it's something that could go online, be run on a smartphone or similar - once you've built this thing, you want to show it off.
  • NO! (Score:0, Insightful)

    by Anonymous Coward on Tuesday March 06, 2012 @06:36AM (#39259385)
    Don't teach them programming. You're not doing them any favor.
  • by kale77in (703316) on Tuesday March 06, 2012 @06:42AM (#39259401) Homepage

    I would say mod parent up... But remembered that *I* have mod points. MAHAHAHAHHHH!!!!

    Seriously, you just say: "You know that ANYONE can do that, yeah?" when they like something a computer does.

    Myself, I took the 1986 Scientific American article with the fractals on the cover and coded up the algorithm on little PC with 64K or RAM, and never looked back. I've used to assume that the question for a ten year old would be "Would you like to write your own game?" ... But actually, it's "What do computers do that is cool?" and the realization that literally _anyone_ can do that. It's a level playing field. Anything you can see on a computer, you can take apart or rebuild, and then change to make it do what you want.

  • by SmallFurryCreature (593017) on Tuesday March 06, 2012 @06:51AM (#39259431) Journal

    No. That is like asking if there are kids who want to weld for welding sake. Or fuck for fuck sake. We don't fuck for fuck sake, we fuck for the climax. Without the climax, fucking would be fucking boring.

    Most people code because they want to get something done. Those who don't work in government. Kids want to code a game, the kids that want to code a database or search algorithm tend to be watched by the FBI, from a safe distance, through a snipers scope.

    It is the same as with a spoken language. Nobody wants to learn French for the sake of the language, they want to impress chicks. Japanese is only studied by people with a fantasy of picking up school girls, desu. Latin for those who wished to be picked up by Catholic priests.

    The easiest way to keep kids interested is to make sure things beep and whistle and spin. It does't matter that much if it is text graphics, direct 3d or leds on a Arduino board, or a programming robot game. What matters is that the concepts have clear examples with easy to understand results.

    It is the reason PHP is so popular, its examples are extremely clear and light on the jargon. It is the reason Lego is such a success, nobody has to spend time learning the building blocks of Lego, they are clear... then you can spend all your energy on creating.

    Kids haven't really changed but nerdy pursuits have always been the domain of the select few... the few selected by girls not to be dated.

  • Chasing Paychecks (Score:5, Insightful)

    by SkydiverFL (310021) on Tuesday March 06, 2012 @06:52AM (#39259433) Homepage

    After 30 years of professional development, I feel that many developers SUCK! They wear some "architect" or "senior developer" badge but struggle through the most basic concepts. I believe the reason is that MANY coders are simply chasing paychecks or have been pushed into the field. They lack the PASSION that I remember when I first got into it. Everyone was learning to program because they loved these cook PC things and WANTED to do something with them AFTER they soldered everything together. Most "geeks" share that same type of passion. They gravitate to the next cool innovation and, in the process, become great at what they love. However, today, the industry is flooded with bodies that are simply working the cliche' 9-5 and drooling over a six-figure paycheck.

  • by Anonymous Coward on Tuesday March 06, 2012 @07:07AM (#39259475)

    I had a bash at learning to program a while ago, and one thing that got in my way was figuring out where to start and feeling like I had to learn multuple standards and "languages" at the same time. I made the mistake of asking a bunch of people on a forum which language was best to start with, and I got a dozen replies with a dozen different answers. I then made the mistake of getting a book which claimed to be for beginners but clearly meant "someone familiar with programming but who doesn't know this language". After getting bombarded with concepts and programming language I wasn't familiar with I gave up on that language, went to W3Schools [w3schools.com] and learnt HTML and built a small web page. W3S is simple, it's a "for total newbies" style guide and it doesn't bother even mentioning other optional stuff like CSS until you actually have a grasp on basic HTML.

    One thing a lot of places (and people) seem to miss with learning is Keep It Simple Stupid: newbie programmers haven't a clue about all of the different languages available these days, or the different concepts surrounding their strengths and weaknessess, or the standards or versions.... So to take your example, from the perspective of a total newbie:

    Basically the hump is getting hello world up on the screen and then creating the very first bit of your 'thing'

    OK, I've got my machine displaying "Hello World", and I feel quite pleased with ymself. Now, onto the next step...

    I wanted to look up the prices of my old DVDs I wanted to sell. Pain in the arse on Amazon... oh, hold on they have an API. Quite fun playing with APIs on sites that you're familiar with, with something friendly like PHP.

    Wait, what? What's an API? And what the hell is PHP? Do I have to learn some whole new language called PHP to interact with my "Hello world" program? Why do I need these API and PHP things?!

    Oh, then how about using a CSV to load and dump results to?

    OK, you've totally lost me now.

    Shit, I seem to be getting results back from the wrong bits of amazon, lets add some array sorting.

    I have no idea what an array is, let alone how to sort it.

    Etc. etc.

    I know nobody can reasonably expect to pick everything up in a week, but the thing is, there are so many different languages, concepts, modules and standards these days that experienced programmers seem to forget that newbies often haven't heard of these things, let alone understand what they are or why they're needed. Learning a new language is time consuming enough for many people without having to learn how to write and interact with MySQL on the side at the same time: it needs to be kept on a single track until we know how to handle that properly, then it'll be easy enough to plug other stuff in. We don't have the years of experience interacting with all of these different things simultaneously that you guys have.

  • No they don't (Score:5, Insightful)

    by prefec2 (875483) on Tuesday March 06, 2012 @08:32AM (#39259763)

    A lot changed since the 1970s. In the 1970s computer were science fiction and science fiction was en vogue. We tried to build our own computers based on transistors and later on microchips. In the 1980s things already improved so much, that a lot of people could by a home computer like ZX spectrum, Commodore C64 or Amstrad CPC 464. These machines provided a simple BASIC interface. They were designed for start and play. Where play meant programming. And you could dig into those machines and learn to peek and poke around in the hardware. Then you learned assembler etc. In the 1990s this moved to PCs. While old PCs still allowed you to access the hardware and you had to work with the console. Upcoming GUIs made the direct experience of the machine much more complicated. You couldn't re-program Pong in a week, while learning BASIC.

    So on one side, computers get more complex and shield people from the machine and the machine feeling, and on the other side the sci-fi feeling is no longer so intriguing today than in those days. While in the 1970s, if you understood computers you could build your own moon lander software. At least a facsimile. And a lot of the people did. And the program would only display longitude, latitude and height above ground, as well as, speed and fuel. But all without graphic (which had to be imagined). Today moon landing is lame. Especially compared to those days. the whole society is no longer in technology.

    In short: The whole setting is different. And the nerds of today go into gaming and become dorks.

  • by HopefulIntern (1759406) on Tuesday March 06, 2012 @08:55AM (#39259855)
    I disagree, I think it is entirely possible to want to program for the sake of it. You need a goal, something you are making, but the motivation for doing it doesn't just need to be "I want that thing, so I'm gonna code it together!". It could simply be "I like programming, so I'm gonna build my own thing!"
    It's the same reason you had Legos as a kid. Did you make functional things out of Lego, that improved your quality of life? Or did you just like building things?
  • by Bigbutt (65939) on Tuesday March 06, 2012 @12:17PM (#39261883) Homepage Journal

    Shoot, I didn't realize I wasn't logged in so here it is again, properly attributed :)

    That why I'm a SysAdmin instead of a programmer. As as sysadmin, I can write programs (scripts) that do what I want vs working in an environment where folks tell me what to do. I started out learning to program back on the Sinclair (writing programs that assist with my gaming) then got jobs as a programmer. I found that being told what to do made programming boring and tedious (and a little frustrating). The nice thing about being a sysadmin is a good portion of the time is spent looking for problems (at least for me as I'm very proactive). So when I find something, I script up a solution and push it out to all servers to see if something else has the same problem. It gives me a creative outlet and I look good because I found all the servers with failing cache batteries that are only reported in the logs. The number of reactive problems drops significantly and we all look good for staying on top of things.

    A couple of years ago when I started here, I converted an excel spreadsheet of our equipment list into a php front ended mysql backended database. From there, as I wanted to add new things, I'd research how to do what I wanted to do and implement it. As I improved in writing php, javascript, and mysql code, I'd keep adding features that scratch my itch as well as others to the point that the inventory program is being used by quite a lot of people and I spend a portion of my time either working on enhancements (recently added a network map) and even adding modules that provide non-inventory related enhancements. Right now I think I found the right code to create multi-layer PNG images so I can use javascript to hide layers for the network map. And heck, I'm about ready to step up and get a php or mysql cert along with my CCNP and Solaris certs and a coveted 3Wizard cert I earned way back in the day :)

    It's loads of fun.

    [John]

A motion to adjourn is always in order.

Working...