Программирование

Кроме знания языков программирования необходимо иметь под рукой необходимый инструментарий для изучения, написания и отладки самих программ. В минимальный набор для написания программы входит ЛЮБОЙ текстовый редактор, компилятор и компонвщик (он же линковщик). Таким набором может быть например редактор VIM, компилятор GCC и компоновщик LD. Если у вас ничего этого нет, то можно установить всё из репозитария (# apt-get install vim gcc binutils) или скачать с сайтов разработчиков.

Архитектура x64 процессоров Интел

Описание архитектуры
Создание программ для архитектуры Intel (PDF (english))

Устройство памяти

устройство памяти

IDE и редакторы

Редактор VIM (сайт, книга)
IntelliJ IDEA
Android Studio

Ассемблеры

nasm - Netwide Assembler (сайт)
gas

Языки

C
Java

Платформы

Android

Компиляторы

GCC - GNU Compiler Collection
LLVM - Low Level Virtual Machine

Компоновщики

ld (входит в пакет binutils)
Руководство новичка по эксплуатации компоновщика (Хабр)

Отладчик

gdb (сайт, PDF (english))

Дополнительно

Терминология