"Computer systems design is full of conundrums. Tackling the questions that systems designers care about, this book brings queueing theory decisively back to computer science. The book is written with computer scientists and engineers in mind and is full of examples from computer systems, as well as manufacturing and operations research. Fun and readable, the book is highly approachable, even for undergraduates, while still being thoroughly rigorous and also covering a much wider span of topics than many queueing books. Readers benefit from a lively mix of motivation and intuition, with illustrations, examples and more than 300 exercises - all while acquiring the skills needed to model, analyze and design large-scale systems with good performance and low cost. The exercises are an important feature, teaching research-level counterintuitive lessons in the design of computer systems. The goal is to train readers not only to customize existing analyses but also to invent their own"
IMHO working through that book will make you practice with enough basic calc to make moving on to stochastic calculus fairly easy.
[1] Performance Modeling and Design of Computer Systems: Queueing Theory in Action - Mor Harchol-Balter
https://www.cs.cmu.edu/~harchol/PerformanceModeling/book.htm...
Queueing theory is probably one of the most useful subjects of all time, for just about any human. This book teaches it in a way that made it extremely easy for me to grok.
Everyone ought to read and absorb Deming. It's hands-down the most life-changing read I've ever come across, by a wide margin.
Dealing with life statistically rather than overreacting to randomness means it's possible to achieve much higher levels of effeciveness and productivity. Working with people to unleash their inner motivation is vastly superior to trying to carrot-and-whip them around.
Understanding that a specific process will yield a specific outcome, whatever outcome you wish for, is how to avoid getting the same result over and over while thinking you ought to see something different because gosh-darned if you aren't trying really hard!!
= Willful Ignorance by Weisberg.
This isn't that good a book, in that it doesn't cover very much content at all, but it really gave me a good intuition for what statistics and probability is about that has helped me understand more advanced things than I was able to before.
Both this book and Deming will take a few years to digest. You'll want to practise it in real life, then come back to read it again, then practise some more. Eventually the lessons will start to stick.
= Performance Modeling and Design of Computer Systems by Mor Halchor-Balter.
Despite the name, this is a book about queueing theory. You know, that branch of statistics that shows up literally everywhere, except nobody seems to understand that it does. I have been dabbling in queueing theory before this book, but the focus this book put on practical applications really made me understand it on a deeper level than before.
= Working Effectively with Legacy Code by Michael Feathers.
I didn't originally want to put this one in this list because it's so predictable, but I can't not. I keep coming back to it and re-reading portions of it every time I have to deal with tricky code. It's just that good at explaining clever ways to get things under test, so they can be worked on with confidence.
= How to Measure Anything by Douglas Hubbard.
What I really take away from this is how powerful it is to be able to estimate ranges that are true 90 % of the time. It's hard to convince others of what a superpower this is, but I hope to work with people who understand that some day.
This reminds me of an excellent book on queueing theory for software engineers:
Performance Modeling and Design of Computer Systems: Queueing Theory In Action
by Mor Harchol-Balter