
What computer science concepts stretched your mind? - Austin_Conlon
https://www.quora.com/What-computer-science-concepts-stretched-your-mind?ch=10&share=fa83cd10&srid=hzfw
======
geophile
Here is a much less exalted answer than those in the quora discussion.

I am 62. I programmed my first real computer in high school, a PDP-8 with 12k
12-bit words. I didn't explore assembler language, but spent a lot of time
programming BASIC and (when I could get the entire machine to myself),
FORTRAN. And before that, I spent a lot of time on programmable calculators.

So when I got to college, and took my first data structure & algorithm class
(textbook: Knuth vol. 1, language: Algol-W), heap-based memory and pointers
were mind-bending. I had encountered nothing like these ideas in my
programming to date. As I remember, it took me a couple of days of intense
thinking, reading code, playing with code, until the idea finally crystallized
in my mind.

A smaller epiphany had to do with ideas on how to write good code. In the mid
70s, "structured programming" was a hot topic. I prided myself on writing huge
functions, with complex control flow, full of gotos, because I didn't know any
better. And assignments were graded on correctness only, not on quality of
code. In fact, I think the idea of quality as being something other than
(apparent) correctness was kind of alien. Then "Goto considered harmful"
appeared, and I prided myself on being able to write goto-less code.

And then a professor made the completely outlandish statement that functions
should not be more than maybe 20 lines of code. I thought he had completely
lost his mind. I don't remember how I came around, but I did, and then it was
just so obvious.

~~~
greg_a
I love it! What a blast from the past :P

------
sideshowmel
For me it was virtual memory and having a sparse memory layout. I remember
thinking, htf did they come up with that?!?

