Recommended Reading: ``Programming from the Ground Up'' by Jonathan Bartlett
The book being recommended is ``Programming from the Ground Up'' by Jonathan Bartlett. It may be
found here:
https://savannah.nongnu.org/projects/pgubook
This book is a good choice for anyone interested in beginning to learn the lower-levels of computer
programming and development. Unlike a great deal of material that is top-down in terms of the
abstractions, this book is titularly in the opposite direction; a novice will learn the building
blocks of abstractions before they use them. Topics covered include: basic computer hardware and
terminology, including processors, storage, and addressing; assemblers; algorithmic thinking;
calling conventions; recursion; error handling; memory management; optimization; system calls; and
debugging with GDB.
It should be made clear this book is introductory and will best suit programmers with little
experience at this level or people new to programming entirely. This book teaches using GNU tools
and the machine code taught is the x86 machine language, but this is not a detail that should
concern someone who doesn't already have a reason to disagree with these choices; one should not
worry about wasting time with topics one won't make use of, as much of the material is generally
applicable to programming at this level.
A programmer already experienced with the low-levels will find this book a very easy read and so may
want to simply avoid it, but a glance through doesn't hurt.
I recommend to download the source for this work as well so that you will have easier access to the
example programs. An avid reader could expect to finish this book within just a month or two.
.