FizzBuzz
ThoughtStorms Wiki
Are there really programmers with computer science degrees who cannot pass the FizzBuzz test?
I'm going to be honest. I probably couldn't have passed the fizz-buzz test when I left my CS degree (with an upper-second) either.
Although I'd learned a bunch of stuff, (quite genuinely, no cheating or paying people to write my homework), I'd not really acquired the flexibility of mind to figure out algorithms by myself, at least, not without fumbling around for a considerable time.
In one sense that WAS a problem with the education. They were so busy showing us things that we didn't do much practice "just programming". Programming exercises were always to explore concepts or systems. And they usually ended up hard, frustrating work.
I'd written a lot of BASIC before I went to college. I was getting OK at that. But in college they told me this had "damaged me". Instead I had to learn to write ISWIM (a language that didn't have an executable form), Modula 2 (a horribly verbose finicky language), C (a language where everything I did caused segmentation faults), Lisp (huh?), Prolog (cool! but huh?), ML (why?), Occam (that's kind of cool ... but I'm not sure I ...), Smalltalk (wow! awesome!), COBOL (easy enough but boooooooring), assembly (ok, I passed a couple of exercises), Hypercard (fun, but not REAL programming, right?)
The problem was, that 80% of what I was doing was either fighting these new unfamiliar platforms : how do you run this? why is the compiler complaining? why is THAT a syntax error? Segmentation fault? Again!? Or struggling with particular data-structures and algorithms that we were being fed.
What there was very little of was "ok, on this platform which you're now reasonably comfortable with, take some time to practice doing more programming with it". Getting better at facing a series of requirements and inventing algorithms to implement them. I mean there was a final year project which was basically about that, but the particular application I chose (modelling mechanics for graphics in Smalltalk) what I learned was largely about OO architectural issues and a couple of graphics algorithms from a book.
I hadn't had to work-out an algorithm like fizz-buzz for myself. And I would have struggled if someone had just dumped the task on me.
So, yeah, CS degrees OUGHT to teach more programming. Or rather, have more space for "programming in itself, on a platform you are already comfortable on".
No Backlinks