LINUX.ORG.RU

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

 , ,


24

11

На официальном сайте А. В. Столярова объявлено о выходе первого тома книги «Программирование: введение в профессию». Первый том, озаглавленный «Азы программирования», включает две части: «Введение» и «Язык Паскаль и начала программирования». Обе части, как и вся книга в целом, ориентированы на использование ОС Unix (в основном Linux); в предисловии автор, обращаясь к «коллегам-преподавателям», заявляет, что книга вряд ли будет им полезна, если командная строка ОС Unix не станет их основным инструментом для повседневной работы с компьютером.

Электронная версия первого тома (PDF) доступна на сайте в открытом доступе.

Книга «Программирование: введение в профессию» примечательна тем, что средства на её написание и издание были собраны через краудфандинговую кампанию. По словам автора, это был единственный вариант, позволяющий написать книгу и предоставить открытый доступ к её электронной версии. Приём пожертвований на сайте А. В. Столярова продолжается, поскольку средств для издания последующих томов к настоящему моменту недостаточно.

Как сообщалось ранее в новостной ленте сайта, второй том книги, который выйдет под заголовком «Низкоуровневое программирование», уже практически готов к печати. В него войдут часть о программировании на языке ассемблера NASM для ОС Unix, а также часть, посвящённая языку Си. Пока неясно, войдёт ли в этот же том часть, рассказывающая о принципах построения операционных систем и о возможностях, доступных на уровне системных вызовов ОС Unix, или же эта часть будет оформлена как отдельный том. Сроки издания второго тома также пока неизвестны, поскольку зависят от дальнейшего хода краудфандинговой кампании.

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

★★★

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

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

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

Тут цель получить хорошую литературу, разница кто автор?

Не получится. Книга УЖЕ написана и выложена «as is».

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

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

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

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

И таких работ будет несколько десятков или сотен штук, во всех них будут большие или очень большие куски исходной работы и все окончательно запутаются, что использовать, кому верить и кто что написал. Понимаете, знать автора очень важно при прочтении книги, потому что сформировавшимся авторам присуща определённая позиция и ты примерно знаешь, чего ожидать. Стать автором непросто, если конечно писать самостоятельные и законченные произведения. И стоит отличать реальных авторов ото всяких васей пупкиных, коие могут только заголовки в чужих работах переиначивать, да неугодные страницы вымарывать, заменяя часть абзацев своим графоманством.

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

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

Это не создаст никаких значительных проблем. Вот взять например сотни различных дистрибутивов GNU/Linux. Наличие сотни дистрибутивов мне лично никак не мешает выбрать из них какой-то один и использовать его. А в дистрибутивах между прочим часто используются особым образом пропатченные компоненты (например в федоре GDB патченный, и ядра там тоже вроде как патченные).

Понимаете, знать автора очень важно при прочтении книги, потому что сформировавшимся авторам присуща определённая позиция и ты примерно знаешь, чего ожидать.

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

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)
Ответ на: комментарий от iamweasel

Страуструп вроде на С++ без контейнеров писал. Но он почему-то выбирает их.

К тому времени, когда Страуструп «выбрал» контейнеры (то есть к третьему изданию «Языка C++»), программистом он уже не был. Остальное — тлетворное влияние Степанова, который, похоже, может убедить кого угодно в чём угодно. Ну и плюс ещё такой момент, что когда Страуструп придумывал переопределение символов операций, он явно имел в виду что-то вроде STL, так что ему, скорее всего, понравилось, что его кто-то «правильно понял». А писать программы с использованием всего этого Страуструп, собственно говоря, никогда не пробовал, так что не вполне корректно говорить, что он что-то там выбирает.

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

Ну, ещё в одном месте состоялась победа сил добра над силами разума, и что?

Скажу страшное: разновидности интерпретаторов Scheme писать на Java, например, на порядок удобнее, чем на собственно Scheme.

liberte
()
Ответ на: комментарий от Croco

Когда я в 2003 году ушёл из индустрии, cmake ещё не было. Зато пару лет назад я пытался запаковать свежий mysql в пакет для Openwall Linux, убил без толку пару дней, в итоге был вынужден откатиться на версию mysql, в которой ещё не использовался cmake. Кто мне ответит за эти бездарно протоптанные два дня?

2003-й год, ну всё понятно. В IT 1 год за 10 идёт. Ты настолько устарел, что это даже не смешно. Теперь, в принципе, понятно, почему Паскаль. В 2003-м Питон был ещё непопулярен.

Среди моих учеников, то есть тех, кого я учил программировать, в том числе и на C++, есть достаточное количество тех, кто рассматривает C++ как «Си с классами», не используя его стандартную библиотеку, и неплохо себя при этом чувствуют в индустрии.

Какой учитель, такие и ученики. Что более интересно, что ученики не смогли сами дальше обучиться, а остановились на том, чему ты их «научил».

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

В цитатник ЛОРа!

Не совсем. Я считаю взаимоисключающими императивное программирование и сборку мусора. Если язык настолько далёк от машины фон Неймана, что там уже появился GC, то нет никакого смысла тащить за собой исходно противоестественные присваивания и циклы. То есть я не имею ничего против сборки мусора в Лиспе, Прологе, том же Хаскеле (хоть он мне и не нравится), но Java, C# и Go я в принципе не готов всерьёз рассматривать.

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

MHz
()
Ответ на: комментарий от Croco

С такими представлениями можно далеко пойти.

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

хочу увидеть cross платформенную реализацию Hello World для консоли без стандартной библиотеки

Это не экстремизм, это профессиональный опыт. Конечно, те, кто никогда не пробовал писать на C++ без контейнеров, в наше идиотическое время в принципе не могут себе представить, как это так, но, должен сказать, их мнение меня не волнует, ибо обусловлено исключительно невежеством. Среди моих учеников, то есть тех, кого я учил программировать, в том числе и на C++, есть достаточное количество тех, кто рассматривает C++ как «Си с классами», не используя его стандартную библиотеку, и неплохо себя при этом чувствуют в индустрии. Ну а я оттуда сбежал, чтобы на джаве не программировать :) По правде говоря, потом стало лень возвращаться, вот и не вернулся.

без стандартной библиотеки это круто! ввод-вывод с нуля писать будете ?

MHz
()

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

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)
Ответ на: комментарий от liberte

Тащемта, в лучших домах Лондона SICP уже давно на Питоне преподают.

Во-первых это не SICP.

Во вторых AFAIK SICP перевели на пистон для электриков. Для программистов — все ещё схема.

В третьих пистон — это Бейсик наших дней, поэтому УГ.

Oxdeadbeef ★★★
()
Ответ на: В цитатник ЛОРа! от MHz

Ну, сударь, ничего страшного, если вы туповаты и не поняли логику оратора, мы вам объясним.

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

Но если язык имеет очень высокую степень абстракции, как функциональные языки, например, от него трудно (фактически, невозможно) требовать соответствия аппаратной реализации. Программист на таком языке работает с абстракциями другого типа. Как следствие, и требование о прямом контроле за памятью снимается.

А в цитатник можно занести, дело хорошее.

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

так то что можно реализовать никто и не отрицает, но каков размер «простыни» и с кроссплатформенностью вопрос

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

типа за базаром никто не следит...

MHz
()
Ответ на: комментарий от Vudod

"особо одаренным" например Vudod'у не стоит переходить на личности

если я сказал - ахинея, значит тупица типа тебя взял под козырек!

реальные процессоры - гарвардские!

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

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

ну про фон Неймана повесилили

MHz
()
Ответ на: комментарий от SZT

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

Поучительная история расцвета и упадка «Do Yourself a Book» достойна того, чтобы ее сохранить для потомства. Эта новинка издательского рынка породила споры столь жестокие, что они заслонили само явление. Поэтому и по сей день неясно, что привело ее к краху. Мысль опросить общественное мнение никому не пришла в голову, и, скорее всего, к лучшему - ведь читатели, приговорившие ее к забвению, пожалуй, и сами не ведали, что творили. © Станислав Лем

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

Не знаю что там насчет «Do Yourself a Book» но никакого упадка википедии я пока что не наблюдаю.

И речь идет вообще-то не о художественной литературе

SZT ★★★★★
()
Последнее исправление: SZT (всего исправлений: 1)
Ответ на: В цитатник ЛОРа! от MHz

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

Я таки тоже не вижу в этой фразе никакой ахинеи, логика автора предельно понятна, и, возможно даже верна.

be_nt_all ★★
()

без стандартной библиотеки это круто! ввод-вывод с нуля писать будете?

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

Можно спорить со Столяровым о неполезности STL, но факт, что многие авторы фреймворков пишут некоторую альтернативу STL (NTL в U++) или, по крайней мере альтернативные контейнеры (Qt) тоже о чём-то да говорит.

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

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

Не знаю что там насчет «Do Yourself a Book» но никакого упадка википедии я пока что не наблюдаю.

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

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

Я таки тоже не вижу в этой фразе никакой ахинеи, логика автора предельно понятна, и, возможно даже верна.

это печально...

не страшно, что что-то не заметили при чтении по диагонали, хуже если не заметили внимательно прочитав

MHz
()
Ответ на: комментарий от SZT

И речь идет вообще-то не о художественной литературе

В nonfiction тоже может бытьавторский замысел, для которого работа сторонних соавторов может быть и не полезна

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

An important feature of NTL are requirements for stored elements. Unlike STL, which has single copy-constructible and assignable requirement for whole library, NTL makes requirements on per container and even per method basis. This way NTL allows direct storing of any type of elements. NTL provides two or even three flavors for each basic ADT kind of container relative to requirements for elements.

iamweasel
()
Ответ на: комментарий от be_nt_all

внимательнее надо быть

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

смотрите цитату, там написано СТАНДАРТНАЯ БИБЛИОТЕКА, там ничего не написано про STL или по другому стандартную библиотеку шаблонов

собственно в этом суть поста, как в известном примере «казнить нельзя помиловать»

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

не страшно, что что-то не заметили при чтении по диагонали, хуже если не заметили внимательно прочитав

те якобы логические неувязки, которые так вас взволновали, например различие между архитектурой Фон-Неймана и Гарвардской, на самом деле всем фиолетовы. Язык либоблизок к машине и императивен, либо работает на заметно более высоком уровне, на котором оставаться в рамках императивной парадигмы ­— это всё равно, что копировать в автомобиле устройство кареты.

be_nt_all ★★
()
Ответ на: внимательнее надо быть от MHz

смотрите цитату, там написано СТАНДАРТНАЯ БИБЛИОТЕКА, там ничего не написано про STL или по другому стандартную библиотеку шаблонов

Контекст ваш парсер не распознаёт?

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

ну во-первых язык ВСЕГДА далек от машины

во-вторых императивное, ООП, функциональной никак не связано со сборкой мусора

либо работает на заметно более высоком уровне, на котором оставаться в рамках императивной парадигмы ­— это всё равно, что копировать в автомобиле устройство кареты.

вот эту фразу расшифруйте пожалуйста

MHz
()
Ответ на: комментарий от be_nt_all

я за точность высказываний

чай не в подворотне общаемся или в подворотне ?

MHz
()
Ответ на: комментарий от be_nt_all

вот решил еще один комментарий закатать про стандартные библиотеки

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

троллинга ради замечу, что без использования import в python Вы сможете отправить в консоль hello world, а вот в C/C++ без include это Вы сможете сделать только в гамаке и стоя :-)

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

ну во-первых язык ВСЕГДА далек от машины

Даже если это ассемблер?

вот эту фразу расшифруйте пожалуйста

Долго, раз уж у вас соответствующая картинка в голове не возникла. На этут тему (собственно, про парадигмы программирования) можно книги писать. Ну и пишут.

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

не в подворотне, хотя, скажем так, в курилке (на большее LOR не тянет). В любом случае, общение тут происходит между человеками, и точность, уместная при человекомашинном «общении» не слишком уместна, у человека таки два полушария.

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

Даже если это ассемблер?

в принципе это у спецов по процессорам надо уточнять, но само наличие микрокода наводит на мысли что даже ассемблер, хотя утверждать не буду ибо точно не знаю

MHz
()
Ответ на: комментарий от be_nt_all

Я лично не знаю всю эту подноготную, что там происходит со всеми этими «посредничествами» в википедии, хотя кое о чем знаю, например конфликт с сектантами-саентологами https://ru.wikipedia.org/wiki/Церковь_саентологии_и_Википедия

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

Задыхаясь от бессилия (юридически все было безупречно, уж об этом-то издатели позаботились!), известный критик Ральф Саммерс писал: «Итак, современной порнографии уже мало, пришла пора втоптать в грязь великое наследие, которое всегда не только чуралось пошлости, но и открыто ей противостояло. Отныне жалкое подобие черной мессы тишком, в укрытии собственного дома, может отслужить за четыре доллара каждый желающий - такова цена подлинного падения!»

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

Собственно, в чем посыл? На основани чего вы считаете допустимым экстраполировать эту историю неуспеха(которая, заметим, реально никогда не происходила т.е. это лишь чисто домыслы автора на тему «а что было бы если бы кто-то решил поменять что-то в классической литературе?») на техническую литературу и на реальный мир? В википедии например статья про вышеупомянутый алгоритм Дейкстры сослужила мне отличную службу в объяснении того, как этот алгоритм Дейкстры работает. И если я например захочу переиспользовать эту статью в какой-нибудь своей гипотетической книге, изменив некоторые формулировки, никакой порнографии и нарушения скрепов не произойдет

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

Собственно, в чем посыл?

///На основани чего вы считаете допустимым экстраполировать эту историю неуспеха ... на техническую литературу и на реальный мир?

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

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

Ну, википедия, будучи по сути лишённым структуры справочником обо всём может неплохо передавать чисто справочную информацию. Насквозь вторичную (оригинальное исследование inwiki — ругательство), точнее даже не вторичную, а третичную, ну да ладно.

В учебнике, в отличии от справочника, авторский замысел есть. Именно его, а не какие-то там «духовные скрепы» (о которых мы в ВП недавно статью удалили за отсутствием чёткого определения, что это такое) легко может нарушить сторонний редактор.

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

be_nt_all ★★
()
Ответ на: Собственно, в чем посыл? от mister_VA

На основании рельного мира. Всегда есть Босс, который решает, что включать в конечный продукт, а что выкинуть.

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

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

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

Вы уверены, что в результате получите продукт, а не сапоги всмятку или ещё какуб порнографию в исключительно плохом смысле этого слова?

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

В учебнике, в отличии от справочника, авторский замысел есть.

А это неважно. Можно брать тексты какого-то человека и переиначивать их таким образом, чтобы там в итоге получился другой авторский замысел, или же вообще выкинуть всякий замысел, превратив книгу в справочник.

Именно его, а не какие-то там «духовные скрепы» ... легко может нарушить сторонний редактор.

Ну допустим нарушит, и что дальше? Конца света от этого не произойдет, это уж точно.

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

Вы уверены, что в результате получите продукт, а не сапоги всмятку или ещё какуб порнографию в исключительно плохом смысле этого слова?

Практика, только практика может дать ответ на этот вопрос. Но я не думаю, что у меня получится что-то ужасное и совершенно бесполезное.

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

Практика, только практика может дать ответ на этот вопрос. Но я не думаю, что у меня получится что-то ужасное и совершенно бесполезное.

На все выпады с лора будете отвечать, не нравится сделайте форк? Ещё уточните, у вас действительно есть такое большое количество свободного времени, что вы готовы написать книгу? На ком потом эту книгу тестировать?

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

Немного статистики по книге автора:

Книга содержит 157356 слов 1906083 букв, средняя длина слова 12 символов. Для написания этой книги нужно в течении года каждый день писать примерно 450 слов.

С другой стороны длина этого треда 79959 слов 947432 букв, тред был написан за 12 дней.

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

SZT, если это не просто болтовня, могу поучаствовать в формировании общей идеологии и скелете книги.

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

Я попросту собираю готовый продукт из...

///...готовых статей и кусков текста(компонент) которые доступны под свободной лицензией

Это называется реферат и никакой закон или лицензии этого не запрещают. Однако реферат — это ваш и только ваш труд, как раз вы и решаете, что туда цитировать, что нет и как комментировать цитированное.

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

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

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

$DIALOG --title «Ввод данных» --clear \ --inputbox «Привет! Перед вами пример ввода даных\nВведите своё имя:» 16 51 2> $tempfile

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

$DIALOG --title «Ввод данных» --clear \ --inputbox «Привет! Перед вами пример ввода даных\nВведите своё имя:» 16 51 2> $tempfile

А разве $DIALOG относится к стандартным переменным окружения?

А вообще само весёлое, это писать на TCL/TK, хуже чем на perl получается....

ASM ★★
()
Последнее исправление: ASM (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.