LINUX.ORG.RU

Книги по Си, системному программированию и Computer Science

 , ,


7

5

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

Пробовал трехтомник Столярова. Некоторые моменты хорошо объяснены, но есть много воды и шизы автора вроде «ВЫ ОБЯЗАНЫ НАЗЫВАТЬ ДИРЕКТОРИИ ДИРЕКТОРИЯМИ, НЕ ПАПКАМИ, Я ЛИНУКСОИД!!!».

Еще у Столлмана недавняя книга норм, но она как мануал и достаточно сухая.

Поделитесь источниками знаний!

Arnold Robbins Linux Programming by Example

Не «мануал», не «сухая», примеры и объяснения на основе реальных юникс и гнутых проектов.

Знание сишечки ЕМНИП предполагается (что естественно), но вот с этим и можно учить, м.б. паралелльно с каким-то источником по самому языку.

mrjaggers
()
Последнее исправление: mrjaggers (всего исправлений: 1)

Можешь называть директории каталогами, разрешаю. А вот «папками» их называть фактически неверно, поскольку папки - это объекты в графическом интерфейсе, часто ничего общего с каталогами не имеющие. Например папка «Мой компьютер» в Windows или разделы реестра в графическом редакторе реестра вроде regedit.

И вообще это по-моему совершенно незначительный фактор. Чем тебе книга Столярова не нравится кроме этого? А если всё норм, то вот тебе и ответ.

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

Некоторые моменты хорошо объяснены, но есть много воды

недавняя книга норм, но она как мануал и достаточно сухая

Тебе не угодишь…

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

Чем тебе книга Столярова не нравится кроме этого?

Лично я не стал учиться по Столярову из двух соображений:

  1. Он не работает и не работал профессиональным программистом. А когда сидят и учат с дивана, как надо делать - это почти всегда дешёвое балабольство.

  2. Он проявляет фанатизм в ряде вещей, а фанатизм это помрачение рассудка, такой человек вряд ли научит чему-то толковому.

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

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

Ну и опять же, это всё не по существу материала книги. И русскоязычных альтернатив всё равно нет.

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

А фанатизм у него конечно местами есть, но хотя бы в хорошую сторону

«Фанатизмом в хорошую сторону» вымощена дорога в дурку.

это всё не по существу материала книги

Это именно по существу материала книг. Так сказать, мета-аргумент.

И русскоязычных альтернатив всё равно нет.

Мне хватает русских переводов всяких Праттов, Страуструпов и прочих.

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

Самый лучший учебник у Столярова. И приведённый пример не шиза

Учебник у Столярова шиза шизовая. Он вообще ничему полезному тебя научить не может, потому что программированиеи видел только издалека, полезных программ не писал в open source не участвует.

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

поскольку папки - это объекты в графическом интерфейсе

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

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

Учебник у Столярова шиза шизовая. Он вообще ничему полезному тебя научить не может, потому что программированиеи видел только издалека, полезных программ не писал в open source не участвует.

Ну, ОК, напиши где он конкретно неправ по твоему мнению. Вот желательно с цитатами.

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

Ну, ОК, напиши где он конкретно неправ по твоему мнению. Вот желательно с цитатами.

Я не смогу с цитатами, он обфусцировал текстовый слой и цитировать из его «учебника» невозможно. Нет, можно конечно «в параграфе #1 на странице 504 в третьем обцазе я не согласен…», но я не буду такой ерундой заниматься.

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

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

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

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

Я не хочу тратить на это свой шаббат, прости.

cumvillain
()

А хочется жести с системными вызовами.

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

Жести и так хватает, простого и хорошего мало.

alex0x08 ★★★
()

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

  1. C Programming Modern Approach, King
  2. Computer Systems: A Programmer’s Perspective, Bryant, O’Hallaron
  3. Сеть
    4.1. Общее введение
    4.1.1 Computer Networking: A top down approach, Kurose, Ross
    4.1.2 Computer Networks: A Systems Approach, Peterson, Davie
    4.2. Реализация
    4.2.1 TCP/IP Illustrated, Fall, Stevens
  4. Programming from the Ground Up, Barlett
  5. AOPS Intro to Counting & Probability и AOPS Intermediate Counting & Probability (для школьников)

На обучение каких ещё тем притязает Столяров в своём стотысяч пятьсот-томнике?

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

Чем тебе книга Столярова не нравится кроме этого?

Ты сам то её читал? Я вот попытался ознакомиться, чтобы иметь книгу, которую советовать на русском. Первые страниц 200, т.е. фактически, объём небольшой книги - это нытьё автора и ЖЖ о его проблемах, вроде настройки X.org и прочей ерунды, на которую вообще положить. Натурально как будто в Talks сидишь. Есть какие-то крупицы, но в таком количестве и с такой подачей, что вспоминаются слова Денниса Ритчи:

your book is a pudding stuffed with apposite observations, many well-conceived. Like excrement, it contains enough undigested nuggets of nutrition to sustain life for some. But it is not a tasty pie: it reeks too much of contempt and of envy.

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

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

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

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

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

Первые страниц 200, т.е. фактически, объём небольшой книги - это нытьё автора и ЖЖ о его проблемах, вроде настройки X.org и прочей ерунды, на которую вообще положить

231 страница — вводная часть, не программирование как таковое, а базовая информация о том, как устроен компьютер и тд, плюс базовые понятия комбинаторики, матлогики и тд. Не нравится ­— не читай. Книга предполагает, что читатель не имеет особого опыта использования линукса и даёт ещё пару советов на этот счёт.

И да, сам я читал, даже два раза, при выходе первого и при выходе второго издания.

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

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

Вроде на данный момент уже исправили. Но даже с тем багом писать вполне можно.

А поскольку автор не знает ничего кроме паскаля и C, то взять Golang и обучать людей на чем-то современном у него не тоже получается.

Зачем эта хрень нужна? И кстати у него ещё ассемблер, C++, Tcl/Tk, пролог и ещё что-то есть.

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

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

Где он команды всякие приводит - это норм, но там буквально несколько страниц. А вот его инструкции по настройке какого-то маргинального оконного менеджера - это вообще не пришей кобыле хвост. Сложно придумать что-то более иррелевантное для «читателя, который не имеет особого опыта использования Линукса».

базовые понятия комбинаторики, матлогики и тд.

Важно заметить, что делает он это в таком виде, что тем, кто знает, оно уже не нужно. А тем, кто не знает, по материалам Столярова они этому не научатся.

Не нравится ­— не читай.

Больше не буду.

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

А вот его инструкции по настройке какого-то маргинального оконного менеджера

А почему бы и нет? Для всяких KDE и Gnome инструкции по настройке особо и не нужны, там графические менюшки, но и оперативку они жрут как не в себя.

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

Важно заметить, что делает он это в таком виде, что тем, кто знает, оно уже не нужно. А тем, кто не знает, по материалам Столярова они этому не научатся.

Может и научится. А если нет, то будет понимать, что нужно поучить комбинаторику. А может им и основ хватит.

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

Вроде на данный момент уже исправили. Но даже с тем багом писать вполне можно.

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

Зачем эта хрень нужна?

Затем что Golang простой, понятный и актуальный язык, популярный как в open source, так и в коммерческой разработке.

В отличии от Tcl и Паскаля :)

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

Может научится, а может не научится. Как бы там ни было, если хочется одной книги обо всём, я бы рекомендовал CS:APP с предварительно освоенным C Programming Modern Approach (первые 17 параграфов).

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

Он не работает и не работал профессиональным программистом.

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

Он проявляет фанатизм в ряде вещей

А вот это - правда. Мы неоднократно с ним схлёстывались на ЛОРе (и я таки думаю что он меня в итоге забанил) именно по этому поводу. И часть посылов в его книгах попадает под категорию конкретно вредных советов (имхо). Но в целом и общем - Вам довольно трудно будет найти «введение» лучше.

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

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

Вообщем «есть два стула».. два подхода к обучению чего-либо.

Первый: много теории, затем простая практика с плавным погружением в современные реалии.

Второй: сборник готовых говнорецептов из серии «как стать космонавтом за 21 день» и обучение из серии «повторяй за сенсеем и не думай».

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

По отношению к ИТ и программированию это создание новых сложных продуктов: компиляторов, языков программирования, ОС, движков СУБД, кодеков и так далее. Даже для участия в подобном проекте никакого образования построенного на говнокурсах не хватит.

Автору в любом случае респект, потому что он делает, написать 300 страниц сложного технического текста - мягко говоря непросто.

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

Затем что Golang простой, понятный и актуальный язык, популярный как в open source, так и в коммерческой разработке.

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

Хоть какой-то реально нужный и популярный проект на нём можете назвать?

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

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

Скажи это автору CudaText @Alexey_Tor_ недавно выпустившему ещё один релиз своего редактора.

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

freepascal это единственная живая реализация, но там лютые невменозы вместо мейнтейнеров которые все поломали,

нет. Там нормальные авторы. Я слежу за ихним Гитом. Изменений в FPC мало но они вменяемые. Починки там, сям. Что-то большое добавляют редко - в этом году добавили (точнее им прислали патч) CPU Loongarch64.

@cumvillain

Alexey_Tor_
()
Последнее исправление: Alexey_Tor_ (всего исправлений: 4)

у Столярова и похлеще шиза в книгах есть. Директории и папки не самое страшное =)

и вокруг него секта собралась (реально секта).

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

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

Да я и здесь могу сказать — Слака сосёт^W^уважаемый @Alexey_Tor_! Писать проект на паскале — лютый невменоз. Если хочется, чтобы к него были может даже не только пользователи, а ещё может и мэйнтейнеры, не делайте так. Если их отсутствие — фича а не баг, то указывайте этот факт и ЯП во первых строках описания, а то вдруг кто поведется. Заранее спасибо.

t184256 ★★★★★
()