LINUX.ORG.RU

Книга для начинающих программистов, ориентированная на Linux

 , ,


19

5

На сайте А.В.Столярова продолжается сбор средств на написание и последующее издание книги «Программирование: введение в профессию».

Автор проекта уже известен публике по своим книгам Программирование на языке ассемблера NASM для ОС Unix, Сверстай диплом красиво: LaTeX за три дня и другими. Электронные версии всех своих книг автор сразу после выхода бумажного издания выкладывает на сайт, считая это принципиальной позицией.

Книга, задуманная Столяровым в этот раз, должна стать руководством для начинающих, ориентированным на *nix-системы (с использованием командной строки в качестве основополагающего принципа при обучении) и покрывающим при этом предмет от нулевого уровня (школьной информатики) до ООП и парадигм программирования; структура книги приблизительно соответствует последовательности программистских курсов на факультете ВМК МГУ, но отличается от программы ВМК наличием общей платформы (*nix), полным исключением заведомо мёртвых инструментов вроде всё ещё применяющихся на ВМК Турбо-Паскаля и ассемблера MASM для MSDOS, а также существенно иначе расставленными акцентами. Примерный план книги представлен здесь, а с оглавлением неоконченной рукописи, уже включающей три части из предполагающихся семи или восьми — здесь.

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

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

Даже без дополнительных глав ожидаемый объём книги составляет порядка 1000 страниц; автор планирует уложиться в 500 рабочих часов, для выделения которых необходимо на некоторое время отказаться от подработок. Кроме того, издание книги в бумаге потребует серьёзных расходов, а сотрудничество с издателями на их условиях означало бы невозможность распространения (по крайней мере, открытого) её электронной версии. Автор предпочёл объявить о сборе средств.

К настоящему моменту завершены три из четырёх частей, которые предполагалось написать с нуля; автор продолжает работу над последней из этих частей, посвящённой начальным навыкам программирования (с использованием Free Pascal в качестве учебного пособия); кроме того, в книгу должен после переработки войти материал из пособий, изданных ранее, образовав оставшиеся четыре части. Поддержать проект можно здесь; для доноров предусмотрены разнообразные плюшки.

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

★★★

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

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

Указатель это ярлык на переменную, преобразуемый в неё с помощью специальных операции.

Гы. А какие такие операции нужны в С для

int f;
int* zyu=&f;
на, скажем i8051/Atmega** или i8086?

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

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

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

Ок, ясно, инженеры гугла криворукие обезьяны

Долгонько до тебя это доходило, дружище

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

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

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

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

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

заблуждение считать что сверху только приказывают.

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

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

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

реификация государства и вообще замещением им надмирного светской тотальностью приводит к кондиционированию обывателя идеей «всё в руках вышестоящих»

qulinxao ★★☆
()
Ответ на: Про указатели от Croco

Надо объяснять на примере asm (не 8086, а какого-нибудь 8051), тогда не будет путаницы между указателем (XL:XH) и его значением (ячейкой памяти).

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

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

И я про то же - глупой толпой управлять легче (америкосский принцип). Есть базовое поведение, не нарушающее систему(в школе вбивается в головы УК и ГК больше чем математика), дабы электорат не перегрыз друг-другу глотки, а вот выступить против «системы» или её части толпа уже не может:

настоящих буйных мало вот и нету вожаков (c) Высоцкий В.С.

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

Ну да, сегментирование 86го я зря приплёл.

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

Честно говоря, я посчитал это за троллинг :-D

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

Это, увы, опыт.
Пруфы попыток изменить/отменить «нововведения» ради прибыли «приближенных»:
http://kkmcom.ru/index.php/topic,3341.msg39660/topicseen.html#new
http://www.kkm.info/myboard/viewthread.php?number=20181&PostsPerPage=20
http://dias-k.ru/blog/?p=1790&cpage=1
Толку от наших криков будет 0.

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

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

drfaust ★★★★★
()
Ответ на: сайт и книжки от ikostas

Писать книжки - это ТРУД, поэтому категорически НУЖНО. Хотя бы для тех, кто не преодолел ещё языковой барьер. Ну или не нашёл стимула его преодолеть. Может, хоть эта книжка послужит таким стимулом.

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

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

нужно учиться у Запада, догонять

А чего это у тебя запад с большой буквы? Про догонялки расскажи мне и моим коллегам, закончившим, в своё время, МИФИ и, имеющим сейчас контракт, на строительство АЭС на 6000000000000 рублей.

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

Затем, что Паскаль приучает к культуре структурного программирования.

Зачем приучать к культуре(!) структурного(!) программирования? Приучать нужно думать, логически рассуждать, порождать новые идеи, мыслить как можно более абстрактно. Посмотри на курсы MIT, что-ли, прежде чем умничать. Взращивать идиотов не нужно, так что давайдосвидания.

Вот на следующем шаге можно и за Си браться.

Любой проф. программист, а не балбес, обязан знать Си.

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

порождать новые идеи, мыслить как можно более абстрактно.

Ты сейчас про сраные языки программирования или про медитации на горах Тибета? Я недопонял.

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

Функциональное программирование (тот же лисп) и ООП это две абсолютно разные вещи. И при изучении лиспа действительно рвётся шаблон в мозгу, в въедешь всё просто и логично оказывается. Это два разных инструмента для решения разных классов задач.

Тов. шариков, слив засчитан. То, что ты не знаешь Лисп - это уже очевидно. Может ты и пытался на него смотреть, но сути не понял. Запомни, ООП в Лиспе применяется чуть более чем всегда. ООП дополняет ФП. И хорошо известная фраза в узких кругах, кто Лисп действительно знает, звучит примерно так: «если вы не применяете CLOS, то вы не используете Lisp». Ваша братия даже этого понять не может, зато некоторые экземпляры смеют рассуждать о Лиспе с позиции экспертов. :-) Давайдосвидания.

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

При этом сами K&R пишут:

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

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

grem ★★★★★
()

Пользуясь случаем, хочу поблагодарить вас за написанные и выложенные в сеть книги.
В особенности за Сверстай диплом красиво: LaTeX за три дня, после основ которой, книга EvgueniКомпьютерная типография LaTeX (книга 2008) стала более понятным помощником при работе с LaTeX.

NaiLi ★★
()

Надо написать книгу: «Как стать рОзрОботчиком за 21 день».

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

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

З.Ы. Если тебе не ведамо, то сейчас и на асме пытаются ООП сделать :D , но это же не смалталк (фактически родоначальник ООП, хотя некотыре могут указать и на симулу)

drfaust ★★★★★
()
Ответ на: Про указатели от Croco

УКАЗАТЕЛИ В C/C++ СТРАШНЫ

Про указатели

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

В C и C++ с указателями вообще засада. Засада в синтаксисе. Вот как объяснить человеку, почему можно писать так и так:

int *a; и int* a;

Объяснить можно только одним способом: пиши так как хочешь, лексический анализатор и то и то поймет одинаково. А почему одинаково? Да хз.

Как объяснить человеку, что тип «указатель на int» есть, но декларации такого типа нет. Не зная этого ученик начинает писать:

int* a, b;

и думает, что описал два указателя. Фиг там. a - это указатель, а b - это просто int-переменная.

А теперь объясните ученику чем ссылка отличается от указателя (мне, как программисту, который начинал с Ассемблера, это до сих пор непонятно).

Добавляем сюда разыменовывание указателей, которое почему-то синтаксически выглядит как декларация указателя, плюсуем еще и неявное содержание указателя в имени массива, и получаем, что проблема-то не в указателях, а в ублюдочном синтаксисе C/C++.

Xintrea ★★★★★
()
Ответ на: Про краудфандинговые площадки от Croco

работать при отключённом JS они все как один категорически отказываются

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

http://planeta.ru/welcome/private-info.html пункт 3, подпункты 3.4--3.9. За такое надо по меньшей мере четвертовать

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

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

selivan ★★★
()
Ответ на: УКАЗАТЕЛИ В C/C++ СТРАШНЫ от Xintrea

Это верно. Из-за указателей и ASCIIZ-строк большинство ошибок. Но зато какие возможности они дают ;) Если пишешь на С активно используя указатели - чувствуешь, что у тебя в руках мощь АСМа.

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

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

шариков, ты и есть шариков. Ты заявил, что ООП и ФП применяются для разных задач. Из этого следует, что ты Лиспа не знаешь и не понимаешь даже что это такое.

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

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

anonymous
()
Ответ на: УКАЗАТЕЛИ В C/C++ СТРАШНЫ от Xintrea

Добавляем сюда разыменовывание указателей, которое почему-то синтаксически выглядит как декларация указателя, плюсуем еще и неявное содержание указателя в имени массива, и получаем, что проблема-то не в указателях, а в ублюдочном синтаксисе C/C++.

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

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

Ты заявил, что ООП и ФП применяются для разных задач. Из этого следует, что ты Лиспа не знаешь и не понимаешь даже что это такое.

То-то я смотрю почти все ДЕ на лиспе написаны, а не на С++

Слив засчитан уже во второй раз. В качестве функционального стоило привести Haskell. Лисп - не является ярким примером функционального.

Хаскель? Сколько лет этому эксперименту?
А лисп - когда он родился и кокда в него начали встраивать CLOS? Лисп -первый язык функц. программирования с чистокровными лямбда-вычислениями. Появился, когда и понятия не было об ООП

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

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

То-то я смотрю почти все ДЕ на лиспе написаны, а не на С++

Все шариковы смотрят почти всегда одинаково. Это всё от кругозора.

А лисп - когда он родился и кокда в него начали встраивать CLOS? Лисп -первый язык функц. программирования с чистокровными лямбда-вычислениями. Появился, когда и понятия не было об ООП

По сараю когда появилось ООП, когда появилось ФП. Тебе по-русски сказано, что ООП и ФП дополняют друг друга, а не заменяют. И программисты на Лиспе так и поступают.

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

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

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

Одна софистика и словоблудие, потму как анону возразить-то нечего.

И программисты на Лиспе так и поступают

Почитай C++11 - там, как ни странно тоже есть лябды.
То, что сейчас пытаются в «узкие» языки впихнуть невпихуемое - это видать мода.
И ты эту моду выставляешь как данность и необходимость.
Если понадобились лямбды в С++ - не легче ли сбиндить с любым ЯФП, который умеет их на порядок лучше?
Почему бы не воткнуть в лисп предикативный пролог?

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

Одна софистика и словоблудие, потму как анону возразить-то нечего.

drfaust ★★★★★
()
Ответ на: УКАЗАТЕЛИ В C/C++ СТРАШНЫ от Xintrea

Как объяснить человеку, что тип «указатель на int» есть, но декларации такого типа нет.

Да очень просто. Рассказать ему про то, что тип кроме direct части (C99 6.7.5) имеет indirect (и да, это не только *, ещё [] и ()), объяснить, что это связано с тем, что indirect может включать в себя другие indirect (напр., указатель на указатель и массив указателей). Что indirect часть описывается около имени переменной (если это не абстрактный декларатор, конечно), а direct в начале декларации. Это всё можно подкрепить сорцами GCC или, что лучше, clang'а, где все эти моменты наглядно парсятся (ибо парсят через RDP).

loyd
()

Программирование на языке ассемблера NASM для ОС Unix,

затягивает, годная книжка.

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

могу я писать годные книги или не могу.

Вы пишите методички. Для студентов. Начните уже писать годные книги.

rupert ★★★★★
()

Почитал немного сайт и комменты...

Автор пишет про «уэбдизигнеров» и что их всех «убивать надо».

При этом собрал свой сайт в оттенках серого (да не, эт то не страшно) и использует шрифт цветов #f00 и #0f0.

thunderamur
()

Как-то бесчестно скрывать тот факт, что книгу про платить должен МГУ или где там преподаёт автор. А остальной аудитории, тем же пхп-шникам, коих ооочень много нужен реально полезный инструмент — си. Или взять node.is, плагины почти все на сях.

Как там говорится, кто хочет, тот ищет возможности, кто не хочет — ищет причины. Ну, автор своими причинами дал понять, что книга не для аудитории, которая ему её оплатил, а для студентов, которым ВУЗ не может про платить написание современного учебника.

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

Зачем кого-то учить программировать на ЭТОМ?

Убивать надо тех кто учит программировать на конкретном ЯП. Нужно учить составлять алгоритмы, правильно проектировать и использовать АТД и т.д. FreePascal хорошо подходит для этого.

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