Industry practitioners and CS educators seem to operate in different worlds
these days. My fellow industry leaders often have surprising ideas about what all
can be covered in a 4-year degree program. We are seemingly unaware of the
huge challenge in making novices into algorithmic thinkers and programmers,
to say nothing of imparting mastery in the ever-expanding array of computing
sub-disciplines. At the same time, the day-to-date operations in industry have a
very different set of core skills and tools than what is traditionally presented in a
CS curriculum. Communication skills, experimentation, reasoning, code
comprehension, caching, threading, and concurrency models are a huge
fraction of the toolkit for a software practitioner. Hashing is essential.
Constants matter. Implementing data structures really doesn’t. In practical
terms, almost nobody should be using a linked list anymore. This talk will
surface what I see as the disconnects on both sides, and suggestions for what we
can do about it. (I will also probably be wrong, since I can only speak from my
perspective and experience - but that’s where important dialogues start.)
Industry practitioners and CS educators seem to operate in different worlds
these days. My fellow industry leaders often have surprising ideas about what all
can be covered in a 4-year degree program. We are seemingly unaware of the
huge challenge in making novices into algorithmic thinkers and programmers,
to say nothing of imparting mastery in the ever-expanding array of computing
sub-disciplines. At the same time, the day-to-date operations in industry have a
very different set of core skills and tools than what is traditionally presented in a
CS curriculum. Communication skills, experimentation, reasoning, code
comprehension, caching, threading, and concurrency models are a huge
fraction of the toolkit for a software practitioner. Hashing is essential.
Constants matter. Implementing data structures really doesn’t. In practical
terms, almost nobody should be using a linked list anymore. This talk will
surface what I see as the disconnects on both sides, and suggestions for what we
can do about it. (I will also probably be wrong, since I can only speak from my
perspective and experience - but that’s where important dialogues start.)