Over the last few months, I noticed people on HN mentioning books and articles that introduce engineering methods, e.g., control systems, to programmers. This approach works well for me because IDEs and debuggers eagerly notify me about errors in my code.
Can you recommend any good self-study books that:
- introduce methods and concepts from engineering and math,
- show you how to code them,
- equip you with just enough intuition to let you apply the methods and to follow more advanced, traditional textbooks?
Ideally, the books would:
- be applied,
- use free software,
- not rely on custom packages written by the author,
- not focus on data science and statistics, because I have a pretty good understanding of these areas.
I am particularly interested in signal processing, control systems, simulations, and difference equations, but I am really open to any recommendations.
Thanks!
1) For general applied and engineering Maths book perhaps you can look into both textbooks by Prof. Kuldeep Singh and they uses Matlab but Octave should be fine [1].
a) Engineering Mathematics Through Applications b) Linear Algebra
2) For signal processing especially for communication I'd highly recommend "Digital Signal Processing in Modern Communication Systems" by Andreas Schwarzinger. It introduces the modern communication systems from the first principles to the more applied OFDM systems with examples that can be run using either Matlab or Octave. Just get the book it's really good even if you're not interested in communication systems.
3) If you want to learn more advanced applied engineering books on signal processing I'd recommend reading books on time-frequency techniques both linear and non-linear. For introduction check the book "Explorations in Time-Frequency Analysis" by Patrick Flandrin. Time-frequency analysis is most probably going to be pervasive very soon for increasing the accuracy of AI and ML by providing better intermediate processing of data features.
Solid paper books, with lab manuals in Python you can download online. Volume 1 and 2 are available at the moment. It will take some time to work through them - maybe, just enough for Volume 3 to arrive.
If you go on MIT Stellar you can get the most recent lectures if you want, but the book hasn't changed. MIT likely has a few more of these kinds of courses if you look at their most recent offerings, I've only done that book/course(s)
Maybe you also want to program drones or robots or self driving cars http://symbolaris.com/course/lfcps.html this heavily uses differential invariants and all the lectures are open.
For structural beam analysis (ie, from mechanical and civil engineering) check out this textbook on the direct stiffness method: http://www.mastan2.com/textbook.html
Unfortunately, the accompanying code (MASTAN2) is not open source and runs in Matlab. Still, it's a decent first step if you want to move to full-on Finite Element methods, which require much heavier math (real analysis) to really grasp.
Check out Real Time Rendering, Real Time Collision Detection, the Nvidia GPU Gems Series (they're free), the Graphics Codex.
These books are all very enjoyable.