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 can't help but feel lucky to have met computers back in the 80's and to have spent my time using something "simple" like the C64 with BASIC and then moving up to PC's learning various languages and growing my interest more and more to then eventually be sat a linux workstation coding in Python for a living. Many of the ids I know through family no longer look at computers with the same sparkly or excitement of those early days.
I feel incredibly lucky to have got in at a point where I could experience relatively low spec & power computing and see it progress to the state it is today. I get the feeling that a lot of people getting into computers these days as kids don't get that sort of exposure and so don't get so bonded to learning about them. There was a good chance you could understand the schematic of a C64. Look at a die of a modern i7 and it's more modern art than anything that's going to make sense to a kid.
I definitely feel that in some way we lucked out in getting to experience computing the past 30 years.
jaymz
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.
I Think the problem is that "Johnny" doesn't like programming. Why fix that?
The worst employee is a specialist that hates his specialty. He's only going to fight his way out of his job and defer to others. Why do you think there's usually more IT managers than Developers? :)
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.
While I hate to jump to the defense of the masses, this is ridiculous. Normal people are certainly "clever enough" to use Linux. Lots of people on here, I'm sure, have wives or parents who use Linux; my wife does. It's no harder than using Windows, and in a lot of ways is quite a bit easier. Of course, as with the others with Linux-using relatives, I have to be the IT support person, but that's no different from Windows for most people: they outsource their IT support to either their kid, their nephew, or Geek Squad (I see them driving to peoples' homes in subdivisions here all the time) or some other "computer repair" business. Luckily, Linux doesn't have problems nearly as much as Windows, but things happen sometimes, or they need help finding a certain application to do something.
Now granted, these Linux users aren't working at the command line, writing bash or Perl scripts, and certainly not full-blown C++ applications, nor are they compiling their own kernel. But they're still using Linux, even if all they do is use Firefox and OpenOffice/LibreOffice.
As for kids doing programming, you're half right. It's not that they aren't clever enough: most programming really isn't that hard, and anyone with half a brain who applies themselves can write simple programs in Java or Perl or Python or whatever if they really want to. But just like doing automotive repair work or woodworking, you have to want to do it, and take time to learn it. Most people aren't interested, and would rather take their car to a mechanic, buy their furniture pre-made (even if it is shitty particle board with fake-looking veneer), or buy a pre-made application or hire someone to do something custom (or just do without).
Just like other professions, programming takes a lot of time to learn and master, and even more time to keep up with because it's constantly changing (e.g., 5 years ago Perl was still pretty popular, but these days everyone seems to be using Python for that stuff now, and only the diehard Perl fans still use it; C++ just released a totally new revision with all kinds of changes). The big question is: why is there SO much of a push by educators to get kids to take up programming? Why not push them to take up auto mechanics, so they can fix their own cars and save money? Why not push them to learn woodworking, which they used to do decades ago in schools? Why not push them to learn about law, since we can never have enough lawyers (sarc.)? It's probably because there's a bunch of tech companies in this country that want a larger pool of workers so they can pay less. The worst part is that they're trying to get these poor kids interested in programming games. Everyone here should know by know how bad the working conditions are at EA and the other game makers, because they rely on a constant stream of bright-eyed college grads who are all excited by being a "games programmer" that they can take advantage of and overwork until they're totally burned out; it's absolutely the worst part of the software field. I'm sure they never tell these schoolkids about this.
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.
Except that Jina only is coding because of anti-US fraud that works in her favor.
Sounds like you don't want a US citizen until they've been beat down to a level of world subservience. Another point to add - you weren't paying attention that we're not asking about Jina, just Johnny.
We need less of you, less of Jina, and to give every advantage to Johnny.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
Anyway, ...back to your argument:
I love linux, but I never^H^H^H^H^Hrarely recommend it.
If you like Windows...USE it. Why would you go to Linux? I tell people Linux is harder to use, flat out.
And then people either shutup about it...or they ask me WHY I use it. Oh, then it gets interesting. I explain, that, for a programmer, Linux represents probably the best choice as a platform. Endless programming language, databases, web servers, browsers, etc. More tools I can shake a stick at. All free!
But most people aren't interested in that. Like you pointed out, they want to run Microsoft Office, play games, etc. That's fine, run Windows.
So, we'll never have a Linux desktop? Cough. Most people have USED linux at one point or another. How many appliances use linux? How many tablets, smart phones, routers, etc are using it? People use it all the time....but it's not a Linux "Desktop"
The reason for that is simple. A Desktop for people is "Running Microsoft Office, playing games, etc."
Linux is bigger than that.
Not good engough to say X is bad and then don't bother to explain what is wrong. How are things going to get better otherwise?
I object to having to pay support to report a vendor's bugs to them.
You might, but apparently there's plenty of genius MBAs running companies out there who don't mind paying giant maintenance fees for the privilege of reporting a vendor's bugs to them and hoping they get fixed.
Well, at least it's like that where I live.
See, ages ago, we had kids being taught LOGO and BASIC. That worked splendidly. Write some stuff, see a turtle draw, or make an infinite '10 print "hello": 20 goto 10' loop.
Then came along Pascal, usually in high school, although it wasn't unheard of to see it in the final levels of elementary school. It was a bit more of a nuisance, with all the begins and ends, and the semicolons too, but it was still somewhat manageable for the kids.
But then someone had a serious brainfart and decided that kids be "taught" C and even C++. Suddenly there were all these strange symbols ("teacher, why is 'and' called '&&' here and why and how is '&&' different than '&'?") and stdio.h includes and god damn pointers, which extremely few children managed to grasp because they had no idea how memory and processors work. No, they were supposed to learn what a keyboard is, then how to translate a number into binary/hexadecimal and back, and then they were immediately thrown into curly braces and pointer hell.
I have no idea what it's like in the USA, but over here it fucked up everything. If you make it hard for the kids and drown them in hardcore idiocy to the point of them being sickened by IT classes, then you can't expect that they learn how to code.
Me? I started with BASIC on the ZX Spectrum in the early eighties. Had the Speccy had something more difficult, I'd have been a librarian right now.
Bovine Scatology (that's B.S. for short).
I have a part-time job working with kids between 6th grade and 8th grade, and I'm continually amazed at how clever and intelligent every single one of them can be...if you can find a way to motivate them to make the effort. I also used to work as a flight instructor, so I have first-hand experience teaching, too. I've had students that I was certain were either deliberately trying to kill me in the airplane or else were so uncoordinated that they would never be able to fly. One of those students ended up becoming one of my best students, once I figured out how to communicate flying concepts to him in a way he could understand.
Saying "normal people aren't clever enough to program" is a cop out. If a teacher can't motivate the student to make the effort to learn to program or can't communicate in a variety of styles so that people of all learning types can get that "Aha!" moment when it finally begins to make sense, it's a failure of the teacher. Here's a tip for you, though: if you're so insecure that the thought of "the masses" learning to code scares you, then you probably aren't one of the top 10%, either.
MCSE? No, sir...I don't do Windows. Yes, I am an idealist. What's your point?
Sorry, but there are coders and there are programmers.
You can teach a person to write code. It's not rocket science. Especially with today's RAD tools, intimate knowledge of anything isn't really a requirement anymore. And since pretty much every problem you might usually have in everyday programming has been solved already, copy/paste programming has become a staple of the industry.
That doesn't mean that these people really know what they're really doing.
I don't know if you ever had to take over legacy code from someone. Often you find out that he has been fired with good reason. There's a lot of voodoo programming going on, with people filling their programs with a lot of code that makes no sense whatsoever, but it was in the snippet they copied (where the code might even have done something meaningful).
So please, don't think that just 'cause a lot of people are "writing code" today that they actually know what they're doing. There's a lot of cookbook coders out there.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
- 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
As opposed to forums about windows where you are always sure to get helpful professional advice?
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.
Have you ever tried sending a bug report to Microsoft? I have and, believe me, I'd rather be called "noob" than get the response I did:
-"We are aware of that situation and it will be fixed in the next version"
-"Oh, great! And when will you send me the next version?
-"It will be available next spring for $"599.95"
- You don't just "switch to linux." You have to pick one of a gazillion discordant distros
Yeah, like Linux Starter, Linux Home, Linux Professional, or Linux Ultimate, right?
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.
That reminds me of the last time someone asked me for help installing his new printer in his dual-boot computer. He had already installed the drivers for Windows that came in the CD. I asked "have you tried printing something in Linux?" He hadn't. When he did the printer just worked in Linux, differently from Windows, there was no need to run any install programs.
But it has become very obvious to me over the past 15 years
Admit it, you haven't actually tried to run Linux in the last 15 years, have you? Because your comments are exactly the way I felt in 1995 when I first installed Yggdrasil Linux in my computer.
I refer you to this insightful post from someone who also has spent plenty of time with Linux as well.M
I found this "insightful" pearl in that link: "I want to use Notepad++; it lacks a Linux port.". That's like saying "I want to eat pig shit and can't find it in this fancy restaurant's menu".
Well, when I was a teacher, (and even now in my professional life), I used to ask everyone a simple question.
"What is the difference between a Programmer, a Software Engineer, and a Hacker?"
To which i give the answer:
"When presented with a square hole and a round peg and told to integrate: The programmer will say, it cannot be done. The Engineer will re-engineer the hole and/or the peg in order to fit properly, the Hacker does the same, but with a Hammer."
However, in any real project (especially agile) you need people with all three mentalities. You need the developers to code the menial stuff, allowing the engineers to focus on the more chalenging aspects, and sometimes you need the hacker mentality to meet a particular deadline, as long as you have a long term plan to refactor that code later.
Have a nice day!