Logo

dev-resources.site

for different kinds of informations.

📚3 Must Read Books for Programmers from Non-traditional Background

Published at
12/16/2022
Categories
computerscience
programmer
softwareengineering
selflearning
Author
devgrowth
Author
9 person written this
devgrowth
open
📚3 Must Read Books for Programmers from Non-traditional Background

Image description

1️⃣ Code: The Hidden Language of Computer Hardware and Software

Code: The Hidden Language of Computer Hardware and Software

This is a classic book I believe should be the first thing to read when you want to learn about how computer works. Even though the first edition was published nearly two decades ago, the content is still relevant, and good news is that the second edition was just released Aug 2022 with new chapters on clock, ALU etc, and the companion website, CodeHiddenLanguage.com, uses animated graphics of key circuits in the book to make computers even easier to comprehend.

It covers how technology involved and computer was built, how do hardware components work together to run a program, the book answered my questions about what happens in a computer behind the scenes, and it laid foundation for me to grasp higher abstraction level mechanism such as operating system

2️⃣ Computer Systems: A Programmer's Perspective

Computer Systems: A Programmer's Perspective

This is actually a text book used at Carnegie Mellon, it explains the underlying elements common among all computer systems and how they affect general application performance but from the programmer’s perspective, it’s a big book and indeed pricy, I was following the corresponding open sources course online, after a while, I just thought I better go with the hard copy so I can flip through them and work on the exercises. But if you don’t want to spend the money on hard copy, learn with the open source course videos should be equivalent from a self learning perspective.

The book is in three main parts: program structure and execution, running programs on a system, interaction and communication between programs. I did not read this book from start to end, but rather dive into the chapters I want to learn more details or curious about, since I’ve already have some basic ideas after reading the first book. Depends on your learning style and your knowledge system, you can go through the chapters sequentially or read the first book and use this as some sort of advanced learning material.

The benefit of the content in this book/course at least for me is that it provided extensive coverage on how a computer works and the practice problems to test if you really understand a concept.

3️⃣ Operating Systems: Three Easy Pieces

Image description

This book is the culmination of years of teaching intro to operating systems by by Remzi H and Andrea Arpaci-Dusseau to both undergraduates and graduates at the University of Wisconsin-Madison Computer Sciences department.

It has three pieces: virtualization, concurrency, persistence, these are the fundamental concepts in OS construction. I find it works great with the operating system course the authors are teaching. Note that on the course page it lists CSAPP similar course as its prerequisite.

After learning the fundamentals I’ve found it helps when I look at OS level metrics to identify system bottlenecks, and it was easier to understand the new technologies such as Docker, also the learnings at this abstraction level enables me to have a clearer picture when I debug or design a system, or even during system design interviews.

Which one are you mostly interested in? Let me know what you think about using them as a start to get a better understanding of computer systems!🤓

programmer Article's
30 articles in total
Favicon
11 Essential Non-Coding Skills Every Developer Needs to Master
Favicon
Apredendo construção de apis com node e TypeScript
Favicon
Descarga: The Pragmatic Programmer: your journey to mastery
Favicon
A Comprehensive Guide to Becoming a Great Tech Lead
Favicon
The Best 5 Free IP Geolocation APIs for Programmers
Favicon
Day 27: Unveiling the Magic of Binary Search in Java, C++, Python 🚀ther
Favicon
Java Programmer Mastery for Developers
Favicon
Crashing Code: The Hidden Dangers of Programmer Burnout and How to Avoid Them
Favicon
Odd Even Number Checker using JavaScript (https://youtu.be/4YhYZooNohE)
Favicon
Advice for Newbies: From a Self-Taught Programmer
Favicon
Listado de páginas para programador y diseñador freelance que están buscando trabajo 🥳
Favicon
Challenges of Micro SaaS
Favicon
5 Websites To Finish 💯 Complicated Stuff Quickly & Easily! 🚀
Favicon
Maximizing Your Productivity as a Software Engineer: Tips and Tricks
Favicon
10 things that I wish I had known earlier!!
Favicon
Facts no one knows about programmers
Favicon
The Courage to Quit: Making the Leap From Corporate Programmer to Micro SaaS Founder
Favicon
Top 10 most common Programming And Coding Mistakes Data Scientists Make
Favicon
Using Windows PowerShell
Favicon
📚3 Must Read Books for Programmers from Non-traditional Background
Favicon
Memes only programmer can understand
Favicon
Happy Programmers' Day
Favicon
Developer career achievements?
Favicon
Programmer's life
Favicon
Do you drink and code?
Favicon
5 Proven ways to Solve any Coding Problems Like an Expert in 2022
Favicon
The 3 debugging tools that every programmer needs.
Favicon
Roles of a Software Engineer
Favicon
How to Add Push Notifications to a Flutter App
Favicon
Tips To be a Better Programmer

Featured ones: