May 2024
Intermediate to advanced
240 pages
5h 56m
English
When I graduated from college with a degree in computer science, it’s fair to say I had a layperson’s understanding of the science and theory of creating software. I had studied databases, algorithms, compilers, graphics, CPU architecture, operating systems, concurrency, and more. And I had, to some extent, a framework that related these technologies to each other.
Because I was writing software outside of classes—mostly for summer jobs—I also knew that translating academic knowledge into building a product was a distinct challenge. More accurately, it presented challenges, plural. Selecting and implementing the right algorithm was generally the easy part. Working with a large code base, creating a functional user experience, testing ...