LINUX.ORG.RU
ФорумTalks

Рецензия на книги А. В. Столярова

 , ,


1

3

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

Что важно, этот курс стал бесплатно доступен любому желающему в два клика, без необходимости проходить бюрократический фильтр и платить цену автомобиля за доступ к информации. Благодаря работе Столярова любой заинтересованный человек получает качественно отредактированный конспект лекций МГУ по программированию с пояснениями. По содержанию это +/- 1999 или 2000 год.

Абсолютно ничего нового, революционного, свежего Столяров не написал. К моменту публикации (2016 год) по темам, затронутым Столяровым, было опубликовано десятки книг, которые пережили множество изданий. Например, книги по TCP/IP от издательства O’Reilly к тому времени издавались уже 20 лет и имели по 7-8 улучшенных и дополненных изданий.

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

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

Но как разработчик, как автор, он не сделал ничего нового. И сам по себе является карикатурным образом админа 90-х, про которых писали юмористические рассказы в Fido. Попытка доказать всему честному люду, какой он великий инженер, через постройку велосипеда, развалившегося на первой кочке, — это типичный пример творчества тех лет. Рассказов про Винипуха и боды и записок Жены программиста.

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

Вывод: Столяров — это классический, можно сказать, эталонный системный администратор из 90-х. Человек, который отказался развиваться, отринул курсы повышения квалификации и навсегда остался в сладком возрасте 20 лет в рамках того давно ушедшего социума, его стереотипов и правил.

Книги Столярова — это книги 90-х, хотя они написаны через четверть века, в конце 2010-х. Это памятник эпохи начала массовой компьютеризации в России. Это надо понимать при работе с ними. Читая работы Столярова, надо давать «поправку на ветер», и всё будет хорошо.

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

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

Ответ на: комментарий от liksys

Еще раз: я транслирую опыт из индустрии

Нет, ты транслируешь свой ЛИЧНЫЙ опыт запросов некоторой части индустрии, а вовсе не ВСЕЙ индустрии. Твой Питон для микроконтроллеров не нужен, как и в Вэб. Плотно сидящей на Jave конторе нужен работник со знанием Java и её конкретных библиотек, то же нужно разработчикам приложений для Андроида.

множество людей в этом треде разделяют мое мнение.

Это которые не могут договориться, какой ЯП учить первым? Ассемблер, Си или С++?

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

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

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

Нет, ты транслируешь свой ЛИЧНЫЙ опыт запросов некоторой части индустрии, а вовсе не ВСЕЙ индустрии.

У меня есть опыт:

  • Архитектора;
  • Ядерщика;
  • Эмбеддера с линуксом;
  • Эмбеддера с контроллерами;
  • Разработки хайлоада;
  • Распределенных систем;
  • И да, веба.

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

Твой Питон для микроконтроллеров не нужен, как и в Вэб.

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

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

указатели в Си норм инструмент в руках уже квалифицированного прогера

иначе за счёт «перлеподобного» синтаксиса (ибо Си по факту вырос из построчного компилятора ибо синтаксис цикла for показывает что парсинг постоянно хакался заради компактности реализации транслятора) постоянная псевдопонимание *(a+off) a[off] off[a] ибо вот

вон в ТрубеПаскаля был пред обьявленный массив mem - и фсё тема указатели полностью усвоена

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

стоит начинать с схемы

но так как схема слишком скособочена

то с какаго нить варианта JS (Эйха вариант схемы) тока без js wat каким либо образом отрезанным - хз как

если же не пту а реально универ

то лисп очень близок к асму ибо car и cdr и cons - т.е интерпретатор примитивного лиспа можно в несколько кило на асме x86 слепить с простейшим марк и свап подтирателем памяти т.е как и реализация любого паскаль языка по силам любого (не)адекватного второкурсника

а на первом курсе можно учить используя лисп с постепенным показом и замещением реализации

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

проблема Питон-обучение что так как он очень большой(из за энтропии смыв при 3 версии не сильно уменьшил число корок вон Лутц ваще : https://learning-python.com/python-changes-2014-plus.html

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

https://learning-python.com/about-pp.html

https://learning-python.com/about-lp.html

https://learning-python.com/about-pyref.html

примечательно что array достаточно быстро упоминается в первых изданиях по питону - ща это прекратили :)

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

Python — оптимальный вариант для подготовки к Coding Interview и последующего его прохождения. Если цель — получить хорошее рабочее место, нужен Python.

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

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

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

Кнут не достаточно академичен?

Вы меня «срезать» пытаетесь? Вперёд, читайте Кнута на псевдокоде, потом поробуйте пройти собеседование на приличную вакансию.

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

Ну прочитать действительно недостаточно, надо еще усвоить. :)

Кстати, а Т. Кормен тоже не достаточно академичен?

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

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

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

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

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

Кстати, а Т. Кормен тоже не достаточно академичен?

Это пустой трёп.

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

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

Вы про литкод что-ли? Ну так тогда и Кнут и Кормен и даже Вирт в тему.

Это пустой трёп.

Неужели? Надеюсь речь не о зубрёжке? :)

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

Это пустой трёп. Неужели? Надеюсь речь не о зубрёжке? :)

Это речь о вашем поведение. Вы просто треплитесь, не пытаясь вникнуть в суть.

Кормен книга 1989 года, академическая классика. Кнут книга 1968 года.

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

Кнут не достаточно академичен?

А как сами то думаете?

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

кнут ващет конец 90ых по ныне

68 это издание 1 редакции да и то первые 2 главы

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

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

Как-то не читал Кнута и не собираюсь. Все эти знаменитые книги по алгоритмам избыточны. Используются форумными болтунами как непререкаемые авторитеты для «срезания» в спорах.

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

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

Кормен книга 1989 года, академическая классика.

Вообще-то 2013 или 2014 последняя редакция.

Кнут книга 1968 года.

Последний (крайний) том вышел в 2022г.

Это речь о вашем поведение. Вы просто треплитесь, не пытаясь вникнуть в суть.

Я высказываю своё обоснованное мнение, по обсуждаемой теме. И вполне себе аргументирую.

А как сами то думаете?

Я считаю что Кнут академичнее некуда — это реально настоящая наука, но не для всех. Ибо, требует обладание некоторыми базовыми знаниями, которые линксус презирает. Кормен проще, для начинающих. Поэтому я рекомендую именно Кормена и Вирта

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

Я считаю что Кнут академичнее некуда — это реально настоящая наука, но не для всех.

Ага. Вперёд. Удачи вам.

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

первая(https://cses.fi/book/index.php) годная - правда братья Халим более русской системе подготовки имхо подходят

Пецтольд который Код - хоть это не сs но хорошо раставляет акценты

ваще книжки вещь полезная например «история чтения в западном мире от античности до наших дней»

и как ни печально литкоденье иногда для рабкодателей красный флаг - и по очень социальным причинам - у Сирела Паркенсона об этом много

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

ну хз

ща(нескольк месяцев как) ухглубился каким был нарцисом Шокли(который толи сам толи не сам транзистор) так оказывается если бы не успехи химии пред wwII могли бы до сих пор за ламповыми вм общитывать всё

поэтому Пецтолд для вхождение в реальность хорош

что у всякой операции высокого уровня есть каскад переключений вчастности

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

ща(нескольк месяцев как) ухглубился каким был нарцисом Шокли(который толи сам толи не сам транзистор) так оказывается если бы не успехи химии пред wwII могли бы до сих пор за ламповыми вм общитывать всё

высокомерие в информатике измеряется в нанодейкстрах" - Алан Кей.

:)

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

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

Невозможно не согласиться.

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

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

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

Ну что ж, наука это не для всех.

Вы попробуйте с годик политкодить, прежде чем высокопарно рассуждать о науке. Литкод это еще даже не Competitive Programming, это так азы алгоритмов.

Хватит силы воли год проятянуть? Тогда к вам будет какое-то уважение. А пока это дешевая болтовня.

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

Невозможно не согласиться.

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

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

Здесь главное это чувство меры. Вреден как перфекционизм так и безолаберность.

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

Вы слишком категоричны. :) Скажите честно, зубрите?

Вы понимаете какое к вам отношение? Через год пинганите. Посмотрим, что вы сделали.

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

Это не очень хороший пример, ибо, если речь старшип, то тут слишком много безолаберности. Обратный пример это SLS, там патологический страх неудачи.

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

Фалькон делался абсолютно так же, как сейчас делается старшип. Просто за фальконом не следили так пристально, как следят за старшипом.

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

Я своё уже давно сделал. :) Не надо на меня проецировать свои проблемы. И страаашный литкод для меня совсем не страшен.

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

Читай мой первый пост в этом треде.

Читал. И другие. Есть ощущение, что срабатывает синдром «нет пророка в своем отечестве». Вот если бы это был западный автор ему бы хоть PL/1 простили в качестве первого языка программирования. Ну а что, Кнуту можно было целый вымышленный ассемблер MIX (сейчас MMIX) выдумать для своих книг (потом уже эмуляторы MIX даже появились). Вот уж, что максимально далеко в смысле практической применимости для устройства на работу!

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

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

А у Столярова классический академический подход с научить учиться. Некоторые детали такого подхода в его исполнении спорны, но в целом, я не думаю, чтобы человеку, освоившему его курс, было трудно при необходимости прочитать учебник по Питону, Го или Javascript.

Сам автор причем не рекомендует (хотя и не сильно против) для реального программирования использовать паскаль.

Хотя я бы вместо TCL в 3-м томе таки Питон бы давал для изучения. А может и вместо C++ даже.

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

В Паскале всех этих тонкостей нет. Есть четко массив и четко указатель. Или указатель на массив. Что педагогически проще. Да и в программировании, вообще-то тоже. Си - это в сущности язык, созданный хакерами (в хорошем смысле) для хакеров.

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

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

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

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

Есть у него в 3-м томе несколько глав про это. В контексте взаимодействия Tcl и Си. Хотя и маловато в целом.

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

Ну тогда и не надо чушь нести про безалаберность.

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

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

Читал. И другие. Есть ощущение, что срабатывает синдром «нет пророка в своем отечестве».

Значит плохо читал, ибо там всё аргументированно расписано.

Вот если бы это был западный автор ему бы хоть PL/1 простили в качестве первого языка программирования.

Не простили бы. Я предъявляю объективные претензии, такие же предъявлял бы и другому автору. Но мы обсуждаем конкретного пациента.

Ну а что, Кнуту можно было целый вымышленный ассемблер MIX (сейчас MMIX) выдумать для своих книг (потом уже эмуляторы MIX даже появились). Вот уж, что максимально далеко в смысле практической применимости для устройства на работу!

Давай не сравнивать столярова с Кнутом, это просто нелепо.

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

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

Другая проблема в ретроградности и отвергании технологий.

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

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

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

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

При чем тут бигтех?

Как вооще зарабатывать деньги программированием если следовать увещеваниям Столярова?

Советы Столярова молодым разработчикам:

  • JS - нельзя
  • Python - нельзя
  • systemd - нельзя
  • Docker - нельзя
  • STL - нельзя
  • Android - нельзя
  • Apple - нельзя
  • Leetcode - нельзя
  • Concurrency - нельзя

Про это говорит @liksys. Дайте ответ на способ заработка.

Или Столяров гонит конкретно. Или объясните как разабатывать без вышеозвученных технологий.

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

вот это то и странно

как тут (да и вообще) часто обсуждают Столярова

и почти никогда https://uneex.ru/LecturesCMC Курячего

тогда как второй и python и с и командная разработка и юниксоид

вот такая вот людская слава чем конфликтней перс тем популярней

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

и почти никогда https://uneex.ru/LecturesCMC Курячего

Потому что у Курячего нечего обсуждать. Он однозначно хороший преподаватель.

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

При этом Столяров разбирается в определенных областях программирования и умеет понятно об этом рассказывать.

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

Как вооще зарабатывать деньги программированием если следовать увещеваниям Столярова?

Книги его прочитать, задачи прорешать, советы чего нельзя пропустить мимо ушей =)

Или хотя бы критически переосмыслить. От Python можно сколько угодно плеваться, но он сейчас занял такое место, что обходиться без него или JS - это заведомо отсечь от себя чуть ли не все современные проекты, т.к. уже чуть ли не везде хотя бы частично, но используются. Или Java с .NET - которых по Столярову тоже вроде как сильно нежелательно.

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