I am a software engineer for the past 10 years, and did frontend and backend development. I am learning Rust at the moment and have the following books:
- "The Linux Programming Interface"
- "Systems Programming with Linux"
- "Adavnaced UNIX Programming"
What I struggle with: How to get exposure to projects to learn for a future job? I had a Rust job for around half a year, where people build web servers and came from a C and C++ background. Half of the stuff they wrote I didn't understand (flushing, opening another channel just for logs so we don't fill up the other ones etc. etc.).
Now I wonder how I can get access to this type of information, how to properly learn it?
It's something I was terrified of doing.
But once I got in there and started poking around, I realized it was just ordinary plain-vanilla C code. Not C++. Just C code.
With my local copy, I started to hack pg_dump to do something special that we wanted at the time. Even after 30 years of coding, I'm not that especially good of a programmer. But I ended up getting our own special version of pg_dump that did what we wanted at the time and it went into production dumping hundreds of gigs of data every day!
But what I'm not, is afraid. I'm not afraid to try anything.
And that's what it takes to do deep, systems level programming.
Don't be afraid.
Those bits are just bits. And it's just code... and most of it was not written by wizards. Just ordinary people like you and me. Don't be afraid man.
Clone the repo and setup a workable build environment and start tinkering and compiling and running to see what happens.
You would be totally shocked to find out what you can actually achieve.
Those books will only go so far.