I feel like I don't really understand some of the fundamental CS stuff, and I'm just cargo-culting. I mean, I can write some stuff and I have a decent understanding of recursion, data structures, and <i>some</i> low level stuff about processors, but I feel a general sense of "what am I doing" while writing any code and I don't really know what I'm missing. I don't know, maybe this is just impostor syndrome or something, but I definitely am missing some fundamentals. Does anyone have recommendations about what to learn and how? Thanks!
If you're in it for the long haul (1-2 years), I'd recommend working through the recommendations in <a href="https://www.teachyourselfcs.com/" rel="nofollow">https://www.teachyourselfcs.com/</a>. The Algorithms part, the Networks part and DDIA all have a very high return on time invested.
The Art of Computer Programming by Donald E. Knuth.
<a href="https://www-cs-faculty.stanford.edu/~knuth/taocp.html" rel="nofollow">https://www-cs-faculty.stanford.edu/~knuth/taocp.html</a>
Learning the fundamentals is very useful. Check out MIT free content <a href="https://ocw.mit.edu/search/?t=Computer+Science" rel="nofollow">https://ocw.mit.edu/search/?t=Computer+Science</a>
See Coursera: <a href="https://www.coursera.org/browse/computer-science" rel="nofollow">https://www.coursera.org/browse/computer-science</a>