Связанные сообщения
Трололо! Я тебе список литературы тут предлагал более чем 2 раза и более чем 3 года назад. Без приувеличений: http://caxapa.ru/339481.html, http://caxapa.ru/196775.html.
Сам список я так и не составил, хотя писал: http://caxapa.ru/333894.html
Начинать можно таки с Кернигана и Ритчи "язык программирования C". И таки с "Практики программирования" Роба Пайка. Последний не даёт примеры в отрыве от компьютера, а в тесной связке с ОС, ближе к практике. И принципиально полезно было бы поставить linux, научиться в нём хоть как-то работать из командной строки и выполнить примеры из книги. Linux даёт понимание как оно внутри устроено. Windows не даёт, он для бизнеса, не для обучения. Продолжаю список: Б. Керниган, Р. Пайк "Программное окружение Unix". Если речь зашла про unix системы, то исключительно важной (и редкой...) книгой считаю Дж. Армстронг "Секреты Unix". Смысл не в Unix, а в том, что даёт какие-то представление о работе компьютеров вообще.
В отрыве от C и ближе к теории программирования: Н. Вирт "Алгоритмы и структуры данных". Для более глубокого изучения: Хопкрофт, Мотвани, Ульман "Введение в теорию автоматов, языков и вычислений", Ахо, Хопкрофт, Ульман "Структуры данных и алгоритмы", и очень рекомендую Г. Уоррен "Алгоритмические трюки для программистов".
Рекомендую к прочтению Р. Себеста "Основные концепции языков программирования". И собственно настаиваю, что вменяемый программист должен владеть десятком языков программирования, в частности, в обязательном порядке: 1) Pascal (Delphi и т.п.), 2) C/C++, 3) SH (bash) из unix, 4) какой-либо скриптовый язык вроде Perl, Tcl, Python, Lua, Javascript... Последнее весьма помогает в жизни для решения каких-либо практических задач на ПК. Интересна книга (хотя надо признать, слишком толстая) написанная самими авторами Tcl: Уэлш, Джонс, Хоббс "Практическое программирование на Tcl и Tk". Весьма полезно иметь представление о функциональных и декларативных языках (всё перечисленное ранее, особенно C/Pascal -- типичные императивные языки), вспоминается Х. Абельсон, Д. Сассман "Структура и интерпретация компьютрных программ". Да, концепцией ООП тоже неплохо бы владеть. Но её изучать, по моему мнению, как и вообще нормальное программирование, лучше на Pascal, нежели на C/C++. Последние предназначены для практического программирования, не для обучения.
Для дальнейшего изучения рекомендую Э. Реймонд "Искусство программирования для Unix". Дмитрий Иртегов и Большаков: "Введение в операционные системы", Эндрю Таненбаум "Современные операционные системы"... "Руководство системного администратора" Э. Немет ещё познавательно, но больше не для программистов.
Для изучения C++ начинать стоит сразу скорей с "Языка программирования C++" Бьерна Страуструп. Плохие учебники способны только сильней запутать. Но напоминаю, было несколько редакций книги, с разными версиями языка.
Для понимания внутренностей Unix (не современного, но современный махом и не освоишь) можно почитать Морис Дж. Бах "Архитектура операционной системы Unix". Для освоения программирования: Андрей Робачевский "Операционная система Unix". Для глубокого изучения Ричард Стивенс: "Разработка сетевых приложений" и "Взаимомдействие процессов".
Но самое-то главное, как я уже сказал ранее -- нужно учиться программировать вообще, а не учиться программировать PIC-контроллер семейства AVR типа ATMega32 на языке C. Если абстрактного мышления не хватает на понимание этого факта, лучше и не начинать. И не стоит читать дурную литературу (где в названии встречаются слова AVR, Microchip, Windows и т.п.) и ходить по дурным сайтам: они способны заварить в голове крутейшую кашу на долгие годы, не выпутаешься.
Ссылки:
http://pc.fk0.name/pub/books/c/k_and_r/
http://pc.fk0.name …rovanija-rob-pike.djvu
Есть что-то невнятное ещё:
http://pc.fk0.name …ub/books/c/book.txt.gz
http://pc.fk0.name …books/c/starterkit.txt
Другое:
ftp://mhm@pc.fk0.name/pub/books/unix/Raymond_S._Eric-Iskusstvo_programmirovaniya_dlya_UNIX.djvu
ftp://mhm@pc.fk0.name/pub/books/unix/Kernighan%20B.W.,%20Pike%20R.%20-%20The%20practice%20of%20programming%20(1999)(en).djvu
http://pc.fk0.name …s/unix/unixprogenv.pdf
http://pc.fk0.name …ooks/unix/unixprogenv/
PS: разумеется ссылки приведены для детального ознакомления с библиографическими данными (и будут удалены), советую приобрести бумажные книги. Я всерьёз -- т.к. читать с компьютера бесполезно, в мозгах не застревает.
PPS: Кнута забыл, но он зануден...
[ZX]
-
- Благодарствую премного! - Белый Жрец(26.08.2013 10:55)
- Спасибо, можт вдруг пригодится. На самом деле - неоценимо. - semens(25.08.2013 16:25)
- Спасибо, сохранил - Ralex(25.08.2013 11:34)
- Спасибо, мне тоже пригодится. - Ruslan(25.08.2013 09:43)