LINUX.ORG.RU

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

 , ,


24

11

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

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

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

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

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

★★★

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

Фактически, основной упор именно на математику делается - полагаю, это совсем не гарантирует способностей к программированию.

Всё хуже, это не гарантирует даже способностей к математике. Абитуриентская математика и настоящая математика — это два разных предмета.

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

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

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

В STL, конечно, тоже есть свои сложные структуры (rope, например), реализация которых требует заметных усилий, но речь тут вроде бы шла о списке и векторе — которые, в отличие от хеш-таблиц, обязаны стекать с пальцев со скоростью наколачивания кода и без напряжения головного мозга, на уровне спинномозговых рефлексов
средство, которое предназначено для хранения данных в программе, не имеет права быть закрытым ни в каком виде, то есть оно должно быть прозрачным и документированным с точностью до внутреннего устройства — чтобы, например, при отладке можно было заглянуть внутрь. То есть это не тот случай, когда детали реализации могут быть скрытыми.

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

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

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

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

cvs-255 ★★★★★
()
Ответ на: комментарий от suiseiseki_desu

В МГУ берут на основании результатов экзаменов по физике, математике, информатике, русскому языку и внутреннему экзамену по математике.

Чтобы программировать достаточно знать математику школьного уровня. В России высшая каста математиков, это те, кто занимается отвлечёнными понятиями. На прикладуху они смотрят с презрением. Российское образование излишне теоретизированно. Однажды мой преподаватель по дискретной математике, нам в упрёк, в сердцах бросил такую фразу: «вы уже, окончили школу, зачем вы тащите весь этот багаж с собой?» Этим он хотел сказать, «ребята давайте, по-другому взглянем на вещи».

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

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

Поясните пожалуйста вот эти слова. У олимпиадников Чувство Собственной Значимости доходит такого уровня, что они уже, считают себя умнее своего преподавателя. Так, что-ли?

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

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

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

Поясните пожалуйста вот эти слова. У олимпиадников Чувство Собственной Значимости доходит такого уровня, что они уже, считают себя умнее своего преподавателя. Так, что-ли?

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

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

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

Открыл первую ссылку kr.pdf в гугле раздел 22.2, там написано: с функцией можно делать две вещи, это либо вызывать, либо получить указатель на неё.

Судя по всему код должен быть таким:

int f(int x) { /* ... */ } 
int (*p)(int); 
/* ... */ 
p = f; (*p)(13);

В C было сделано иначе, и следовательно вы всегда пишите ахинею с точки зрения КР.

p=&f; /*вы копируете указатель на указатель, что противоречит логике*/
p(f); /*вы вызываете нечто не существующее*/

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

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

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

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

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

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

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

А почему «я-люблю-майкрософт» тут кукарекает а? Вроде книжка про UNIX.

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

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

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

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

p=&f; /*вы копируете указатель на указатель, что противоречит логике*/

Объясните, где там указатель на указатель? :-)

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

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

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

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

cvs-255 ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

даже если все модульно сделать, все равно это увеличивает количество кода и вносит путаницу

cvs-255 ★★★★★
()

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

в которых может находится некий объект (например байт)?

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

Видите ли, у автора горит от последних стандартов C и C++, причем он не прочь высказывать (а, зачастую, и навязывать) свое, никому не нужное, кроме него самого, мнение, не только в интернетах, но и в учебные часы, чем демонстрирует не только свой больной фанатизм, но и полную непедагогичность.
И, к сожалению, это отнюдь не единичный случай, ведь именно такие люди, неспособные работать в команде и принимать мнения других, какими бы они первоклассными специалистами не были, увы, и идут преподавать. Это проблема современного образования РФ.

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

p=&f; /*вы копируете указатель на указатель, что противоречит логике*/

Объясните, где там указатель на указатель? :-)

И остальные строки поста просьба объяснить. Написанное вами невозможно распарсить в нынешнем виде, связи с комментарием Croco также не прослеживается.

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

Видите ли, у автора горит от последних стандартов C и C++

От последних? C99, от которого у него горит, уже давно вышел, уже 2016 год на дворе. 17 лет прошло.

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

горстка безмозглых мразей собралась где-то там и за что-то проголосовала

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

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

Точнее, у Croco указатель на функцию вызывается с аргументом 13, а не с аргументом f.

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

Это проблема современного образования РФ.

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

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

Я это и имел ввиду, что у него горит от >=C99, который уже довольно старый, надо сказать

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

Ну относительно остального СНГ и некоторых стран современной Европы, образование в РФ, все же, на порядок выше. Так что, говорить о донности российского образования, живя при этом, к примеру, в Литве или Болгарии, это немного лицемерно.

comp00 ★★★★
()

Насчёт фона сайта присоединяюсь, сделайте его 18% серым, а не 30-35%. Слишком низкий контраст текста по сравнению с фоном получается, тяжело долго читать.

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

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

А если в команде одни посредственные личности и всякое быдло? Значит такую команду надо спустить в унитаз! А кому нужно мнение быдла. Тебе?

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

А если в команде одни посредственные личности и всякое быдло?

Ищи другую команду

А кому нужно мнение быдла. Тебе?

Если все вокруг тебя быдло, возможно быдло это ты.

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

Объясните, где там указатель на указатель? :-)

Ну скажем так, код ниже является валидным:

int (*p)(int);
int f(int x) { return x;}
int main(void) { 
	p=f;  ( p)(42);
	p=f;  (*p)(42);
	p=&f; ( p)(42);
	p=&f; (*p)(42);
	return 0;
}

Как следствие можно наделать массу идиотских выводов. Мой вариант, это: В КР сказано, что если имя функции входит не в позиции имени функции, то генерируется указатель на эту функцию, иными словами f является указателем на функцию с аналогичным именем, т.е. в p мы размещаем указатель на указатель. Для любого варианта можно высосать из пальца оправдание, либо его опровергнуть, а если так, проще взять наипростейший вариант и не насиловать мозги тому кто этот код будет читать:

p=f; p(42);
ASM ★★
()
Ответ на: комментарий от matumba

Аффтар дебил штоле?? Как можно учить АЗАМ на системе, которую даже программеры - и те не сразу осваивают?!!!!! Ну точно прожжёный линупсоид, решивший на халявных материалах подзаработать!

Я ещё до школы мог по инструкции запустить игрушку на спектруме или x86 (из NC). Набрать нужные команды, вставить вовремя кассету и тп. Любой (среднестатистический) ребёнок осилит консоль (на прикладном уровне) если ему это будет нужно, выучить родной разговорный язык значительно сложнее (у меня так до конца и не получилось.). В том числе он сможет осилить вместе с ls, dir, make ещё и git init, git add и git commit. Я вас уверяю ваша сложность это всего лишь ваши предубеждения.

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

И остальные строки поста просьба объяснить. Написанное вами невозможно распарсить в нынешнем виде, связи с комментарием Croco также не прослеживается.

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

ASM ★★
()

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

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

Но суть в том, что указателя на указатель, там все равно не будет (sic!)

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

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

испортишь если долго и много читать

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

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

А что, можно специализировать плюсовый std::list чтобы он например хранился в статически выделенной памяти с кастомным аллокатором, чтобы максимальное число элементов в двусвязном списке было 256 и вместо указателей использовался 8-битный беззнаковый char? Проблема с этими встроенными в плюсы структурами данных в том, что они недостаточно адаптируемые(специализируемые под конкретные задачи)

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

Российские академики и члены-корреспонденты не одобряют ваши критические замечания.

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

«Ну относительно остального СНГ и некоторых стран современной Европы, образование в РФ, все же, на порядок выше. Так что, говорить о донности российского образования, живя при этом, к примеру, в Литве или Болгарии, это немного лицемерно.»

Почему лицемерно? Из Литвы или Болгарии можно легко поехать учиться в любой вуз ЕС.

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

антошка, по всей видимости, и в России предлагает решить проблему «донности» образования окончательным закапыванием и отъездом в ЕСы

anonymous
()

Я решительно, решительно заявляю вам, что качество образования в России выше чем в Зимбабве.

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

Почему лицемерно? Из Литвы или Болгарии можно легко поехать учиться в любой вуз ЕС.

Из России сложно что ли?

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