Quote (irimi @ Jan 29 2013 04:34pm)
summary of the material in these classes:
architecture - understanding how computer systems actually work
algorithms - understanding how computer programs are used to solve large-scale problems
what you'll actually learn:
architecture - how to analyze, understand, design, and architect systems (be it hardware, software, or in between)
algorithms - how to analyze the efficiency of software, and how to write efficient software
what you'll use in the field if you become a general-purpose programmer:
architecture - designing and building software systems from the ground up, or more likely, gaining an understanding of a very large, pre-existing codebase and becoming productive within it
algorithms - writing cleaner, faster code
what you'll do if you dive deep into one of these fields:
architecture - work at the lowest-level in the system without actually touching the hardware; design chipsets, CPUs, device drivers; work on operating systems
algorithms - solve very, very hard math problems using computers
Thanks for the detailed answer, so if I become a general purpose programmer then I'm not wasting my time? I was worried that theory and architecture aren't as relevant to practical programming as software engineering is.