1) Lots of algorithms are built into tools.  For instance,  a relational database will generate an algorithm for doing the query by composing various parts.  Some vague knowledge about the algorithms can help you write better queries,  but you can do a lot of &quot;searching&quot; and &quot;sorting&quot;,  and when you use prebuilt libraries you can get code where people have thought about cache locality and all the practical issues of performance as well as the O() limit.<p>2) Knuth is obsolete.  Learning CS from AoCP is like learning physics by reading Newton.