Why Johnny Can't Code and How That Can Change
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.'"
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.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
no amount of coddling will make you a good programmer.
... 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 ...
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.
Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
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.
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.
"If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
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 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 from someone who also has spent plenty of time with Linux as well.
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.
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).
Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)