Some resources on programming, computer science vs engineering, optimization:
-
Considering how modern CPUs work in the implementation of algorithms (vs theoretical, pure C.S. analysis) https://queue.acm.org/detail.cfm?id=1814327
-
What Every Programmer Should Know About Memory https://www.akkadia.org/drepper/cpumemory.pdf
-
CPU Caches and why you care https://www.aristeia.com/TalkNotes/codedive-CPUCachesHandouts.pdf
-
Parallel Programming https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.html
-
What is mechanical sympathy? https://mechanical-sympathy.blogspot.com/2011/07/why-mechanical-sympathy.html
-
Estimating costs of operations performed in software engineering http://highscalability.com/numbers-everyone-should-know https://github.com/sirupsen/napkin-math https://computers-are-fast.github.io/ https://colin-scott.github.io/personal_website/research/interactive_latency.html
-
Intros to systems programming in linux https://beej.us/guide/