Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Education Programming

Why Johnny Can't Code and How That Can Change 527

snydeq writes "Fatal Exception's Neil McAllister discusses why schools are having a hard time engaging young minds in computer science — and what the Scalable Game Design program in Colorado is doing to try to change that. 'Repenning's program avoids this disheartening cycle in three important ways. First, it deemphasizes programming while still encouraging students to develop the logical thinking skills they'll need for more advanced studies. Second, it engages students by encouraging them to be creative and solve their own problems, rather than just repeating exercises dictated by their instructor. Third, and perhaps most important, students are rewarded for their efforts with an actual, concrete result they can relate to: a game.'"
This discussion has been archived. No new comments can be posted.

Why Johnny Can't Code and How That Can Change

Comments Filter:
  • Offshoring. (Score:4, Insightful)

    by sethstorm ( 512897 ) on Thursday June 23, 2011 @11:22AM (#36541870) Homepage

    Johnny can code, just that there's too much against Johhny to make him want to do so.

    Get rid of offshoring, and Johnny will want to code.

  • by Anonymous Coward on Thursday June 23, 2011 @11:24AM (#36541888)

    no amount of coddling will make you a good programmer.

  • by tomhudson ( 43916 ) <barbara,hudson&barbara-hudson,com> on Thursday June 23, 2011 @11:26AM (#36541920) Journal

    ... it's designed to attract the types of students who are disinterested in, or don't have the mind-set for, "real programming".

    That worked out real well for all those colleges that churn out useless web monkeys - but not so well for the unemployable students going around with their "Certificate as a Webmaster's Assistant".

    What next - "Programming by Powerpoint"? Oh wait ...

  • Re:Offshoring. (Score:5, Insightful)

    by Anonymous Coward on Thursday June 23, 2011 @11:28AM (#36541958)

    Middle school and high school students haven't had to fret about offshoring, I doubt that's a factor...

    I think the big difference is, people in the industry (even young people, shortly out of college) grew up with (at minimum, if not earlier systems) DOS based systems, Windows 3.1, IRC chat client's etc. "Back in the day" anyone interested in using their computer for something useful had to learn to do it themselves, and tinker, and become interested in expanding their ability to make their computer do what they want.

    Now, before they can walk, they have 3D games, music players, Facebook and all other forms of social media. I'm not saying it's all bad, but, where is the drive to get someone young interested in computing? To them, using a computer is playing a game, or reading Facebook. Not writing a script for mIRC to scrape text for keywords and have your bot auto respond to people, because that's what used to be fun.. 10+ years ago..

  • Re:Motivation (Score:3, Insightful)

    by geoffrobinson ( 109879 ) on Thursday June 23, 2011 @11:36AM (#36542052) Homepage

    I understand your feelings. At the same time it sounds like someone learning chord progressions on the guitar and wondering how it was applicable to playing Led Zeppelin songs.

  • by siride ( 974284 ) on Thursday June 23, 2011 @11:38AM (#36542088)

    The poster made a mistake because of a homophone. Before you assume that he doesn't know the difference, consider that it may just be an honest mistake. I know the difference, for example, between "no" and "know", but when typing quickly, I might accidentally type the wrong one, and if I'm not careful, I won't go back and fix it. It doesn't mean I'm an idiot who doesn't know basic English. It just means I'm being careless. And for the commentary section on a second-rate news aggregator site, I don't think that's a big deal.

  • by Anrego ( 830717 ) * on Thursday June 23, 2011 @11:38AM (#36542090)

    A disturbing interest in the kind of things that put off the kids described in this article

    There are exceptions, but most of the programmers I know (and myself), when first exposed to computers, immediately started wondering how they worked and how we could "make programs". If that curiosity and interest isn't automatic and you have to be "tricked" into it... in my opinion you'll probably be a bad programmer.

  • Re:Offshoring. (Score:5, Insightful)

    by Kagetsuki ( 1620613 ) on Thursday June 23, 2011 @11:41AM (#36542128)

    Bullshit. Jina can code just as well as Johnny if not better, and he doesn't have the elitist "I'm always right because I studied design theory for four years" attitude. That's the problem.

    I had played around with coding myself, but really learned first at Stanford. The thing is after returning to Japan I went to a specialty school that didn't even have an entrance exam - anyone can attend, and had to re-learn everything during the first year. I thought this would be worthless, but I quickly found out I had been taught how to code very poorly. You could easily draw parallels from programming education to math education in America vs math education in Japan or India.

    I'm sure I'll get marked flamebait for all of this, but from my personal experiences both learning to code and working with other coders from America, Japan, and India I can tell you I'd probably never choose to partner with an American coder over an Indian or Japanese. Drop the attitudes and learn from those who in reality are doing it better than you.

  • Teaching (Score:5, Insightful)

    by Aladrin ( 926209 ) on Thursday June 23, 2011 @11:42AM (#36542148)

    It has been my experience that walking a student through making something simple will widen their eyes considerably. This usually means something like an easy game where they can visually see the results of their work. Games that can be modified easily are even better, because they -will- play with the code and try to improve it for their own tastes.

    On the other hand, teaching them to write a linked list is mind-numbingly boring for someone who can't imagine why they'd want such a thing.

    Getting people interested in programmer is mostly about giving them the right exposure at the start.

    This course sounds like it at least is headed the right direction.

  • Re:Offshoring. (Score:2, Insightful)

    by tthomas48 ( 180798 ) on Thursday June 23, 2011 @11:47AM (#36542200)

    Yeah, that's why software developers are some of the highest paid workers in the US. If you're having trouble finding a programming job you are probably piss poor at it and should look for another line of work. There are hundreds of open jobs right now in my city.

  • by Moryath ( 553296 ) on Thursday June 23, 2011 @11:50AM (#36542240)

    just like normal people aren't clever enough to use Linux (hence it's low market share)

    Uhm... try that one again.
    Most people don't use Linux because:
    - The support for it is limited to forums where you never get actual help, but instead a bunch of ass-hats who shout back "RTFM LAMZOR" and similar insults at you. If you write in to a bug report forum or a feature request to some bit of software, someone screaming "the beauty of it is its linux so you can fix it yourself so go fix it yourself and post the fix noob" is not comforting or likely to make you stick around.

    - Most of the programs they are looking to run, don't run on Linux (games industry, sadly, used to be a lot better but has backslid over the years considerably).

    - The "open source alternatives" to many of the programs they run, have problems with shifting crap around on them [eweek.com] for poorly documented reasons.

    - You don't just "switch to linux." You have to pick one of a gazillion discordant distros, or else fuck around trying out every goddamn one for six months to settle on the one you like and HOPE that it remains updated and supported thereafter. And that they don't fuck with you in the next release, like Ubuntu just did forcing this crap "Unity" interface. And that the architecture for your particular distro isn't rewritten in some bizarre-ass fucking arcane way that causes your particular hardware to break on the "standard linux driver"... presuming one even exists.

    I won't say that there aren't very intelligent people using Linux - there obviously are. But it has become very obvious to me over the past 15 years that the people programming Linux, the people designing interfaces for Linux, and the people evangelizing Linux, have absolutely no goddamn fucking clue what a normal desktop user wants, needs, or what will appeal to same. I refer you to this insightful post [wordpress.com] from someone who also has spent plenty of time with Linux as well.

  • Re:Motivation (Score:4, Insightful)

    by wed128 ( 722152 ) on Thursday June 23, 2011 @11:59AM (#36542396)

    This.

    A lot of people taking computer science in college and wondering why they're not learning how to do ASP.NET projects in Visual Studio belong in a Tech School. The world needs bottom level implementers just like it needs ditch diggers.

    University level computer science is about Design, not Implementation.

  • Re:Offshoring. (Score:5, Insightful)

    by Octorian ( 14086 ) on Thursday June 23, 2011 @12:05PM (#36542544) Homepage

    And the current trend in computing devices is one from where the normal consumer device could be tinkered with, to where the normal consumer device is forbidden from being tinkered with. Its only a matter of time before you'll need a special "development system" to do any tinkering at all. Of course there are many in our age group who may not see this as a problem, because *they* would get such a system, and *normal* people don't need one anyways.

    And you know how likely it is for a middle-schooler to actually have access to such a system? Especially when the parents aren't tinkerers themselves? Practically zip!

    Think about it.

  • Re:Offshoring. (Score:3, Insightful)

    by scottbomb ( 1290580 ) on Thursday June 23, 2011 @12:20PM (#36542824) Journal

    Or maybe you're just getting started and NO ONE will even look at you unless you've got 3-5 years of professional experience.

  • We need a lot of programmers (2 year tech degree) and a few computer scientists (4 year degree and beyond).

    A "good" programmer just needs to be able to hit the write keys to implement someone else's design. That's why we hire the young kids willing to do the job for the least amount of money. Old programmers are future Borders employees.

    Wrong. Absolutely Wrong.

    For starters, Computer Science is only good if you want to stay in the theoretical - e.g. doctoral work. For anything else (e.g. a real job) it's a joke and useless as it does not have the balance between theory and pragmatics that is really necessary to succeed in the field. I never recommend CS to anyone that wants to actually do something outside of Academics - I only recommend Computer Engineering and Software Engineering degrees for people that want real jobs.

    Second, as otherwise noted, "blind" programmers are useless. They need to be able to understand what they are working on to do it right - and that means they really need a Computer Engineering/Software Engineering degree.

    However, to get kids interested in going for Computer Science/Computer Engineering/Software Engineering then the high school programming classes need to inspire the kids - create something that "scratches their itch" and helps them solve the problem - create a competitive environment between the students - so the class is not so much strict adherence to solving the problem, but also how one does it - the presentation, the user interface, etc; with strict adherence being the minimum required (e.g. a C+/B- grade).

  • Re:Offshoring. (Score:5, Insightful)

    by scruffy ( 29773 ) on Thursday June 23, 2011 @01:11PM (#36543598)

    And the current trend in computing devices is one from where the normal consumer device could be tinkered with, to where the normal consumer device is forbidden from being tinkered with.

    There are a couple other trends that make it more difficult for learning computer programming.

    Even if it's not forbidden, it's very difficult to tinker with any number of devices. When I was a kid, it was useful to spend some effort to take a device apart, figure out what was wrong, replace or juryrig some part, and put it back together again (sounds like programming, doesn't it). Nowadays, you need special tools and even if you get it apart, there's not much that you can tinker with.

    Another trend is that math in schools depends more and more on using calculators rather than manually applying an algorithm to add, multiply, whatever. This might be ok for math, but students lose out on problem solving skills.

    Overall, there are a number of factors that result in kids not having to learn problem solving skills that come in handy for computer programming. You could include following recipes in a cookbook, making up games and arguing about the rules, sewing, fishing, wandering around by yourself and finding your way back. Kids hardly do any stuff that involves real-world planning, execution, and debugging. No, a video game does not suffice for this (at least not so far).

    The result is that college instructors (such as yours truly at an average college) end up with students that are essentially clueless about putting one step after another. Because the students have not been exposed to this, they are crippled when it comes to doing programming for the first time, and only a lucky few make it through the first few courses.

I've noticed several design suggestions in your code.

Working...