LINUX.ORG.RU

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

 , ,


24

11

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

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

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

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

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

★★★

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

Язык Паскаль и начала программирования
Язык Паскаль

No Way…

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

То есть мне ради диска с сомнительным контентом внешний дисковод ещё покупать?

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

Не стыдно в 2016 году не знать худо-бедно международный стандарт де-факто язык общения между разработчиками?

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

А вот и англофаги закукарекали заместо Авроры.

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

Ни под винды, ни под Linux сейчас так просто ничего уже не сделать.

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

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

это лоР, здесь те кому не стыдно

anonymous
()

Поздравляю!

Обложка очень символична, со смыслом ;-)

Успехов в этом нужном и непростом деле!

Twissel ★★★★★
()

А редактора с корректорами совсем не было? Книги на эту тему всегда нужны, но ведь это же графоманский ужас.

Рекомендовать к прочтению этот кусок понятно чего рекомендовать - оказать медвежью услугу желающему изучить предмет.

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

anonymous
()

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

Алсо, всё время удивляюсь, что в России не знают про http://www.nand2tetris.org/. Это такой интерактивный туториал, когда тебе дают только логические элементы типа NAND, а ты из сам них собираешь сначала NOT, AND, OR и остальную логику, потом всякие сумматоры, регистры - и так постепенно строишь свой процессор со своей системой команд, а потом пишешь программы для него. Главный take away message - в компьютере нет никакой магии. Весь курс проходится как увлекательный квест за пару вечеров. После этого вопрос «что такое указатель, и зачем он нужен» отпадает сам собой. Указатель - это просто номер ячейки памяти. Потому что надо же к ней как-то обращаться. ВОТ ТАК БЛДЖАД надо учить людей указателям. А не абстрактным ^p и p^.

И в приличных универах так и учат: сначала Питон или что-то подобное - для обучения базовым принципам ПРОГРАММИРОВАНИЯ. Программирования блджад, а не указателедрочева. Студенту важно понять саму идею: программа - это инструкция для компьютера, которую он дословно выполняет. Детали реализации вторичны. Насиловать их на этом этапе паскалом или няшной сишечкой могут только мудаки и фашисты. Повторяю: МУДАКИ И ФАШИСТЫ. Когда студент научится программировать на уровне «сборка любых штук из готовых кубиков» - тогда приходит время изучение внутреннего устройства ЭВМ.

<тут ещё абзац на тему «ВМК: водовка и картофанчик», но чето уже лень писать, российское образование только ядерный напалм исправит>

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

Чересчур много эмоций и драматизма.

Похоже, что тебя кроме указателей еще и Демидовичем «насиловали» :-)

Дорогу осилит идущий.

строишь свой процессор со своей системой команд, а потом пишешь программы для него

Подразумевает, что наш нуб в программировании профи в проектировании компьютерной архитектуры.

Не менее оторвало от реальности, чем указатели в вакууме, тогда уже лучше ассемблерный дамп ;-)

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

Это тривиальная задача и я более чем уверен, что таких обёрток вагон и маленькая тележка.

Да вот как-то не очень-то с обёртками. Это в бейсике можно было написать одну строчку и нарисовать на экране окружность. Сейчас нужно кучку заклинаний сотворить, в любом случае малость посложнее Uses Graph; InitGraph в турпопаскале. А самое главное, не столь очевидных.

Или я просто не знаю. По мне самое простое - это glut

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

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

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

Да всё так. Отличная книга «от конкретного братана для правильных пацанов».

Ещё можно: «в юниксе пайпы решают, за базар отвечаю»

anonymous
()

Вопрос в лоб!

Если я никогда с програм-ем не сталкивался, эта книга как с нуля подойдёт?

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

Указатель - это просто номер ячейки памяти. Потому что надо же к ней как-то обращаться. ВОТ ТАК БЛДЖАД надо учить людей указателям. А не абстрактным ^p и p^.

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

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

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

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

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

в консоли у тебя тоже с(менить)д(директорию) вместо cd или с(оздать)дир(екторию) вместо mkdir?

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

А ведь действительно... Пойти алиасов штоле накрутить.

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

Сейчас нужно кучку заклинаний сотворить, в любом случае малость посложнее Uses Graph; InitGraph в турпопаскале. А самое главное, не столь очевидных.

Ну так это всё легко заворачивается в обёртки. InitGraph открывает сокет к X-серверу и создаёт окошко указанного размера; все остальные функции рисуют в этом окошке.

Legioner ★★★★★
()

А, это вы, тот самый Croco, который «абсолютно серьёзно» желал смертной казни коллективу разработчиков systemd? Вы не нужны, и ваша книга тоже.

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

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

и Ильфа и Петрова читаешь на английском?

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

Указатель - это просто номер ячейки памяти.

Именно так и учат, не понимаю твоей претензии.

И в приличных универах так и учат: сначала Питон или что-то подобное - для обучения базовым принципам ПРОГРАММИРОВАНИЯ.

Мне так химию в школе преподавали - рассказывали об абстрактных реакциях, раздраженно отмахиваясь от вопросов вида «Какие механизмы в основе?» и «Откуда это все следует?», заставляя поглощать информацию как есть. Когда я спустя год все-таки узнал подноготную из курса физики, мое обучение химии было загублено напрочь, а учителю по лицу хотелось струей урины пройтись. Хотя все детство биологом-медиком стать хотел, зубрил прилежно.

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

Ну так это всё легко заворачивается в обёртки. InitGraph открывает сокет к X-серверу и создаёт окошко указанного размера; все остальные функции рисуют в этом окошке.

Что-то я не в курсе таких обёрток, хотя никто их не мешает написать. Видимо просто кому нужно быстро делает сам для себя.

Но при этом теряется понимание, хотя бы примерное, что внутри происходит. В случае MS-DOS и TP там фактически были обёртки непосредственно над аппаратными функциями видеоадаптера. egavga.bgi был фактически драйвером. А были ещё и прерывания ms-dos. И даже напрямую управлять видеоплатой было не слишком сложно. В текстовом режиме так вообще почти элементарно, но графический был не слишком сложным. Не для начинающих пожалуй, но всё-таки.

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

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

Мне так химию в школе преподавали - рассказывали об абстрактных реакциях, раздраженно отмахиваясь от вопросов вида «Какие механизмы в основе?» и «Откуда это все следует?», заставляя поглощать информацию как есть.

У вас в школе была квантовая физика?

Алсо, если у программиста-первокурсника возникают вопросы, он не плачет, а открывает интернет и получает ответы. Это очень круто, если человек захочет узнать, как там Питон устроен изнутри, как работает парсер, интерпретатор и т. д.

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

У вас в школе была квантовая физика?

Ну не квантовая, но микромир изучали.

Алсо, если у программиста-первокурсника возникают вопросы, он не плачет, а открывает интернет и получает ответы.

А можно по программе рассказать ему как там Питон устроен изнутри и не сношать голову абстракциями на пустом месте.

GoodPerson
()

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

Автор молится на консоль, говоря что GUI это (ещё раз простите) говно. А как-же 3d моделирование, аналитика, рисование, игры, да и тот-же браузер с онлайн игрушечками и рекламой? Если GUI в 80% случаев менее удобно, то зачем голословно заявлять, что все GUI (очередной раз простите) говно?

Иными словами после прочтения книги, автор загонит наивного читателя в консоль, который будет знать только императивную парадигму, а всё остальное будет считать злом. И ровно так-же читатель будет писать очередной Makefile и ощущать, что его где-то (возможно опять) н^w обманули. Как если бы он писал даймона на GTK, программировал БД в exel на VBA и рисовал графики в winamp эквалайзере...

Хороший игрок в nethack знает как убить монстра, программист БД знает как правильно составить запрос. Всё это потому что они в состоянии открыть и разобраться в коде на C (в общем случае разобраться в том, как работает их инструмент). Только всякие «дегенераты» упёрто верят в то, что кроме C, python, RoR им ничего не нужно, забивают гвозди микроскопом, либо делают умный дом на K155 серии. С другой стороны есть такое понятие как markettime, что часто делает этих «дегенератов» вполне умными людьми....

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

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

А можно по программе рассказать ему как там Питон устроен изнутри и не сношать голову абстракциями на пустом месте.

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

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

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

Ответы должны идти на уточняющие и косвенные вопросы, если же вопросы задаются непосредственно с целью понять предмет, то очевидно, что преподавать надо как-то по-другому.

GoodPerson
()

Зачётная обложка.

Deleted
()

Азы программирования

Дописав во втором томе главу про ncurses, а задно добавив небольшой параграф в ассемблерной части и довольно пространную главу в части про Си, посвящённые оформлению кода, обнаружил, что объём рукописи второго тома, если включать в неё все исходно предполагавшиеся части, перевалил за 600 страниц (вот только что получилось 618), при том что это ещё далеко не всё: нужно предисловие к тому, нужен пусть и небольшой, но всё же параграф про termios в части про операционки

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

буду рад, если окажется, что ошибаюсь

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

Вот потому российская педагогика и отстала на 50 лет.

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

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

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

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

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

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

В случае MS-DOS и TP там фактически были обёртки непосредственно над аппаратными функциями видеоадаптера. egavga.bgi был фактически драйвером.

Не особо они обёртками были. Линии, круги рисовались алгоритмами паскаля. Я получал доступ к аппаратным функциям видеоадаптера, собственно это делалось через ассемблер, и потом с пикселями работа шла через прямой доступ к видеопамяти. Скорость была на порядки выше, чем через модуль Graph. Graph это именно простой в использовании и обучении но неприменимый для написания реальных игр модуль.

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

Тоже почитал - открываешь учебник по программированию, а там первые 200 страниц рассказывают про счётные и несчётные бесконечные множества (и диагонализацю), примитивно-рекурсивные и частично-рекурсивные функции, Entscheidungsproblem, тезис Чёрча-Тюринга, теорию информации... обожаю русское образование.

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

Встречал мнение, что указатели - это на чём проверяется есть у человека программистское мышление или нет.

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

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

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

Ну что вы, настоящий программист тот — кто осилил натянуть html шаблон на жумлу.

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

Встречал мнение, что указатели - это на чём проверяется есть у человека программистское мышление или нет.

Вообще, очень перспективное высказывание. Можно вместо «указатели» подставлять, например, «анафорические лямбды» или «ковариантные функторы» - смысл не изменится.

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

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

Дело в том, что указатели вообще мало кто из авторов книг доходчиво объясняет.

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

всё время удивляюсь, что в России не знают про *** ***

1. Запятая не нужна 2. man шовинизм

везде без мыла лезут со своей АГП, потом удивляются почему их нигде не любят, хуже веганов, честноe слово.

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

Отчего же, ознакомился с программой обучения — на вид неплохо.

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

Что ты на это скажешь?

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

Это интересно. Несмотря на то, что тема абсолютно не про systemd и в обсуждениях ни разу не встречается упоминание о systemd, это не повод, чтобы у systemd-сектанта не бомбануло)))

Уважаемый, Вам по теме сказать есть чего? Возможно, Вы подробно ознакомились с трудом автора и Вам есть что ему предметно возразить? С нетерпением ждём от Вас конструктивных замечаний по поводу книги.

densss ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.