Необходимо хорошо освоить системное программирование, embedded-разработку, программирование сетевого софта и программирование в Unix. Цели «найти работу по программированию в кратчайшие сроки» — нет. Приоритет отдается изучению основ и необходимой теоретической базы с параллельным выполнением практических (лабораторных) задач. Приступить к реальной работе нужно приблизительно через 1.5-2 года. 
Оцените, пожалуйста, план по программированию (последовательность книг: с начала изучения до условного завершения).
1. Основы компьютера, алгоритмы и сети
- Архитектура компьютера (Э. Таненбаум)
 - Современные операционные системы (Э. Таненбаум) 
 -  TCP/IP. Архитектура, протоколы, реализация (С. Фейт)
 - Программирование в алгоритмах (С. Окулов).
 
2. Программирование
- Turbo Pascal 7.0 начальный курс (В. Фаронов)
 - Assembler для DOS, Windows и UNIX (С. Зубков)
 - Искусство программирования на C: Фундаментальные алгоритмы, структуры данных и примеры приложений (Р. Хэзфилд)
 - Язык программирования Си (Б. Керниган, Д. Ритчи)
 - UNIX. Профессиональное программирование (Р. Стивенс)
 - Ядро Linux (Д. Бовет, М. Чезати)
 - Ядро Linux. Описание процесса разработки (Р. Лав)
 
3. Практика и начало работы
- Embedded: изучение стандартов С99/C11/POSIX/RTOS. Знакомство и работа с arduino, шилды, отличия VSS от VDD, gpio от spi, ИКаЗэ и УХаХа. Начать работать с железками stm8, stm32, mips, arm. Работа с FPGA. В более крупном эмбеддеде — на микро-компьютерах, где уже линукс крутится — нужно юзать lua, в том числе для написания вебморд и некоторых скриптов бекендов.
 - System: работа с драйверами - их написание и т.д., прошивками, ядром kernel:- модули, код, патчи и т.д,
 - Network: сетевые приложения unix, стандарты RFC, протоколы, сокеты, потоки данных в TCP/IP, бинарные протоколы, написание модулей ядра для работы с пакетами на низком уровне, работа с сетевыми бинарниками, научиться максимально быстро обрабатывать сетевой трафик — это кастомизация TCP-стека, вынос его из ядра, привязка к ядру процессора, c получением данных через NAPI, без хардварных прерываний на каждый пакет
 
Какие мысли, советы? С чего именно начать и как продолжать?











