ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Понедельник
21 сентября
/1035172
Топик полностью
fk0 (10.09.2020 00:46, просмотров: 272) в ответ на Народ. Тест я позорно слил, поэтому могу спокойно заняться самообразованием. Мне нужен STM32 + "Си". Понятно, что в случае языка высокого уровня архитектура уже не так важна, а работа с периферией требует простого знакомства с документацией, поэтому вопросы будут по языку, а не по ARM. Могу я их здесь задавать или как? - автор: teap0t
Тебе не нужен STM32 + "Си". Тебе нужен Си отдельно и STM32, если вообще нужен, отдельно. Кусочно-выборочно процитирую сам себя: дело не только в 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". Дмитрий Иртегов и Большаков: "Введение в операционные системы", Эндрю Таненбаум "Современные операционные системы"... "Руководство системного администратора" Э. Немет ещё познавательно, но больше не для программистов. Ещё Анрей Робачевский "Операционная система Unix"...

Для изучения C++ начинать стоит сразу скорей с "Языка программирования C++" Бьерна Страуструп. Плохие учебники способны только сильней запутать. Но напоминаю, было несколько редакций книги, с разными версиями языка.

Для понимания внутренностей Unix (не современного, но современный махом и не освоишь) можно почитать Морис Дж. Бах "Архитектура операционной системы Unix". Для освоения программирования: Андрей Робачевский "Операционная система Unix". Для глубокого изучения Ричард Стивенс: "Разработка сетевых приложений" и "Взаимомдействие процессов".

Но самое-то главное -- нужно учиться программировать вообще, а не учиться программировать PIC-контроллер семейства AVR типа ATMega32 на языке C. Дурная литература на тему "программируем AVR на C" способна заварить дичайшую кашу в голове лет на 10 вперёд. Не рекомендую.

Название очевидно из урла:

http://fk0.s3-website-ap-southeast-1.amazonaws.com/ftp/pub/books/programming/praktika-programmirovanija-rob-pike.djvu

http://fk0.s3-website-ap-southeast-1.amazonaws.com/ftp/pub/books/unix/Kernighan%20B.W.,%20Pike%20R.%20-%20The%20practice%20of%20programming%20(1999)(en).djvu

http://fk0.s3-website-ap-southeast-1.amazonaws.com/ftp/pub/books/c/k_and_r/

http://fk0.s3-website-ap-southeast-1.amazonaws.com/ftp/pub/books/unix/unixprogenv.pdf

https://fk0.s3-ap-southeast-1.amazonaws.com/ftp/pub/books/unix/robachevskij.pdf

https://fk0.s3-ap-southeast-1.amazonaws.com/ftp/pub/books/unix/unix-m.bach.gz

https://fk0.s3-ap-southeast-1.amazonaws.com/ftp/pub/books/programming/henry_warren-algorithmicheskie_tryuki_dla_programmistov.djvu

http://fk0.s3-website-ap-southeast-1.amazonaws.com/ftp/pub/books/unix/Raymond_S._Eric-Iskusstvo_programmirovaniya_dlya_UNIX.djvu

https://fk0.s3-ap-southeast-1.amazonaws.com/ftp/pub/books/programming/Linkers+and+Loaders.djvu

https://fk0.s3-ap-southeast-1.amazonaws.com/ftp/pub/books/programming/cpumemory-1.pdf


Я не умею из виндов просматривать, по-моему это для совсем начинающих:

http://fk0.s3-website-ap-southeast-1.amazonaws.com/ftp/pub/books/c/book.txt.gz

http://fk0.s3-website-ap-southeast-1.amazonaws.com/ftp/pub/books/c/starterkit.txt


PS: настоятельно рекомендую:

https://fk0.s3-ap-southeast-1.amazonaws.com/ftp/pub/books/programming/mythsoftware.txt


PPS: Кнута забыл, но он зануден...

https://fk0.s3-ap-southeast-1.amazonaws.com/ftp/pub/books/programming/KNUT/index.html

https://fk0.s3-ap-southeast-1.amazonaws.com/ftp/pub/books/programming/knut1.djvu

https://fk0.s3-ap-southeast-1.amazonaws.com/ftp/pub/books/programming/knut2.djvu

https://fk0.s3-ap-southeast-1.amazonaws.com/ftp/pub/books/programming/knut3.djvu

https://fk0.s3-ap-southeast-1.amazonaws.com/ftp/pub/books/programming/knut_3_sort-srch.pdf


PPPS: я уберу, так что скачивайте кому надо быстро.

[ZX]
booksfk0
Ответить
Ответы