
&>standalone product; MasteringEngineering® does not come packaged with this content. If you would like to purchase both the physical text and MasteringEngineering search for 0134123832 / 9780134123837 Computer Systems: A Programmer's Perspective plus MasteringEngineering with Pearson eText -- Access Card Package, 3/e Package consists of: 013409266X/9780134092669 Computer Systems: A Programmer's Perspective, 3/e 0134071921/9780134071923 MasteringEngineering with Pearson eText -- Standalone Access Card -- for Computer Systems: A Programmer's Perspective, 3/e MasteringEngineering should only be purchased when required by an instructor. For courses in Computer Science and Programming Computer systems: A Programmer's Perspective explains the underlying elements common among all computer systems and how they affect general application performance. Written from the programmer's perspective, this book strives to teach readers how understanding basic elements of computer systems and executing real practice can lead them to create better programs. Spanning across computer science themes such as hardware architecture, the operating system, and systems software, the Third Edition serves as a comprehensive introduction to programming. This book strives to create programmers who understand all elements of computer systems and will be able to engage in any application of the field--from fixing faulty software, to writing more capable programs, to avoiding common flaws.
I've only had peripheral exposure to writing in assembly and "systems level" programming so I'm really quite enjoying it.
[0] https://www.amazon.com/Computer-Systems-Programmers-Perspect...
[1] R. E. Bryant and D. R. O’Hallaron. Computer Systems: A Programmer’s Perspective. Prentice Hall, 3rd edition, 2015.
It´s a shame that the last edition is from ten years ago, although to be fair I actually only read the 2nd and only skimmed the 3rd one. Still, would be nice to get an update using ARM.
Why I recommend Bryant/O'Hallaron's Computer Systems: A Programmer's Perspective (for comparch) to newbies, as coding is what most folks are likely to be doing early on.
https://books.google.com/books/about/Computer_Systems.html?i...
Btw, if you enjoyed the book you might like this:
https://www.amazon.co.uk/Computer-Systems-Programmers-Randal...
I'd love to have the time to work through it as I think the level of in depth knowledge it provides would be the best thing for me as a programmer.
I found it through:
I want to add a caveat that your manager and colleagues should be a resource for you when tackling projects at work, and not to hesitate to ask pragmatic questions about the project(s) you might pitch in on there. It's ok to not have all the fundamentals down, as long as you're working to be a net positive on the project(s).
I went through some of the books listed in the teach yourself CS resource. https://teachyourselfcs.com/
A subset of the resources listed there are probably the most pragmatic for the topics you asked, but you might discover that you're interested in other areas of CS as you slowly work through them. I think it's ok to nibble away at exercises while juggling your family and work obligations.
* Structure and Interpretation of Computer Programs - SICP. If the book doesn't necessarily click right away, doing a subset of the Scheme exercises are still worthwhile.
* Computer Systems: A Programmer's Perspective - CS:APP. Incredibly helpful knowledge about low-level programming.
* Computer Networking: A Top-Down Approach - You mentioned having a home lab, and more networking understanding will help contextualize some of your work.
1. Programming: Beyond the basics
2. Computer Systems
3. Operating Systems
4. Algorithms and Data Structures
5. Computer Networks
This is going to take time but it will be worth your time.
For discrete Math I sincerely recommend you to take a look at this book "Discrete Mathematics with Applications by Susanna Epp. This is an excellent book and it has good problems.
I will also recommend you to look at https://fa24.datastructur.es/ this is a very good beginner course on data structures that is completely free by UC Berkeley