261 karma · joined June 22, 2014
However, I might suggest that books and theoretical knowledge are not the main things you need right away. I moved into software engineering after a long time in science. I had done plenty of coding, and had a pretty decent amount of theoretical knowledge, but there was still quite a bit of practical adjustment. I really like Rzor's suggestion of https://missing.csail.mit.edu to start with.
Beyond that, I think maybe I would find some specific codebases that you'd like to understand better, and start with reading more of those. I feel like that's often better than books for picking up idiomatic usage and patterns in given domains. As you hit specific barriers, I think it will be much easier to pick up the intrinsic motivation to dip back into theoretical knowledge at that point.
Except half of Fire Upon the Deep was characters on the same planet but it was actually cool. The first two books are definitely among my favorite sci-fi of all time, the third one was a dud.
My main gripe is that these three books all share the same trope that underpins one of the major subplots: glib, charming politician type is scheming, eeeeevil. In the first two books, there's enough novelty (how the Tines and Spiders work, programming as archaeology, localizer mania) to make up for that. But I don't really think the third book adds much in the same way, and it is also very clearly building to a confrontation that will happen in a future book. So the staleness is much more noticeable
Signals processing, though, is one of the places where I actually think a decent understanding of some of the higher-level concepts in linear algebra is really helpful. Linearity itself comes to mind, and maybe it just reflects my physicist's education, but it's hard for me to imagine having a working understanding of Fourier transforms without getting the idea of changing bases. I feel like you're about halfway through a first linear algebra course before you'd get there.
EDIT: that said, a good signals processing book probably covers a lot of this in sufficient depth if you can figure it out. The other catch-all comment I'd make is that linear algebra from a math class can look somewhat different from practical linear algebra on a computer. (That it's often a bad idea to directly invert a matrix for many computing applications is non-obvious from math class.) A book like Trefethen and Bau is great on that latter subject but is not a good starting point for OP.
A couple of other suggestions:
Nesterov's Introductory Lectures on Convex Optimization. This one is pretty tough sledding, but I found the perspectives in the first chapter particularly to be enlightening. It seems like there's a newer Springer book which is probably an expansion on this.
Bertsekas's Nonlinear Programming. Bertsekas has written a lot of books, and there's a fair amount of overlapping going on. This one seemed to be the one that has the most nuts and bolts about the basics of optimization.
EDIT: If you want more understanding of convexity beyond what's presented in these books, Rockafellar's Convex Analysis is helpful.
Spivak
Jaynes
All good books, all pitched at a level that is very ill suited for what is being asked for.
To the GP, "math for English majors" is a common enough course schema that I think looking at a few syllabi might score you something.
I'm not sure that construction makes sense. For a single particle not interacting with anything, imposing the maxent constraint on average energy just sets the energy of the particle and there's no room left for a distribution. As soon as its interacting with another system you're good, but then the temperature that you arrive it is a characteristic of the bath, not the particle itself.
Both articles leave out numerical analysis or scientific computing, which I think is a huge gap. I certainly felt like my education left the impression that these things were way more straightforward than they actually are.
My impression is that the devs who have been most influential for the last two to three years find that element of the game boring and instead want to put you in more "interesting" situations (e.g. forcing a rune before entering Vaults, increasingly strong new monsters in Depths.) I find that a lot of those things don't meaningfully decrease my chances of winning or force creative new strategies. Instead, they encourage me to do more tedious things like isolating single monsters, stair dancing, etc.
In fairness, I think my opinion on this was probably in the minority among heavy players at the time.
I think lots of good has come from that. At some point, though, it started to feel like a lot of what the dev team considered tedium I considered fun, and vice versa. (I could of course download the old versions and play locally, but playing online was a lot of the fun.)
I need to see if I can get a spellcaster through the full game
"Pure" spellcasting can be done, but it's unpleasant to play (just from a UI perspective) and usually a suboptimal use of XP (DCSS usually rewards moderate investment in several areas rather than extreme specialization in one.) If you're not imposing that on yourself, then book backgrounds are overrepresented among the better starts in the game.
You have a coupling to other, non-electron/hole degrees of freedom in the system. The stronger that coupling is, the easier it is to transfer energy between the systems and the worse your conductor tends to be.
Who is this legacy and future for? "Other walking-dead sacks of meat"? Our glorious transhuman descendants?
Apparently TAOCP has a lot in common with the Wheel of Time.
I have a ton of respect for these huge, decades-long, life-defining projects and the people who undertake them (Robert Caro's LBJ biography is another example.) So the end of this project always receding further into the distance makes me wistful, even if the quality of what gets put out is still excellent.
If you're worried about breakdown in the face of loss of trust, then these sorts of solutions seem like very important things to be looking at. Do we have any good ideas about how to create trust at the institutional level?
I agree with your concerns. I think they are representative of a broader theme - the acceleration of technical change seems like it will eventually (if it hasn't already) bring us to a point where the rate of cultural change is too slow to catch up to properly adapt to what is now possible.