For me the big 3 were arrays, dynamic memory, and lambda/closures.
But I must admit, the day I saw a guy run, essentially, "cpio ... | rsh otherhost cat > /dev/tape", that was a very "aha" moment in terms of overall system design and what networking brought to the table.
But I must admit, the day I saw a guy run, essentially, "cpio ... | rsh otherhost cat > /dev/tape", that was a very "aha" moment in terms of overall system design and what networking brought to the table.