LINUX.ORG.RU

Переиздание книг Столярова по программированию

 


9

4

Скандально известный на ЛОРе Андрей Викторович Столяров выпустил новое издание своего учебного пособия «Программирование: введение в профессию» и обновил PDF-версии:
«Азы программирования»
«Системы и сети»
«Парадигмы»
В новом издании 4-томник стал 3-томником.

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

>>> Сайт автора

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Zhbert (всего исправлений: 3)
Ответ на: комментарий от aureliano15

То, что сегодня актуально, завтра может оказаться никому не нужным. Вспомните clipper, perl и многие другие когда-то популярные языки.

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

А много языков — можно, если больше нечем заняться, но не нужно.

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

scanf(«%s», &buf);

Преподавателю, который учит использовать scanf, вместо scanf_s надо руки отрывать или на пенсию отправлять - пусть живёт в своих 90х.

а в том, что он свой ‘0’ (т. е. 48) в переменной sub случайно затёр настоящим 0.

Придёт понимание как хранится «символ» в компе, заодно узнает что такое ASCII-таблица. Если же ему рано ещё знать эти премудрости - пусть использует atoi(), и на этом этапе использовать (‘2’-‘0’) == 2 - зло. Просто не надо нагружать тем, чего он ещё не знает. Сначала должно придти понимание кодировок (866, koi-8 и т.п.) и только потом пусть использует этот трюк - зато не нарвётся на грабли с символами выше 127.

Если студент учится на бухгалтера, то ему вообще не надо учить Паскаль или Си - пусть по курсу «программирование» изучает алгоритмы на встроенном 1С-языке.

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

По поводу количества разработчиков - в Расте их намного больше чем в D

А с gcc проблема просто в man power

Вот таки да ;-)

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

Если внимательно почитать что ты пишешь, то можно понять что если ту сторону которая близка к микроконтроллерам, железу, и некоторым системным вызовам ты еще знаешь, то о ядре у тебя представления временами диковатые. Это если читать не только эту тему.

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

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

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

А вот машина Тьюринга совсем не «одноразовая херня» -> это база, основа основ теории вычислимости.

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

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

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

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

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

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

Так я и не спорю. Как и с тем, что несмотря на бОльшее количество разработчиков в Расте, на нем так никто и не написал ничего подобного dlangui - а это проект одного человека, между прочим. Так что как по мне очевидный плюс D и очевидный минус Расту.

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

Я смотрю тебя совсем мама захвалила. Ссылки на твой код уровня ядра в студию. Посмотрим на его «хорошесть».

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

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

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

Много ты людей лично знаешь, которые используют чистый Си?

Самому приходится - в контроллёры тащить С++ ради 1000 строк кода нонсенс. А если не знаешь примеров - поищи по запросу «проекты на ардуино» - будешь удивлён.

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

на нем так никто и не написал ничего подобного dlangui

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

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

зато куча студентов и не только тащат в код на C++ malloc/free,

Значит так объяснил препод, раз студент не видит разницы между выделение_памяти+вызов_конструктора и просто выделение_памяти

Лечится просто - не принимать лабы по ООП с malloc/free.

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

Почему изучение программирования возможно с изучением паскаля (и всех его тонкостей, да), но невозможно с изучением сишечки?

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

Сперва представься, а потом посмотрим, достоин ли ты, чтобы я метал бисер.

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

На дельтаплане летал

Оно и видно. Ты еще скажи «с парашютом прыгал».

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

C++ допускает процедурное программирование. В первом семестре можно и без ООП обойтись.

Таким образом вы превращаете С++ в Си. К тому же часто некорректно. т.к. они не научатся инициализировать переменные заранее:

int i; /*тут он забывает обнулить i*/
i++;
while(i){/*что-то там*/}

В Си - получим бред, т.к. нет автоматической инициализации i нулём, Си++ инициализирует i в 0 и студент свою ошибку никогда не найдёт - код будет выполняться корректно.

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

Почему изучение программирования возможно с изучением паскаля (и всех его тонкостей, да), но невозможно с изучением сишечки?

Я не говорил, что невозможно. Возможно. По моему в изучении программирования, язык вторичен.

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

Всё это обёртки вокруг одних и тех же концепций: функции, ветвление, переменные, и набором примитивной арифметики.

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

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

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

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

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

Изучение Паскаля — не трата времени. Куда вы все спешите…

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

и асму и хаскелю и бейсику

ты непробиваемый. (для непробиваемых, уточню: это не что-то хорошее)

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

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

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

ты непробиваемый

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

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

Ну это на твоей памяти. А на моей памяти на Расте вообще ничего не написали. Серво вот мучали мучали (как ты говоришь - недо-браузер) и тот сливают. Так себе у тебя аргументы.

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

чтобы не тратить время

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

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

Вопрос остаётся только один, на сколько это распространённый юзкейс.

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

на переходы на личности не реагирую.

ты на протяжении всего треда истерично хамишь. в том числе и вот прямо сейчас.

твоя реакция не интересна, я прост новоприбывшим в тред показываю кто ты ))

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

ты общаешься с технофошыздом. там здравый смысл не в почете.

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

сливают проект Servo закрывают потому, что все переписанные на расте ответственные куски кода давно вошли в основную кодбазу Gecko.

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

трехклятый марк-даун.

сливают

проект Servo закрывают потому, что все переписанные на расте ответственные куски кода давно вошли в основную кодбазу Gecko.

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

Почему изучение программирования возможно с изучением паскаля (и всех его тонкостей, да), но невозможно с изучением сишечки?

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

хотя, ты наверняка скажешь, «Вирт нихрена не понимает, а знаю как нада»

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

Ну это на твоей памяти. А на моей памяти на Расте вообще ничего не написали. Серво вот мучали мучали (как ты говоришь - недо-браузер) и тот сливают. Так себе у тебя аргументы.

А при чём здесь Раст? Не написали ничего кроме недо-IDE потому что раст?

Лучшая IDE для D написана на паскале, почему?

Серво вполне себе дал плоды, в виде тех частей которые перенесены в firefox.

Для меня польза от раста уже есть, всякие мелкие утилитки типа lsd, как минимум мне нравятся. Я не жду ОС на расте написанную за два года, которая перевернёт рынок, такого не будет и дело не в расте.

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

Это было бы справедливо, если бы было куда спешить… Конечно если у тебя есть концепт-проект…

О чем ты говоришь вообще? Какой концепт? Какая идея? Речь идет об одной конкретной задаче: подготовить студента-программиста за ограниченное количество учебных часов. Программиста, а не околоайтишника, которому надо просто уметь алгоритмы рисовать, чтобы писать на каком-нибудь 1c потом или unreal script. Когда ты готовишь ПРОГРАММИСТА, то учебные часы надо тратить не на мертвые языки, а на изучение алгоритмов, живые языки и архитектуру.

Хватит уже долбиться в глаза и растекаться мыслью по древу. Я не говорю за околоайтишников, не говорю за самостоятельное изучение. Речь ТОЛЬКО ПРО СТУДЕНТОВ-ПРОГРАММИСТОВ.

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

ты непробиваемый

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

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

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

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

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

Поберегите глаза :) Там в его «сишечке» (ух, какое мерзкое слово) откуда то тип bool взялся

это он, наверное, про сиплюсплюшечку?

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

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

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

Неверно

Верно.

Это не так.

Так.

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

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

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

У меня первым языком тоже си был (к сожалению). Но я, нем не менее, поражаюсь, как можно в таком возрасте быть вот таким вот. Дело в человеке, не в языке.

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

Да треплются они. Большинство этих знатоков Си дальше хелловорда не пошли. Некоторые склепали пару сомнительных программ в узкой области и теперь занимаются гурованием. Ну вот сам посуди: главный болтун этого треда сидит здесь как на работе второй день. Практически без перерыва. Лает и лает - как собака, когда нормальному человеку трепаться - ну в лучшем случае зашел, посмотрел, убедился - ЛОР катится в помойку, ничего не изменилось. А эти «фанаты Си» как боты - пропагандисты, как будто смену здесь отрабатывают.

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

Мне нужно говорить тебе и тому бестолковому анонимусу, что bool является частью stdbool.h, введенном в стандарте C99, внезапно, описывающим именно сишечку? Емнип, это бекпортировано из плюсов, но теперь является ее частью.

Ой, сказал :)

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

Корреляция естественно есть.

Насчёт чистого программирования работал с 1999 по 2003й минус 1год армии именно по специальности. На первой работе вообще все на с++ сидели, только один из конструкторов что-то там в автокаде допиливал ручками. Потом 17 лет в качестве «паяльника» (ремонт и обслуживание) - старался не растерять навыки. Сейчас снова в программировании уже год. Поддержка толпы дельфи(паскаль)-легаси. Когда у начальника спросил - а можно на плюсах новьё писать - пиши - я сам с Си начинал - разберусь если что.

Испытательный срок был фактически пройдён легко - прога для программирования радиомодема через COM-порт. Я на Bilder-6, начальник на Delphi-7 - я опередил и по качеству и по скорости, а дело в том, что мне в плюсах оказалось гораздо легче разобраться с COM-портом, т.к. он работал не в совсем стандартном режиме. Плюс обработка потока именно в понятиях ASCII-Z строки без к-либо перекодирования/скрытой обработки спецсимволов и т.п.

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