#!/usr/bin/python
####################################
# Curmudgeon_Article_Generator.py #
####################################
import random
i=[ "C", "Ada", "Assembler", "Fortran", "lisp", "binary programming with patch cords", "time sharing mainframes",
"by dropping off punch cards and wait two days for the output", "butterflies", "a magnetized needle and hard disk platters",
"C++", "C#", "Python", "Ruby", "Django", "Ruby on Rails", "Cobol on Cogs", "Scheme", "Smalltalk", "Haskell", "Erlang",
"Distributed Systems", "Parallel algorithms", "network programming", "Win32 API's", ".NET", "Perl", "Unix", "Windows 95",
"Windows Vista", "GUI's", "VAX command line", "vacuum tubes and a sodering iron", "an abacus", "clay tablets",
"wire, duct tape and spit", "transistors", "slide rules", "microcomputers with 5 1/2 inch floppies", "machine language", "a PDP 10"]
for x in range(20):
print "\nKids today don't know squat about programming."
print "Why when I was that age, we didn't have %s." % random.choice(i)
print "We learned programming the hard way, using %s!" % random.choice(i)
print "Boy, am I ever grateful."I've done a lot of performance optimization of Java apps in the last 6 years and I've never once had to look at bytecode or think about processor instructions or OS issues; I've had to think about memory allocation and consumption, synchronization, algorithmic complexity, caching, query plans, database denormalization, etc. Obviously optimizing a C application is a different world, but it's definitely not the case that even the majority of software engineers ever need to dive that close to the hardware these days given the rise of managed/VMed languages like Java, Ruby, Python, and C#; it's good to hire someone who can do that or who can learn to if your application might need it, but in general it's just not as important as a lot of other skills, and I think it's pretty incorrect to say that engineers who can't do that will have no job prospects in the US.
If my interest is in consumer internet applications learning about compiler-level and hardware-level bugs is probably not the best use of my time.
Do you think the first version of Google took all this into consideration? I'm pretty sure they used NFS for distributed storage!
Separating people who want to build car engines from people who want a liberal education at the secondary level is seen as a sort of elitism.
Maybe Ada compilers have lots of bugs. :-)
Everything around them? Oh dear god yes.
Similarly, the idea of quizzing candidates on whether they can diagnose and track down compiler or processor bugs is similarly useless; there are far more critical skills to test for in an interview. If I was interviewing someone for a position at a hardware company writing software for prototype chips, then I'd probably care; if the job was for about 98% of the other programming jobs in the world hardware knowledge is about 152nd on the list of things I'd care about.
It's hard to imagine how someone could take this guy as an authority on how universities should educate people and what job skills graduates will need when he's so obviously out of touch with the real world.