LINUX.ORG.RU

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

 , ,


24

11

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

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

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

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

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

★★★

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

Если там алгоритмы, то явно стоит прочесть, у меня вопрос по-поводу Паскаля: стоит его изучить?(вроде как и рабочие проекты на нем есть, и даже платят за это)

art_metr
()

Для всех

Знаете, что такое извращение при обучении программированию?

Это когда учат на ФОРТРАНЕ командами ассемблера вызывать функции WinAPI будущих бухгалтеров.

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

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

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

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

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

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

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

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

у меня вопрос по-поводу Паскаля: стоит его изучить?

Шедевральная игра на Паскале doomrl, другой пользы от языка я не встречал.

Реально лучше начать с ruby, python или basic, потом через силу заставить себя писать на Haskell, дальше любой assembler. После этого уже сами уйдёе в C, C++, java либо туда, где больше платят...

В GUI сразу лучше не лесть, автор прав, лучше начать с консольных приложений.

P.S. Паскаля в этом совете нет, делайте выводы.

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

От убожества паскала хотелось разбить клавиатуру об голову (преподавателя). Это как будто ты хочешь стать настоящим плотником, а у тебя отбирают инструменты и дают игрушечный пластмассовый молоточек и картонную пилу, разрисованную цветочками. No fun allowed.

Если давали классический виртовский паскаль - может быть. Но даже в трубопаскале чего такого особо убогого было? Модульность, причём настоящая, была. ООП был. Нетипизированные указатели и процедурные типы (которых не было в классическом) были.

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

Зачем приучать писать тесты, когда достаточно не отключать мозг во время написания кода?

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

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

Зачем приучать писать тесты, когда достаточно не отключать мозг во время написания кода?

Царь, перелогинься.

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


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

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

Какое лицемерие... Он меня гнобит несколько лет уже. Поинтересуйся у него, за что он банил человека под никами Gicdillax, i1atf, Flame_Provocator, Hose, What_nick, Adept_of_shreedom, FriendlyFire и прочими (это далеко не все, те что удалось вспомнить). Где то пламя, которое он якобы спровоцировал? Пламя из пердака самого Пинкбайта не считается, в этом случае это уже личная неприязнь и есть.

#qwerty

anonymous
()

Пробежал глазами. Выгрядит очень и очень не плохо. Буду читать.

kristall ★★
()

Ждем том второй «Программирование: вон из профессии»

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

сразу писать юнит тесты

ну написал ты свой юнит-тест и сразу выяснил, что фрагмент не работает так как нужно (а предыдущего работающего варианта нет и ещё не было). И тут мы ... о нет! приступаем к отладке.

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

у меня вопрос по-поводу Паскаля

///стоит его изучить?

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

Сам по себе Паскаль весьма простой и не выносит мозг так, как Си, Хаскель или ассемблер для ЭВМ СМ.

Так, для сравнения, некогда первым и, считай, единственным языком программирования был Фортран, потому очень долго именно с Фортрана начиналось и им же заканчивалось изучение программирования. Так вот на Фортране НЕВОЗМОЖНО написать программу с нелинейным алгоритмом без блок-схемы. Для Паскаля блок-схема не нужна в принципе.

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

«4 ГБ памяти хватит всем».


Это на процесс .Если на систему есть костыль PAE =48 гб озу ,в случае 4 и более процессоров можно включить еще одно расширение что дает доступ к 128 гб озу .
И вообще 32-64 бита бессмысленный спор из за костыльности интел архитектуры ,в кооторой специально ограничили доступ к 8 регистрам общего назначения и доступ к командам старше SSE2 .У спарс процессоров похрен 32 или 64 бита ,доступ ко всей памяти ,непривилегированным командам и регистрам есть у 32 битной программы .Можно было для медленных устройств спокойно в 64 битной Солярис запустить 32 разрядный драйвер .У ARM для экономии памяти вообще приколотили 16 разрядный подрежим и нечего ,не вопят что устарело .

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

<Так вот на Фортране НЕВОЗМОЖНО написать программу с нелинейным алгоритмом без блок-схемы. Для Паскаля блок-схема не нужна в принципе.

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

anonymous
()

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

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

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

P.S. Паскаль ужасен

instant
()
Ответ на: у меня вопрос по-поводу Паскаля от mister_VA

на Фортране НЕВОЗМОЖНО написать программу с нелинейным алгоритмом без блок-схемы

Ты о Фортране-77 или Фортране-90 и более поздних стандартах?

grem ★★★★★
()
Ответ на: у меня вопрос по-поводу Паскаля от mister_VA

Видимо поэтому его преподают - изучать алгоритмы. Нет смысла «изобритать» алгоритмы, которые давно придуманы. И не важно на каком ЯО творить.

art_metr
()

ОС Unix (в основном Linux)

«Язык Паскаль и начала программирования»

Но почему такой выбор?

языке ассемблера NASM для ОС Unix

я так понимаю, это для x86(-64) ?

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

У ARM для экономии памяти вообще приколотили 16 разрядный подрежим
подробности?


В гугле забанили ? Ну ладно процетирую :
В 1994 году ARM выпустила настоящий бестселлер — процессорное ядро ARM7. В этом 32-разрядном процессоре инженеры ARM применили уникальную технологию, позволяющую существенно сократить объем кода выполняющейся на процессоре программы, в сравнении с кодом на стандартной для архитектуры ARM системе команд. Эта технология получила название Thumb, что в вольном переводе означает «мальчик-с-пальчик».
Каждая 32-разрядная инструкция в коде программы, выполняемой на процессоре ARM, предварительно сжимается компилятором, и на вход процессора поступает набор 16-разрядных Thumb-инструкций. В процессе выполнения программы Thumb-инструкции декомпрессируются специальным модулем процессора, разворачиваясь в полноценные ARM-команды, которые и обрабатываются ядром. При этом программа может содержать как сжатые Thumb-инструкции, так и обычные команды, что позволяет разработчику программы принимать решение, какие из программных модулей сжимать, а какие оставить развернутыми, соблюдая тем самым компромисс между производительностью и плотностью упаковки кода.

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

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

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

Вы не понимаете духа и сути экосистемы опенсорс и линупса

в этом нет Вашей вины, но выглядит всё это предельно гротескно

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

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

Если для «программиста» выучить новый ЯП - серьёзная трудность, то нихрена это не программист.

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

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

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

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

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

Сначала человека надо познакомить с концепцие императивного программирования. Научить выполнять элементарные операции в этой парадигме. Приучить к идее «я отдаю приказы, компьютер их дословно выполняет» вместо привитой с детства смартфонами идеи «это такая красивая игрушка с МАГИЕЙ внутри».

А вы тут про юнит-тесты и контроль версий... Эх!

Уровню, о котором вы говорите, соответствует, например «Программист-прагматик: путь от подмастерья к мастеру». Отличная книга, кстати. Рекомендую прочитать даже тем, кто уже давно сам не «подмастерье».

А у сабжевой книги задача совсем другая.

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

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

Алсо, адекват напоминает, что в 21 веке адресного пространства на 4GB на процесс категорически не хватает на практике.

А то, что вы описали, - это не адекват.

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

Поменять цветовую гамму - и нормально сайт будет выглядеть.

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

Алсо, адекват напоминает, что в 21 веке адресного пространства на 4GB на процесс категорически не хватает на практике.

Практика быдлокодеров меня не особо интересует.

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

x86-64 в нынешних реалиях использовать нужно. Ну какой тогда смысл брать компьютер с оперативной памятью более 4Gb? Да и обработка больших объёмов данных может затребовать гораздо больше памяти - факт.

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

TRVE-хайлоад ингинере с парком суперкомпьютеров? Ну-ну...

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

x86-64 в нынешних реалиях использовать нужно.

Зачем? На реальных задачах выигрыш если и есть, то чисто символический.

Ну какой тогда смысл брать компьютер с оперативной памятью более 4Gb?

Перед посонами похвастаться количеством памяти и операционкой с модной разрядностью.

Да и обработка больших объёмов данных может затребовать гораздо больше памяти - факт.

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

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

Зачем? На реальных задачах выигрыш если и есть, то чисто символический.

«На реальных задачах» - это на каких? Фурифокс на локалхосте запускать?

Перед посонами похвастаться количеством памяти и операционкой с модной разрядностью.

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

Вот придёт такой «специалист» с промытыми мозгами на работу устраиваться, а там 64 бита везде.

— Нихачюнибуду!
— Ну и пшел вон.

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

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

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

А у вас, похоже, сплошные лозунги вместо знаний.

Чья бы корова мычала. Пока с твоей стороны только фанбойский треп фрустрирующего модника и убогие попытки ad hominem. А у меня что? У меня железобетонные данные тестов: https://www.phoronix.com/scan.php?page=article&item=ubuntu-1604-3264&...

Теперь беги к мамочке и похлюпай о том, как твое фанбойство тесты-то пообломали.

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

Уважаемый, да вы чудак.

Где я утверждал, что x86_64 имеет преимущество в производительности? Извольте процитировать или признать, что вы трепло.

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

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

А ты ожидал, что фанат Леннарта «Кровавого» Поцеринга будет адекватно рассуждать?

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

Quasar ★★★★★
()

Арт на обложке дичайше одобряю.

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

А после того как студент соорудит на python/php/etc. свою программку и она будет работать и «ОН ЗАБЬЕТ НА НИЖЕ ЛЕЖАЩИЙ СЛОЙ - ИБО НЕФИГ И ТАК СОЙДЕТ» ?

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

Теперь беги к мамочке и похлюпай о том, как твое фанбойство тесты-то пообломали.

Есть задачи где 64 бита быстрее ,не спорю (графика ,тяжелые базы данных ,некоторые типы кодирования-декодирования ,крупноблочные алгоритмы сжатие) .Но в основном рост быстродействия в 64 бита за счет дополнительных 8 штук регистров общего назначения недоступные для 32 битным программ .Кроме того расширения старше SSE2 недоступны ,а в SSE3 дополнительно появилось 8 регистров с плавящей запятой ,в sse4 эти регистры стали 512 битными с возможностью векторных операций .Вот и получается этот выигрыш .Я прочитав про другие архитектуры процессоров был удивлен как костыльно сделан 64 бита у Интеловской архитектуры , у некоторых типов процессоров допускается смешивать 32-64 бита код ,без ограничений к регистрам и памяти .Даже у Оракла в 64 битных субд оказывается для Sparc процессоров в критичных по скорости операциях для определенных типов данных есть смешанный с 32 бита код .

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

У оракела в этом плане все еще сравнительно адекватно, а вот во всяком мейнстримном треше... печально.

Akamanah ★★★★★
()

введение в профессию

Кто читал? Действительно ли подходит ли книга для использования в образовании?

командная строка ОС Unix ... основным инструментом для повседневной работы с компьютером

За это, конечно, сразу плюс.

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

Кто читал? Действительно ли подходит ли книга для использования в >образовании?

Введение считаю растянуто ,а так нечего ,для обучения использовать можно .Только в глаза бросилось устаревшие данные про Xfree и настройку с запуском через startx .(В Сласкваре я допускаю это пригодиться ,но в нынешних условиях обучать через Слаку жесть )Не чего не указано про вайланд и мир .Про звук тоже не слова .Жалко что про IDE Лозарис тоже практически нечего не описано .

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

ну написал ты свой юнит-тест

формализация тестов нужна для непрерывной интеграции. Тесты должны быть при этом неформальные.

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

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

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

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