cyborgzombieninjapirate


The Perils of Computer Science

Posted on 28.10.2009 06:32 pm

As some of you might know. I started studying Computer Science this fall. I've been programming for a few years now but like Joel Spolsky says: I've been programming based on superstition.

There are around 90 people in my class. About 1/4 or less is in Software Engineering but we start off with a pretty similar course structure.

What I have noticed, and it's something I've read from good old Joel, is that some people just don't understand some programming concepts.

He states.

"If I may be so brash, it has been my humble experience that there are two things traditionally taught in universities as a part of a computer science curriculum which many people just never really fully comprehend: pointers and recursion."

First off, I would like to wholeheartedly agree with him. Pointers and recursion are things that people just don't seem to get.

But I would like to add two things to that list, from my experience.

Nesting.

It was early in the programming course. The teacher wanted to show us the power of nested loops, by printing out a simple chess board.

He created a for loop. The class followed a long, then he started to write another for loop inside the first one and I watched some of the students with terror in their eyes.

Most of them got it but I've seen some homework code and I still think some don't get it.

References

Another example of a simple thing but some people just never fully get this.

Most people pass by reference into a function and usually understand what's going on there, but when someone talks about creating a reference to a value and using that as a shorthand throughout some code, then some people cower away and cry.

I don't know if you agree with me or not. But I would love to hear what you guys think, and if you have other things to add.

1 3    Like it or hate it?  -  Comment (1)


Örn Ingvar Ásbjörnsson

0 2  / Posted on 28.10.2009 08:56 pm

I would have to add Generators, Closures and Dynamic scopes (hardly ever used anymore I think). Also the ability to use anonymous functions or so called Lambda functions is still a bit of a mystery to me.

Generators being a sort of iterator with a buffer. Closures being a function that returns another function and Dynamic scope being ... well ... strange way of building the call stack is all I can say :)

(Used for gravatar only, never displayed)

What is 6 + 1


Memory allocated for your request: 307.72 Kb
Process time: 0.003053 seconds