HACKER Q&A
📣 dr_kiszonka

Recommendations for applied engineering and math books for programmers?


I enjoy reading about engineering and math. Unfortunately, I always make simple arithmetic errors, so I never had the courage to take anything beyond calculus and linear algebra in college. (Decades ago, we had to calculate everything by hand.)

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!


  👤 teleforce Accepted Answer ✓
Coincidentally, I've spent countless hours during the Covid-19 isolation looking for good to excellent textbooks on Engineering and Computer Science. Perhaps I can share them in the near future. These are some excellent books based on my findings for your particular requirements.

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.

[1] https://maths-for-all.co.uk/


👤 playing_colours
Foundations of Applied Mathematics: https://foundations-of-applied-mathematics.github.io/

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.


👤 hackermailman
Gilbert Strang has an engineering text 'CSE' for creating models using differential eq and solving them entirely in MATLAB or other software. All lectures on MIT ocw https://ocw.mit.edu/courses/mathematics/18-085-computational... it's probably the best math course I've ever done.

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.


👤 auxym
You might enjoy this talk "statistics for hackers" (in case statistics is not included in your data science knowledge): https://www.youtube.com/watch?v=Iq9DzN6mvYA

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.


👤 nightowl_games
It sounds to me like you'd be interested in Game Development literature.

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.


👤 tcharding
I just started working through 'Concrete Mathematics - a foundation for computer science'. You might like it.