LINUX.ORG.RU

Новое издание первого тома книги «Программирование: введение в профессию» А. В. Столярова

 , , , ,


1

4

Вчера, 14 января 2025 года на сайте автора был опубликован первый том нового издания известной книги «Программирование: введение в профессию» за авторством Андрея Викторовича Столярова, известного на данном портале как @Croco.

Новое издание является исключительно электронным и имеет номер 2,9, а не 3. Номер 3 получит полноценное типографское издание на бумаге, если оно состоится.

>>> Подробности



Проверено: CrX ()
Последнее исправление: CrX (всего исправлений: 5)
Ответ на: комментарий от Shushundr

И чего сейчас в библиотеках выдают - магнитные ленты, оптические компакт-диски, или флешки?

  • бумажные книги и периодику в оригинале;
  • фотокопии бумажных книг и периодики;
  • распознанные и нераспознанные сканы книг и периодики;
  • изначально электронные издания книг и периодики;
  • фильмы на DVD;
  • стол, стул, розетку и Wi-Fi;
  • ПК с доступом в интернет;
  • отдельные помещения для лекций и конференций, заседаний клубов по интересам и уединенной работы.

Конкретный список зависит от уровня библиотеки и от страны, равно как и размер и качество фонда.

Vidrele ★★★★
()
Ответ на: комментарий от thegoldone

Книга - намного более удобный способ чтения информации, чем любые из электронных устройств, которые я видел.

firkax ★★★★★
()
Ответ на: комментарий от firkax

забыл тебя спросить, прости.

если забуду и в следующий раз, прости заранее.

alysnix ★★★
()
Ответ на: комментарий от ugoday

какая-то древняя фигня и подходит под эти требования.

не подходит. Потому что она не простая.

Сам Андрей Викторович в своих Заключительных замечаниях к обсуждаемому тому предупреждает:

учтите, что процессор i386 (отчасти благодаря тяжолому насследиo 8086) имеет одну из самых хаотичных и нелогичных систем команд в мире

И советует поизучать, например, ARM

vM ★★
()
Ответ на: комментарий от vM

изучать не ассемблеры, а платформы

Это уже малость выходит за пределы вводного курса по программированию, не так ли? %)

Nervous ★★★★★
()
Ответ на: комментарий от Nervous

Без этого возня с ассемблерами, да и FreePascalем во многом, бессмысленна.

Лучше уж «сразу» освоить подмножество пайтона и решать с его помощью реальные задачи корпусного мебелестроения.

http://stolyarov.info/guestbook/archive/10/#cmt416

vM ★★
()
Ответ на: комментарий от luke

Где мне десктопный ARM и уж тем более RISC брать?! Никто не будет ради книги покупать Raspberry Pi, тем более, что почти все армные асмы используют AT/NT синтаксис, который автору сабджа (и мне) просто не нравится. А от i386 amd64 отличается перечислением отличий, поэтому смысла тут вообще нет.

Zeev
() автор топика
Ответ на: комментарий от luke

Компиляторы это уже когда есть определённые знания, а насчёт LLVM, то автор вообще против любого исполнения кода с использованием VM.

Zeev
() автор топика
Ответ на: комментарий от mister_VA

выражовывания своих мыслей, а не для всего вот этого, что вылаживают

без прожевывания больших кусков вылаженное плохо усваивается

vM ★★
()
Ответ на: комментарий от Zeev

от i386 amd64 отличается перечислением отличий,

Десктопных «i386» без x64 не так много осталось в живых. Если изучение x86 начинается с нуля, а не на основании опыта программирования 4004, 8008, 8080, 8086, 80186 и 80286, i386 и т.д., то начинать нужно с основного режима работы современных x86. C 64-разрядного подрежима Long Mode (или с его учебного подмножества).

Затем изучать отличия Compatibility подрежима Long Mode, нужного для эмуляции среды выполнения программ, написанных для 32-разрядных систем прошлого.

При желании (или необходимости) можно изучить ещё зоопарк подрежимов Legacy Mode, частично эмулирующего поведение 32-разрядных i386, и нужного для запуска старых 32-разрядных, а то и 16-разрядных систем. После сброса ядра пока переключаются в режим в стиле Legacy Real Mode, поэтому, если придётся самостоятельно восстанавливать после сброса основной 64-разрядный Long Mode, то c Real Mode подрежимом тоже придётся познакомиться. 16-разрядный Protected Mode не нужен почти ни для чего, кроме ретро-программирования. (встречается иногда firmware для работы в этом режиме)

SMM нужен разработчикам десктопных прошивок.

https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/AMD64StateDiagram.svg/776px-AMD64StateDiagram.svg.png

Исключение – ученик нашёл на свалке рабочий экземпляр i386 без x64, и хочет сам его программировать.

vM ★★
()
Ответ на: комментарий от Zeev

Где мне десктопный ARM и уж тем более RISC брать?!

Зачем десктопный ARM, если в кармане почти всегда есть мобильный?!

vM ★★
()
Ответ на: комментарий от Zeev

все армные асмы используют AT/NT синтаксис

AT&T ? Приведите, пожалуйста пример ассемблера для ARM, разработанного AT&T

vM ★★
()
Ответ на: комментарий от vM

Один из самых распространённых свободных ассемблеров, поддерживающих ARM — GNU Assembler использует синтаксис AT&T

Zeev
() автор топика
Ответ на: комментарий от gremlin_the_red

https://en.wikipedia.org/wiki/GNU_Assembler

The default syntax is AT&T syntax.

A standard «Hello, world!» program for Linux on IA-32:

.global	_start

.text
_start:
	movl  $4, %eax   # 4 (code for "write" syscall) -> EAX register
	movl  $1, %ebx   # 1 (file descriptor for stdout) -> EBX (1st argument to syscall)
	movl  $msg, %ecx # 32-bit address of msg string -> ECX (2nd argument)
	movl  $len, %edx # length of msg string -> EDX (3rd arg)
	int   $0x80      # interrupt with location 0x80 (128), which invokes the kernel's system call procedure

	movl  $1, %eax   # 1 ("exit") -> EAX
	movl  $0, %ebx   # 0 (with success) -> EBX
	int   $0x80      # see previous
.data
msg:
	.ascii  "Hello, world!\n" # inline ascii string
	len =   . - msg           # assign (current address - address of msg start) to symbol "len"

Конечно можно включить синтаксис Intel с помощью соответствующей директивы, но ведёт к надобности излишнего пояснения это, когда можно просто использовать NASM под i386 или amd64.

Zeev
() автор топика
Ответ на: комментарий от gremlin_the_red

Нет, всё же я не прав. В gas для ARM используется свой синтаксис.

Zeev
() автор топика
Ответ на: комментарий от vM

не подходит. Потому что она не простая.

А если с x86-64 сравнить? Ответ уже не столь однозначен.

И советует поизучать, например, ARM

Хороший совет. Но тут, мне кажется, дело в психологии. С точки зрения голой логики, для введение в ассемблер лучше изобрести специальный ассемблер для специального процессора, где всё было бы логично, упорядоченно и сообразно задачам обучения. Но у студента возникнет ощущение, что это всё ненастоящее, игрушечное, несерьёзное. С соответствующим отношением к делу. Вот, i386 — точно настоящий процессор. ARM — сейчас да, а раньше — не совсем.

ugoday ★★★★★
()
Ответ на: комментарий от FishHook

по математике, логике

если читать ландафшица, то за этим ты сам пойдешь, потому что доказывать придется самостоятельно

истории науки, философии

физикам это излишне, только усугубит процесс скатывания в философов

arcanis ★★★★
()
Ответ на: комментарий от FishHook

вообще то занимаются (особенно полезно, если разные стили игры), емнип, тот же хикару одно время занимался с каспаровым

arcanis ★★★★
()
Ответ на: комментарий от bugfixer

Вы действительно считаете его текущую жизненную ситуацию эталоном успеха? Ну, или мы совсем разное под неосиляторством понимаем.

При чём тут успех и ситуация? Не думаю, чтобы у него мозг к 40 годам (или когда он там сформулировал свои принципы) настолько закостенел, что стал неспобен выучить новые возможности в Си и C++.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от vM

можно изучить ещё зоопарк подрежимов Legacy Mode

А можна нинада? %)

Nervous ★★★★★
()
Ответ на: комментарий от anonymous_incognito

При чём тут успех и ситуация?

Я был бы готов терпеть заявления в духе «ваш STL полное Г, а std::vector самый бесполезный контейнер» от человека подкрепляющего свои тезисы фактами «вот мой домик на побережье (фото), вот моя красавица жена (фото), вот мои детишки получающие образование в Ivy-league (фото), вот мой Феррари (фото) вот моя яхта (фото); делайте как я и всё у вас получится». И у меня очень большие проблемы с принятием бредовых тезисов от неудачника вынужденного побираться. Я довольно понятно свою мысль доношу?

bugfixer ★★★★★
()
Ответ на: комментарий от luke

ARM, RISC-V, amd64 на худой конец…

Давай подумаем. Вот допустим твоя задача показать студентам во что превращается код на языке высокого уровня, чтобы увидели уровень на котором процессор «думает». По крайней мере доступный уровень, микрокоды не в счёт, хотя можно и о них вспомнить чисто для справки.

Для этой цели не будем углубляться в написание драйверов или операционных систем. Нас интересует прикладной уровень.

Скорее всего, до сих пор 99% студентов этого курса писали и компилировали программы на каком-то из x86. Скорее всего amd64, да.

Какой выберем ассемблер? ARM? Для него придётся или эмулятор ставить или где-то найти машину (может VPS) на которой можно софт писать. Тоже самое, если выбрать RISC-V. Для практических работ с ним придётся отдельно повозиться.

Amd-64? Доступный вариант, но избыточный по сравнению i386. Код на i386 и так нормально компилируется и исполняется из под не совсем экзотических ОС. Но содержит много лишних сущностей и при обучении ему придётся неоднократно упоминать отличия от 386-го.

Получается, что 386-й в педагогических целях оптимален. Хотя можно конечно и amd64, но не вижу в этом большой необходимости. По большому счёту, особой разницы нет, как и причины критиковать за этот выбор. При том эти соображения были озвучены.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от bugfixer

И у меня очень большие проблемы с принятием бредовых тезисов от неудачника вынужденного побираться. Я довольно понятно свою мысль доношу?

Понятно. «Если ты такой умный, то почему такой бедный», как говорят американцы. Я не считаю такой подход аргументом в техническом (технико-педагогическом) споре, тем более выводы насчёт осиляторства. Люди разные, обстоятельства у них тоже. Если на то пошло, преподавание в вузах в РФ обычно не очень-то прибыльное дело вообще.

Кроме того, в карман я к нему не заглядывал, но вообще-то «побираться» (краудфантить) для работы для сообщества над книгой или софтом не считается зазорным даже у весьма успешных людей. Бесплатно работать не станут.

Опять же, в карман не заглядывал, но у человека хватило средств для переезда в другую страну и жизни там и/или работы там уже в течение почти трёх лет. На корочку хлеба он не собирает.

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 2)
Ответ на: комментарий от mister_VA

Первый раз чтобы ознакомиться с возможностями ЯП, что могут потребоваться для хоть каких-то попыток программировать. На втором разе постоянно что-то пытаясь программировать, а третий чтобы понять, что ты делаешь неверно или как можно лучше. И то, если это действительно содержательная книга о ЯП, равнозначная документации на ЯП и его трансляторы.

Пожалуй могу согласиться.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от bugfixer

Вдогонку.

Конечно, если бы он был вообще каким-то непонятным хреном не пойми откуда возникшим, но у него как никак многолетнй опыт преподавания программирования не в самом отстойном учебном заведении.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от bugfixer

Так никто не побирается, просто Андрею Викторовичу интереснее заниматься собственными проектами, чем коммерческой разработкой. Да и он сам говорит, что за деньги можно хоть на Бейсике писать, так что дело не в этом. Ну да про жену и детей вы загнули, автор сабджа женат о чём на своих ресурсах не однозначно упоминал, ну и в этом вопросе далеко не всегда всё сводится лишь к деньга, а ещё он — child-free.

Zeev
() автор топика
Ответ на: комментарий от anonymous_incognito

Получается, что 386-й в педагогических целях оптимален.

Есть ещё одно соображение. А с чего все критиканы и дополнятели решили, что курс Столярова – ЕДИНСТВЕННЫЙ по программированию в ВУЗе?! Кто сказал, что со II курса, когда студенты уже вошли в программирование, параллельно столяровскому вхождению в Си не идёт курс «Интерпретируемые ЯП» с Tcl/Tk, Луа, Пёрлом, Питоном и шеллами? А на III – разные ассемблеры? Отдельно создание ГУЁв на? БД и СУБД? Клиент-серверная архитектура создания приложений? И т.д.

Помните максимы обучения: нельзя объять необъятное: слона надо есть маленькими кусочками; если 1 пирожок вы съедаете за 1 мин, это не значит, что за 100 минут вы съедите 100 пирожков; специалист подобен флюсу – его полнота односторонняя.

mister_VA ★★
()
Ответ на: комментарий от anonymous_incognito

Конечно, если бы он был вообще каким-то непонятным хреном не пойми откуда возникшим

А мне вот непонятно. Точнее - понятно, но мы же не физиологические аспекты обсуждаем. А так - непонятно.

но у него как никак многолетнй опыт преподавания программирования не в самом отстойном учебном заведении

Я не до конца понимаю как его так долго терпели в столь уважаемом ВУЗе, с его закидонами то. И я не считаю его сколь-нибудь талантливым или успешным программером. И прежде чем аппелировать к его «опыту» - покажите мне хотя бы один востребованный продукт созданный Столяровым-программистом? А также мне искренне жаль людей ввязавшихся в его «менторство». Что их ждёт в итоге?

bugfixer ★★★★★
()
Ответ на: комментарий от alysnix

Я не понимаю, что вы имеет в виду, и в принципе считаю, что это не есть нашего с вами разумов дело.

Zeev
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)