Programming from the Ground Up
P**S
I got the job reading this book one day before the interview!
Programming from the Ground Up is a fantastic book to get into x86 assembler and assembly programming on Linux quickly. This book was published in 2004 but it doesn't make it outdated. The material in this book gives you fundamental knowledge about how Linux programs work and how to write them in GNU AS assembler.Jonathan Bartlett wrote this book because he was frustrated to no end with the existing books. At the end of them he could still ask, "How does the computer really work?" and not have a good answer. Jonathan's goal is to take you from knowing nothing about programming to understanding how to think, write, and learn like a programmer. You won't know everything, but you will have a background for how everything fits together.Even now in 2016 (or 2020, or 2050, whenever you're reading this) there are no better book to learn assembly than this one. At least I haven't seen one. Jonathan Bartlett has written a masterpiece. (If you know any fantastic recent assembly books, let me know so I can evaluate them.)The introductory will capture anyone who's interested in computers. It says:Programming is like poetry. It conveys a message, not only to the computer, but to those who modify and use your program. With a program, you build your own world with your own rules. You create your world according to your conception of both the problem and the solution. Masterful programmers create worlds with programs that are clear and succinct, much like a poem or essay.This book not just teaches assembly but also good programming style and philosophy of writing good programs. It says, "Your goal as a programmer is to solve the problem at hand, doing so with balance and taste, and teach your solution to future programmers." That's something programmers often forget or ignore. This book is filled with advice like this and even has a whole chapter on developing robust programs. It is a very didactic book.I also really like this paragraphs from the book:The difference between mediocre and star programmers is that star programmers understand assembly language, whether or not they use it on a daily basis. Assembly language is the language of the computer itself. To be a programmer without ever learning assembly language is like being a professional race car driver without understanding how your carburetor works. To be a truly successful programmer, you have to understand exactly what the computer sees when it is running a program. Nothing short of learning assembly language will do that for you. Assembly language is often seen as a black art among today's programmers - with those knowing this art being more productive, more knowledgeable, and better paid, even if they primarily work in other languages.Appendixes are very useful as well. There's one on common x86 instructions, difference between AT&T syntax and Intel syntax, important system calls, summary of using gdb, and C programming idioms in asm. C idioms in asm is the most awesome appendix.I've placed this book #21 in my Top 100 Programming, Computer and Science books list:[...](If this link gets removed google for >>catonmat top 100 programming computer science books<< to find my article.)Fun story about this book: I remember how I went through this book in 2004, a day before a job interview, and I exactly got asked a question about how C functions get compiled to assembly, how the stack and memory management works. I got that job.
A**T
Excellent Intro to Assembly Language
This book is a good book if your looking for an introduction to assembly language, specifically x86 on linux. The author basically starts each chapter with a program demonstrating some new concept (eg functions) and proceeds to disect it over the course of the chapter so the reader is left with a good understanding of it. Also there are exercises at the end of each chapter which help to reinforce what has been learned.Im not sure if this book is really suitable for someone who has no programming experience though. I don't think assembly language is the place to start if your just learning how to program, i would recommend something like python maybe. But for some one who already knows how to program in a language this is a good primer to assembly language on linux.
ترست بايلوت
منذ 3 أسابيع
منذ 4 أيام