Computer science learning benefits

From Cognito

Learning computer science offers many benefits.

Programming

Further information: Programming learning benefits


Analysis of algorithms

  • Analysis of algorithms is a prerequisite to becoming a really good programmer, although it is not essential for rudimentary programming.
  • Analysis of algorithms is very helpful with making high-level decisions related to algorithms, particularly in cases where the algorithms are being scaled up. Examples include making judgments about how the amount of memory used should scale with an increase in the userbase, or how much more computational power to buy to execute a task, or whether parallel processing would speed up the algorithm.
  • Analysis of algorithms also helps with building general analytical skills, in particular tracking inventory in time and space of various sorts.

Theory of computation (including automata and computational complexity theory)

  • Knowledge of computational complexity theory is necessary for a deep understanding of algorithms, and that in turn helps with programming. However, the direct gains with respect to improving programming skill are not too high, and cases where computational complexity theory helps with a programming task are rare (basically, it's too meta).
  • Computational complexity theory is more helpful in understanding broadly what sort of computational tasks are realistically possible and what ones aren't, rather than figuring out how best to execute specific tasks. A strong knowledge of computational complexity theory helps one understand whether a particular computational task might become feasible with hardware speedups, whether it benefits from parallelization, etc.