ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
1035172 Топик полностью
Связанные сообщения
Fk0
Процитирую сам себя: "Разработка ПО большого объёма на языках с динамической типизацией, как правило затруднена, но в целом скор...2020-10-30
Классика жанра же: когда делаешь макрос, его всегда, кроме случаев когда невозможно, нужно делать выражением (а не оператором --...2020-09-11
Есть мысль перейти на RTOS для снижения временных затрат на реализацию программной части, отладку и профилировку. Важна поддержк...2020-06-18
Пользуйся:2020-06-11
Надо понимать, что класс -- это не структура. Применительно к C++ мне больше нравится слово тип. Тип -- это сущность существующа...2020-04-26
Можно просто енумы генерировать через макрос, который сгенерирует и энум, и inline-функцию принимающую данный enum и возвращающу...2019-12-11
Процитирую самого себя: "Зачем вообще использовать "экспоненциальное скользящее среднее", кроме как от бедности (не хватает ресу...2019-11-01
Выскажу ещё раз: FreeRTOS сырая недоделка, смысла особого, без реализации ряда перечисленного (см. ниже) не имеет и, хуже того, ...2019-10-18
Топик посвящён программированию микроконтроллеров в условиях необходимости экономии электроэнергии и архитектуре ПО в целом.2011-10-24
fk0, легенда (10.09.2020 00:46, просмотров: 1162) ответил teap0t на Народ. Тест я позорно слил, поэтому могу спокойно заняться самообразованием. Мне нужен STM32 + "Си". Понятно, что в случае языка высокого уровня архитектура уже не так важна, а работа с периферией требует простого знакомства с документацией, поэтому вопросы будут по языку, а не по ARM. Могу я их здесь задавать или как?
Тебе не нужен 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]