2 Practical theory
This chapter covers
- Why computer science theory is relevant to your survival
- Making types work for you
- Understanding the characteristics of algorithms
- Data structures and their weird qualities that your parents didn’t tell you about
Contrary to the popular belief, programmers are human. They carry the same cognitive biases humans have over the practice of software development. They widely overestimate the benefits of not having to use types, not caring about correct data structures, or assuming that algorithms are only important for library authors.
You’re no exception. You’re expected to deliver a product on time, with good quality and with a smile on your face. As the saying goes, a programmer is effectively an organism that receives coffee as input and creates software as output. You might as well write everything the worst way possible; use copy and paste, use the code you found on StackOverflow, use plain text files for data storage, or make a deal with a demon if your soul isn’t already under NDA[1]. Nobody other than your peers really care about how you do things, everybody else wants a good, working product.