Гостевая книга

Здесь вы можете оставить сообщение для владельца сайта, отзыв о функционировании, оформлении, содержании и вообще написать всё, что думаете по этому поводу. Просьба придерживаться темы ("по этому" — это ещё не "по любому") и соблюдать приличия :-)

Обратите внимание, что связаться с автором сайта можно также и через страницу обратной связи, которая позволяет отправить автору email.

Учтите, что комментарии на этом сайте премодерируются.

[Все старые комментарии перемещены в архив >>>]

Сколько времени нужно на изучение книг

Здравствуйте, Андрей Викторович!
Хотелось бы узнать, на какое количество часов обучения рассчитаны ваши книги.
Заранее спасибо!

admin аватар

Честно говоря,

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

Но кое-какие оценки дать всё же можно. У нас на ВМК, где я работаю, есть семестровые курсы "Алгоритмы и алгоритмические языки", "Архитектура ЭВМ и язык ассемблера", "Операционные системы", "Системы программирования", "Компьютерные сети", а до недавнего времени я сам читал курс "Парадигмы программирования". Книги покрывают содержание курса "Алгоритмы и алгоритмические языки" процентов на 60, содержание курса "Системы программирования" — процентов на 70, "Компьютерные сети" — процентов на 20, остальные три из перечисленных покрыты целиком и даже с запасом, особенно "Парадигмы" — на эту тему в книге материала раза в два больше, чем было в курсе. Итого получается пять—шесть семестров, а то и больше.

Можно ли быстрее? Можно, наверное, но, я бы сказал, не нужно.

Псевдослучайные числа в Си

Здравствуйте, Андрей Викторович.

В главе 4.14.3 вы пишете что распредеение младших бит псевдослучайных чисел может быть неравномерно, что это значит?

admin аватар

Вот буквально

Вот буквально это и значит. В теории вероятности есть такой термин "равномерное распределение" (для случайной величины), ну так вот если младшие биты псевдослучайных чисел рассматривать как случайную величину, то она окажется распределена неравномерно.

Ну вот, скажем, взять младшие 4 бита, получится 16 разных возможных результатов. Если теперь зафигачить несколько длинных (ну, скажем, на миллион) последовательностей псевдослучайных чисел и посчитать, сколько раз выпадет каждый из 16 вариантов, то окажется, что вероятности там сильно отличаются от 1/16.

Помогите выбрать дистрибутив

Здравствуйте, Андрей Викторович!
Помогите выбрать дистрибутив. Сидел долгое время под Минтом, потом перешел на дебиан, после решил избавиться от systemd, перешел на Arch.
На Арче от systemd избавиться не удалось, так у этой заразы еще некоторые программы без sudo не работают.
Требования простые: отсутствие сверхсложности (Gentoo я при всем желании установить не смогу), systemd. А также возможность удаления sudo, и нормальная пакетная база в репозиториях (желательно дебиановская).
Помогите пожалуйста, я с ног сбился.

Сейчас

Сейчас приличный дистрибутив линукс найти достаточно сложно. Но если нужен просто "дистрибутив без системд", то существуют готовые списки. Ссылки есть прямо на заглавной странице этого сайта. Или можно сделать расширенный поиск на distrowatch.com. Там, в списке опций "Система инициализации", есть прекрасный пункт: "Какая угодно, лишь бы не системд".

решил избавиться от systemd, перешел на Arch

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

Кстати, хочу заметить, что я неспроста написал "хотя бы в какой-то степени". Есть дистрибутивы хоть и без системд, но в которых, тем не менее, остаётся куча ошмёток и заглушек в тех местах, откуда была выдрана зараза. А есть и такие, которые изначально собраны без системд и не полагаются на пакетную базу дебиана или арча. Они, конечно, выглядят гораздо аккуратнее.

Что касается несколько раз упомянутого тут Void, я сам его использую в некоторых случаях, если нужен именно линукс. Но, к сожалению, была про него нелестная информация в архивах этой гостевой книги:
http://stolyarov.info/guestbook/archive/3#comment-2434

Позволю себе

Позволю себе порекомендовать Void Linux. Пользуюсь уже год и нарадоваться не могу. Отдельный плюс - есть установочные сборки на musl.

Void Linux -

Void Linux - отличная штука, поддержу. Простой, как первый советский трактор. Отдельный плюс за наличие "безголовой" сборки, избавляющей от необходимости выстригать DE (юзаю i3). Единственная проблема, с которой столкнулся - некоторые пакеты собраны с поддержкой расширений процессора, которых в мою старенькую машину не завезли. Например, GNU Octave, установленный из репозитория, падает с Illegal instruction. Отладчиком выцепил AVX-овскую инструкцию vmovsd в библиотеке OpenBLAS, пришлось собирать ее из исходников. А так очень простой и понятный дистрибутив с вменяемой документацией.

Сегодня

Сегодня дистрибутивов Линукс без systemd и с .deb пакетами найти не сложно. Кроме Devuan, о котором писал Андрей Викторович, есть еще MX Linux (на нем сижу), AntiX. Не удивлюсь, если надется еще парочка.

На MX я не смог

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

Ну много не

Ну много не понял: что именно Вы не могли вырезать и что с чем конфликтует?

Я хотел

Я хотел вырезать Xfce и поставить i3. Скорее всего из-за моей неквалифицированности я этого сделат не смог.

Если на Арче

Если на Арче избавиться не удалось, то есть Artix (artixlinux.org). Как Арч, только без systemd. Я после установки легко удалил sudo и обхожусь без него. Примерно пол года пользуюсь.

Вот кстати

Вот кстати присматриваюсь на него. Спасибо что напомнили :)

admin аватар

Если хочется

Если хочется дебиановскую пакетную базу, то чем тогда не устраивает Devuan? https://www.devuan.org/ Я как раз сижу на нём, совершенно не уверен, что это "правильно", но уж при наличии вот этого пожелания про дебиановскую пакетную базу совсем странно было бы не использовать Devuan :-)

То ли я тупой, то ли сани не едут

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

admin аватар

УМВР :-)

Вроде вот тут: https://www.devuan.org/os/packages всё написано, откуда пакеты качать. В смысле, что прописать в /etc/apt/sources.list

Похоже все же я туплю

Спасибо! Попробую сейчас установить, а там уже по ходу возникновения проблем буду разбираться

Пакеты качать не надо

Что-то подсказывает мне, что установка скаченных откуда попало пакетов и приводит к "сломанным зависимостям" в любом дистрибутиве. При использовании системного пакетного менеджера (apt, yum, dnf, emerge, итд) таких проблем возникать не должно.

not sudo

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

admin аватар

Как жить без sudo,

Как жить без sudo, написано там же: переключаетесь на текстовую консоль по Ctrl-Alt-F[1,2,3...], там входите в систему под root'ом и делаете, что нужно.

mount в повседневной жизни не требует полномочий root'а, просто соответствующие файловые системы (всякие флешки и cdrom'ы) должны быть внесены в /etc/fstab с флагом user. fdisk в повседневной жизни вообще не нужен, ради него можно и на текстовую консоль переключиться. Перезагрузка — если нужна именно перезагрузка — выполняется переключением на ту же консоль и там (то есть уже не в XWin) нажатием старого доброго Ctrl-Alt-Del. Если бы вы использовали Devuan или другую систему с классическим System V init (а не с systemd), я бы вам мог рассказать, как на Ctrl-Alt-Del вместо перезагрузки повесить останов системы a.k.a. выключение машины, но как это сделать с systemd — понятия не имею (и не хочу иметь, systemd не стоит времени, которое тратится на то, чтобы с ним разобраться).

Ну а чтобы выключить машину можно было, не входя под root'ом, можно на /sbin/halt навесить SetUid bit. Только тогда стоит, наверное, предпринять дополнительные меры — скажем, создать группу для этого или хотя бы воспользоваться уже существующей (например, wheel обычно уже есть). Один раз под root'ом сделать вот так:

   chown root:wheel /sbin/halt
   chmod 4750 /sbin/halt

потом ещё себя, любимого, добавить в группу wheel (я бы это сделал просто редактированием /etc/group, но можно и командой usermod, тут дело вкуса) — и всё, команду halt можно будет давать с правами вашего обычного пользователя.

Добрый день,

Добрый день, уважаемый Андрей Викторович! Подскажите, пожалуйста, уже известна цена за каждый том второго издания?
Хотелось бы заранее подготовиться к покупке, а то боюсь, что раскупят Ваши книги с невероятной скоростью!

admin аватар

Отдельно тома

Отдельно тома продаваться не будут, только комплектом; если всё пройдёт как задумано, они даже упакованы будут по комплектам прямо в типографии. Цена пока окончательно не определена, да и как в российских экономических условиях это вообще можно делать? Зато можно прямо сейчас сделать пожертвование на дальнейшее развитие проекта; при определённых условиях комплект книжек можно получить в качестве поощрительного приза, известного также под названием «плюшка».

Опечатки

В ветке по 1-му тому комментарии отключены, поэтому напишу сюда.
Возможно, некоторые из этих опечаток еще не были обнаружены:

Том 1

стр.188 сноска 58 в самом конце не хватает частицы не - "выполнять не могли."

стр.193 в колонтитуле номер параграфа 2.0, хотя еще не закончился 1.6.

стр.233 5-я строка сверху не хватает буквы ю - "записываются между этими словами"

стр.239 в колонтитуле номер параграфа 2.4, хотя еще не закончился 2.3.

стр.307 4-я строка сверху не хватает буквы я - "Неявным преобразованиям"

стр.321 15-я строка сверху - "более-менее покрываются библиотеками"

стр.338 3-я строка сверху - "данные в таком файле"

стр.377 последняя строка - "вставка нового элемента может быть сделана"

стр.389 параграф 2.14.1 абзац 2-й строка 3-я - "В отличие от [подпрограмма!описание]описания подпрограммы"

стр.414 сноска 47 - не уверен, но всё же "Да не пересечёшь ты 80 столбцов в файле твоём"

admin аватар

Спасибо!

> стр.233

good catch

> стр.321

ещё интереснее

> стр.377

ух!!!

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

Том 2Страница

Том 2

Страница 288

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

Компилятор выдает предупреждение

warning: value computed is not used [-Wunused-value]
*count++;

в результате работы программы сумма чисел - правильная, а вот count так и остается равен 0.

Внутри функции *count++ исправил на *count += 1, и работает правильно.

admin аватар

Это уже

Это уже известная ошибка, исправляется, например, на (*count)++; — но вообще так, как вы исправили, тоже нормально :-) (из-за приоритетов).

Андрей

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

admin аватар

Знаете, я

Знаете, я человек ленивый :-) Терпеть не могу каждый день ходить на работу, а ещё мне не нравится, когда приходится судорожно считать дни отпуска и выбирать между катанием на горных лыжах, поездкой на море и прохождением очередного водного похода (все три мероприятия в обычный отпуск не укладываются вообще никак). У преподавателей отпуск длинный, а на работу надо ходить 2-3 дня в неделю (бывало и 4, но это уже прям вот перегрузка-перегрузка). Есть, конечно, и другие причины, и их достаточно много; например, мне хотелось свои мозги развивать, а не сушить. Да и вообще я крупные компании не люблю, если на то пошло; ну а "продукт" бывает только вторичный, привет Войновичу (на всякий случай: в антиутопии "Москва-2042" "вторичным продуктом" называли, извините, обыкновенное дерьмо; сейчас уже эти старые мемы не все знают).

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

Я чего-то не знаю?

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

admin аватар

Насколько я

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

В ВУЗах вести семинары тоже могут лица с в/о, а вот лекции читать — только с кандидатской степенью (это как-то обходится при необходимости, но, как водится, "в исключительных случаях").

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

Непонятна работа NOT в FreePascal

Андрей Викторович здравствуйте! Читаю Ваш первый том и не могу понять как работает логический оператор NOT в примере {skip_indented.pas}.
Когда мы проверяем условие:
if not know then
begin
print := (c <> ' ') and (c <> #9);
know := true;
end;

Переменной "know" мы присвоили значение "false" и если я правильно понимаю, то с оператором отрицания "not" условие должно проверятся при значении "true". Но нет... значение "false" остается до тех пор пока мы не выполним условие этого оператора. (пошаговая отладка программы в окне "watches" это наглядно показывает).
Чтобы разобраться в этом я написал свою программку в которой убирал "not" и ставил обратно и смотрел на возвращаемые значения.
program TestBool;
var
know: boolean;
begin
know := false;
if not know then
begin
writeln('With "not": ', know);
end
else
writeln('Without "not": ', know);
end.

В итоге программа возвращает то значение "know", которое мы установим, но с "not" условие выполняется будто оно становится "true", хотя оно "false" (или наоборот), а без - нет. Как это работает?

admin аватар

Мне, откровенно

Мне, откровенно говоря, непонятен ваш поток сознания, то есть я не понимаю, где вы видите проблему. Но важно тут вот что: NOT — никакой не "оператор", это арифметическая операция, причём такая, которая никакого побочного эффекта не имеет. То есть она не меняет значение переменной (в данном случае know), точно так же, как, например, вычисление выражения a+b не меняет ни значение a, ни значение b, а только порождает новое значение, равное сумме a и b.

Можно сказать ещё и так: в данном случае know — это выражение, not know — тоже выражение, и его значение прямо противоположно значению know. При этом вычисление любого из них никак не сказывается на значении самой переменной know.

И ещё: я не стану больше отвечать на ваши вопросы, если вы не бросите (НЕМЕДЛЕННО) использовать любого рода интегрированные среды (это к вопросу об "окошке watches"). В них вы никогда ничему не научитесь, во всяком случае, я так считаю; если вы считаете иначе — на здоровье, но ищите себе тогда других учителей.

Спасибо что

Спасибо что ответили. В программе проблем нет и в ней я их не вижу. Проблема в том что мне не понятно как у нас получается проверить условие "if not know then...", когда know := false, а значение true мы ему присваиваем только проверив условие, на момент проверки которого имеем значение false. Т.е. если-бы вместо not know было написано "if know = false then" мне бы было понятно... Как это работает?...(

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

Проверка на истинность

мне не понятно как у нас получается проверить условие "if not know then...", когда know := false, а значение true мы ему присваиваем только проверив условие, на момент проверки которого имеем значение false

Предположу, что вы акцентируете внимание не на том. В if'е можно использовать и know и not know и любую другую логическую конструкцию. Значение имеет только результат вычисления логического выражения, используемого в if'е.
not know вычисляется как "истина", следовательно содержимое if'а выполняется.

admin аватар

Я вынужден, увы,

Я вынужден, увы, повторить, что я не вижу смысла в вашем потоке сознания и продолжаю не понимать, в чём заключается ваша проблема (что в программе проблем нет — это я, извините, и сам знаю). Итак, вот мы в переменную know занесли значение false, там оно и лежит. То есть если написать в качестве выражения вот это вот know, то оно, конечно, будет false. Но в качестве условия в if написано вовсе не оно, там написано not know. Если know равно false, то чему равно not know? По-моему, очевидно, что true, хоть по определению, хоть по здравому смыслу, хоть как. Хотя, конечно, само know по-прежнему false, поскольку никто его не менял. Оператор if пойдёт по первой ветке (которая тут единственная) в том и только в том случае, если условное выражение, записанное между if и then, равно true. Ему оно и равно, поскольку там не know, а именно что not know. Вообще операция not примерно для этого и нужна.

Что касается отладчика, то см. параграф 2.16.4. Это стр. 441. Хотя вообще-то лучше посмотреть всю главу 2.16, если уж на то пошло.

Мне кажется,

Мне кажется, человек не понимает, что под if в качестве условия можно класть не обязательно выражение-сравнение (a = b), но
и любую логическую переменную (и результат логических выражений, примененных к этой переменной). То есть,
смысл текста "if know = false then ..." ему понятен, а смысл текста "if not know then ..." - нет,
в то время как смысл этих обоих текстов одинаков.

admin аватар

Предполагать

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

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

Ковыряюсь в настройках gnome для Ubuntu 20.4 lts, решил попробовать разобраться, как работают файлы типа appname.desktop.

В них присутствует MimeType=x-scheme-handler/git (например), если я хочу определить действие для uri типа git:// в адресной строке браузера (и, наверное, в консоли? Пока не пробовал).

Собственно, два совершенно глупых вопроса
1) Где можно найти все возможные виды MimeType? Всё, что гуглится, содержит все эти типы для браузеров, но не для операционной системы. В какой книге про это можно прочитать?
Ну, например, может быть есть какой-нибудь x-domain-handler? Или какая-то спецификация, как указывать значение, т.е может быть я уже могу x-scheme-handler/git://customDomain.com задать, но просто нужно соблюсти какие-то правила присвоения параметра, которые где-то описаны (где? Как это найти?)
2) Моя цель попытаться разобраться, как вообще это всё устроено. Хочу начиться передавать некотрое значение в зависимости от доменного имени после протокола, например: https://someDomain.com -> я хочу поймать это значение и передать его в кастомный хендлер .sh (их я уже делать научился), и что-нибудь с ним сделать.

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

Стыдно задавать вопрос, но вот всё-таки его задаю.

(гнум как десктоп используется, если вдруг это важно).

admin аватар

Гм...

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

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

Просто хотел

Просто хотел сказать спасибо за ваш ответ. Мне это немного помогло сориентирваться куда смотреть.

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

Не могли бы вы,

Не могли бы вы, пожалуйста, привести пример наиболее частого использования и при этом оправданного (а значит не контейнер) шаблона класса в языке С++? Просто в книге приведен пример SparseArray, который по сути же и есть контейнер. Посмотрел в книге Страуструпа по С++ (2-е издание) и там предлагается, например, делать обобщенный стек при помощи шаблонов.

admin аватар

С шаблонами

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

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

Поиск в PDF

Андрей Викторович, подскажите, пожалуйста, почему не работает поиск в PDF-книгах. Пробовал искать в программах Adobe Reader и "Просмотр" (Mac). В частности имею в виду книги "Введение в профессию". Может я что-то не то делаю и этом можно исправить?

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

Не первый раз вижу

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

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

Поисковый синдром

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

Бич современности

Согласен. Отсутствие умения погрузиться в материал и отсутствие навыков контекстного поиска с сопоставлением - это прямо проблема нынешнего поколения.

Мне совершенно жутко думать, что в наше время мы всё ближе и ближе приближаемся к анти-утопии. Как было у Дугласа Адамса: "42".
Только вот у нас ещё будет придаток-продолжение:
- Что 42?
- Мне так поисковик сказал
- И что это значит?
- 42
- Так тебя же спрашивали готов ты взяться за работу или нет...
- Мой ответ 42.

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

admin аватар

Да, это так и

Да, это так и задумано. Если быть точным, текстовый слой в PDF-файлах сломан намеренно, чтобы нельзя было (без серьёзных плясок с бубном, которые, конечно, возможны, но требуют ну хоть какой-то квалификации) из этих PDF'ов делать copy-paste фрагментов текста. То, что поиск не работает — побочный эффект. И нет, с этим ничего сделать нельзя. Точнее, технически-то, конечно, можно, но я с этим ничего делать не намерен. Я, больше того, всерьёз рассматриваю перспективу выкладывать PDF, сгенерённый через изображения страниц (в формате PNG) в роли промежуточного представления, тогда там вообще текста не будет ни в каком виде.

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

Использование

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

admin аватар

Размер при этом

Размер при этом если и увеличивается, то незначительно, а вот "довольно просто" -- это не про тех, кто любит текст большими кусками растаскивать, для них, как показывает практика, OCR — это слишком сложно, поскольку текстов можно и из других мест натаскать без всякого OCR.

Тайлинговые оконники

Здравствуйте, Андрей Викторович!
Читаю "Программирование: введение в профессию. Том 1: азы программирования", а точнее главу 1.4.

Вы упоминаете разные DE и WM, говорите на какие лучше ориентироваться, а какие лучше избегать, но вы никак не упоминаете о тайлинговых оконниках. Сам использую тайлинговый wm, поэтому мне стало интересно узнать ваше мнение, почему вы их не упоминаете?

Возможная неточность (ст. 71):
> С самого начала лучше ориентироваться на "облегчённые" оконные менеджеры, такие как IceWM, Xfce, LXDE и другие.
Xfce и LXDE -- DE, а не оконные менеджеры.

Большое спасибо за книги!

admin аватар

С тайлинговыми

С тайлинговыми есть одна проблема: я с ними никогда работать не пробовал. Прежде чем их описывать, нужно хотя бы пару дней попытаться под таким прожить. Я совершенно не уверен, что сейчас этого хочу :-)

Xfce не сразу стал DE, как ни странно — я ещё помню его без иконок, хотя к тому времени, когда в 2016 году вышел первый том, Xfce уже опопсел. С LXDE, конечно, виноват, погорячился :)

Проблему я уже устранил, в новом издании в качестве "простых" оконников перечислены IceWM, Fluxbox, Window Maker, BlackBox, twm, mwm, fvwm и AfterStep.

Почему бы не i3

Лично я пользуюсь i3wm. Что очень удобно для новичка, это простой конфиг, нормальный статус бар из коробки и куча туториалов если что на ютубе.
Из всех тех, что я пробовал, я осилил только этот.

admin аватар

Тьюториалы в

Тьюториалы в видеоформате лично для меня — что есть, что нет, я вообще не понимаю, как из них можно извлечь хоть какую-то пользу.

Проблема у меня в другом. "Не осилить" оконник я, пожалуй, уже не могу :-) но сам я как в 1994 году сел на fvwm2, так на нём и сижу, под свои хотелки его заточил давно и прочно, то есть удобнее, чем под ним, мне быть нигде уже, наверное, не может — хотя справляюсь-то я, конечно, с любыми, если припрёт (не всегда ведь мы на своих машинах работаем). Так вот, чтобы описать тайловые ОМ в книжке, мне нужно попробовать под таким пожить хотя бы пару дней, чтобы понять, как это вообще и куда. Я не уверен, что эти усилия стоят того выхлопа, который с них образуется.

Помогите

Помогите разобраться с примером на странице 382 первого тома.
Непонятна постановка вопроса про отсутствие текущего звена в списке. Это значит, что список пуст? И почему вставка слева от несуществующего - это вставка в конец?

admin аватар

Нет, если

Нет, если текущего нет — это значит, что в списке могут существовать звенья, но ни одно из них сейчас не считается текущим.

Что касается вставки "слева от несуществующего", то это просто предположение, которое само по себе ни из чего не следует. Зато это предположение позволяет вставить новый элемент в любое место списка, используя операцию "вставки слева от текущего": перед любым элементом X мы вставляем новый, объявив X текущим (в том числе X может быть первым элементом, тогда это будет вставка в начало списка), а вот в конец списка таким способом вставить не получается — но если ввести вот это вот предположение, то тогда всё получится.

Интересно, что

Интересно, что если ничего не присваивать current, то, вроде бы, получается вставка справа от "текущего"

admin аватар

Если

Если переменной ничего не присвоить, то её значение не определено. Судя по тому, что у вас ничего не упало, видимо, там оказался nil. Ну, повезло.

Доброго

Доброго времени суток,Андрей Викторович
Такой вопрос, рассматриваю заключительную часть вашей книги, как инструмент для входа в изучение c/c++, используя Unix системы, но проблема в том что использовать эти языки, планирую использовать для разработки в игровой индустрии, но она в бо́льшей части заточена на разработку на Винде, что делать в таком случае?

Как это делаю я

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

А что

А что собственно заточено под форточки? По-моему сейчас все движки есть под Линукс. К тому же, уважающий себя разработчик вряд-ли станет использовать подобное.

Да как бы да, но нет

Движки-то может и есть, но вот они в большинстве "user-friendly". И заточены специально под странности винды.

admin аватар

Что делать?

Что делать? Искать другие книги, разумеется. От моих книг бесполезно брать только "заключительную часть", толку не будет заведомо.

Немного

Немного запутался в 3.2.14 второго тома (стр.79).
1) Несколько раз встречается следующее: "память по адресу [edi]". Насколько я понял, запись [edi] обозначает саму область памяти, с адресом который хранится в регистре edi, поэтому, кажется более логичным либо просто память [edi], либо память по адресу из регистра edi (хотя и громоздко получается).
2) В описании команд scas сказано, что они сравнивают аккумулятор с [edi], но в последующем примере используется регистр esi при применении команды scasb.

admin аватар

"Саму область

"Саму область памяти" на языке ассемблера не обозначает ничего и никогда. Конкретно в NASM квадратные скобки обозначают исполнительный адрес (операнд типа память), но это не "сама память", это такой операнд, который вычисляется и результатом вычисления становится адрес. Например, в команде lea такой операнд, несмотря на квадратные скобки, ни к какой памяти не обращается.

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

По второму вопросу — да, там опечатка. Уже известна и даже исправлена, в смысле во втором издании её не будет.

VIM

Установил на Linux Mint, VIM, так как не было, был только нано но хотел как в книге.

открыл конадой vim hello.pas, написал програмку с книги, возможности сохранить нет, могу только закрыть терминал но при этом ничего не сохраняется.

мне не понятен в книге набор клавиш для закрытия VIM, Esc-двоеточие-wq-Enter, это что? как это нажимать? по очереди или все вместе?

как вообще файл сохранить в VIM?

admin аватар

ВМЕСТЕ?! вы,

ВМЕСТЕ?! вы, пардон, видели когда-нибудь, чтобы клавиши, не являющиеся "модификаторами" (то есть Shift, Ctrl и Alt), вместе нажимали? Разумеется, по очереди, одну за другой. Файл "вообще" сохранить очень просто: в командном режиме :w (если был режим ввода, то сначала Esc). Между прочим, в книге это всё написано.

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

Первый том

Free Pascal Compiler version 3.0.4+dfsg-18ubuntu2 [2018/08/29] for x86_64
Copyright (c) 1993-2017 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling hello.pas
Fatal: Can't find unit system used by hello
Fatal: Compilation aborted
Error: /usr/bin/ppcx64 returned an error exitcode

В чем тут проблема. не могу запустить компилятор на линукс.

Убунту на WSL?

Убунту на WSL?

что такое

что такое WSL.

установлен Linux Mint. 19.3

также был установлен Free Pascal компилятор.

admin аватар

WSL

WSL — это подсистема Windows-10, делающая вид, что она линукс. Видимо, это всё-таки не ваш случай.

А теперь расскажите нам, откуда у вас на mint'е появился бинарник компилятора Free Pascal ubuntu'овской сборки. Ну или хотя бы просто расскажите, что конкретно вы делали, чтобы поставить в системе этот компилятор.

Спасибо за

Спасибо за ответы.

сначала установил с этой страницы

https://www.freepascal.org/download.html

Выбрал: AMD64/Intel 64/x86_64, Система у меня 64 битная.
не помогло, начал смотреть дальше что можно сделать на юбюбе.

потом задал команду: sudo apt-get install fpc

командa fp в терминале запускается, открываю файл
program hello;
begin
writeln('Hello, World')
end.

запускаю Run, выдает ошибку: compile failed, fatal: Compilation aborted, cant find unit System used by hello

admin аватар

А не надо так

А не надо так делать. В чём там проблема — сказать не могу, мне запускать среду "lazarus" (а по команде fp именно она запускается) даже и в голову не приходило никогда.

Нужный вам пакет называется fp-compiler, соответствующая команда в командной строке — fpc.

admin аватар

На чём основано

На чём основано подозрение?

Знаю, что

Знаю, что многие начинают изучать Линукс именно с WSL. Сколько по форумам читал разного рода информацию про WSL, на нем у людей странные проблемы разного рода вылетают, которых нет, если установить Линукс полноценной системой. Сам когда-то пользовался Убунту, и не было проблем с FPC никаких вообще. По крайней мере в то время. Потому задал сей вопрос!

admin аватар

Кажется, там

Кажется, там всё хуже :-)

admin аватар

Проблема тут в

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

Первый Том

читаю ваш первый Том.

Спасибо за книги.

почему не показано как устанавливать компилятор fpc в вашей книге.

запятые в ('Hello, World') тоже вводят в заблужение. это ведь не запятые а черточка просто.

Сиди потом и думай как начинающий изучать программирование что и как...

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

admin аватар

> почему не

> почему не показано как устанавливать компилятор fpc в вашей книге.

Потому что это зависит от дистрибутива Linux, а их много разных.

> запятые в ('Hello, World')

Там нет никаких запятых, вас кто-то обманул. "Чёрточек", впрочем, тоже нет. Есть апострофы, и они в разных шрифтах выглядят по-разному.

> и проверка бота сложночитаема,

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

Сейчас во всём

Сейчас во всём мире дефицит программистов( я имею в виду адекватных ). Удастся хоть когда-нибудь этот спрос удовлетворить? Даже с помощью Ваших книжек. На предложение же никто не может повлять. И нужно ли на него влиять? Как мне кажется это противоестественно, ведь это же насилие.

admin аватар

Ну почему, на

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

И снова во всём виновата реклама?

>Но спрос, конечно, удовлетворить не удастся никогда

По большей части в этом виноваты лозунги: да зачем эта математика, какой ещё ассемблер, питон лучше, итд?

admin аватар

Да нет,

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

Получается

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

Получается, что для мастера(программиста, врача) самый адекватный путь - изучение наук(связанные с отраслью) и овладевание навыками в самой конторе, мастерской, операционной, итд?

admin аватар

Именно так всё

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

Ну а для программистов это всё получается само собой без всяких сертификатов.

Ну, если я вас

Ну, если я вас правильно понял, получается, что проблема в педагогах университетов или вы под макако-конвейером имели ввиду компании-мелочёвки?
У меня вон, знакомый (20 лет, 3 курс, некий университет в Севастополе) учится на 09.03.02 и им там на вебе: первая парам xml разметка, вторая пара js, а третья пара и до конца семестра - JQuery... Учить библиотеку в университете - ну такое... Университет должен фундаментальные знания давать, а не синтаксисы библиотек надиктовывать. Я уж не говорю о том, что сами библиотеки - это в большинстве случаев кромешный ужас для солидной разработки.

admin аватар

В

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

У меня, лично, в

У меня, лично, в голове не укладывается, как крупные компании могут сами себе костыли в колёса вставлять: ну неужто денег жевать-не-пережевать. Ну, вы же в конечном итоге в своём ядре всё строите именно на тех людях, которых пытаетесь истребить. Хотя, суровому капитализму видимо всё равно, что будет потом, главное здесь и сейчас денег собрать, - только так я могу объяснить себе это.

В моём понимании университеты (вообще все, в особенности лидеры, такие как МГУ\СПбГУ) - продали гордость за деньги, потому что знаменитая "Кафедра Яндекса" - вызывает у меня судороги полушарий своим названием. И вот такие структурные единицы внутри образовательных учреждений (морально утративших статус университета после подписания контракта на путанство) разрушают всё то, чем университеты могли бы гордиться.

К примеру, в западной программе CS50 (Harvard\Stanford) - нет ни одного изучения библиотеки (насколько мне известно), правда и образование там, - дорогое. Но по тому и нет их, наверное, что каждый заплатил за себя, и университету деньги не нужны.

При этом, самое отвратительное (на мой взгляд), что люди сами начинают хотеть работать в этих гигантах и готовы продать свою гордость, перпективы, возможности в обмен на золотую клетку - мне каждый раз мерзко слышать, когда очередной студент на собеседовании к нам на вопрос: "Хотели бы вы работать в Яндексе?" - отчевает мне да и рассказывает, какие они великие и хорошие. Таким дорога к нам закрыта (хороший, кстати, маркёр получается).

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

Да, факт - есть рынок, да, факт - людям нужны деньги, но рынок есть до тех пор, пока люди бегут к нему за услугами.

p.s Просвятился благодаря вам, узнал разницу между преподавателем и педагогом, спасибо. Не задумывался раньше, вроде бревно перед глазами, а не видно. Спасибо.

Ограниченный кругозор

самое отвратительное (на мой взгляд), что люди сами начинают хотеть работать в этих гигантах

Это люди с ограниченным кругозором и низкой социальной ответственностью. У таких всё планирование жизни сводиться к "здесь и сейчас". Спрогнозировать своё будущее такие люди, к сожалению, не в состоянии. Да ещё и мозги промыты "карьерным ростом" (в плохом понимании этого словосочетания).

Я тут недавно и

Я тут недавно и не в первый раз вижу, что корпорации это зло. Я конечно примерно понимаю почему, но всё-таки полной картины нету. Где можно подробно об этом почитать? И почему работать в них это плохо?

Вот интересная

Вот интересная аналогия, к размышлению.

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

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

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

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

корпорации это зло. Я конечно примерно понимаю почему

почему работать в них это плохо?

Вы понимаете, пусть даже и "примерно", что корпорации -- зло, но не понимаете, почему работать в них плохо? То есть, вас что, интересует глубоко философский вопрос, "почему участвовать в увеличении количества зла -- плохо?"

русскоязычная математическая литература

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

  • Качественная подборка книг есть на сайте https://math.ru/
  • Очень ценю издательство при Московском Центре Непрерывного Математического Образования (МЦНМО). Мне кажется, совсем уж проходных книг они не издают. Сайт МЦНМО: https://mccme.ru/ Там ссылки на издательство и на другие ценные ресурсы.
  • Отдельно хочу упомянуть книжечку хитрого академика Арнольда "Задачи для детей от 5 до 15 лет" (на math.ru есть). Мне за сорок, и я до сих пор радуюсь как ребёнок от 5 до 15 лет, если мне удаётся решить оттуда очередную задачу. Хотя первые полтора-два десятка, конечно, решились легко. Очень рекомендую. Можно устроить тут обсуждение задач, если Андрей не против.

Доброго

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

P.S. Большое спасибо за вашу книгу. Читаю оглавление четвертого тома и мечтаю добраться до него, проработав оставшуюся до него часть.

Мне сходу

Мне сходу вспоминается такое классическое введение в математику, как книжка Куранта и Роббинса "Что такое математика?"

admin аватар

Прелесть какая

Спасибо! Жалко, что там некоторые рисунки битые почему-то.

Мда,

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

Ну вот тогда, в ассортименте :)

http://gen.lib.rus.ec/search.php?req=%D0%BA%D1%83%D1%80%D0%B0%D0%BD%D1%8...

admin аватар

К сожалению, я

К сожалению, я не знаю, как изучать математику. Сам я вообще не по этой части, то есть вопрос не ко мне. Наверняка что-то такое есть, если найдёте — поделитесь :-)

Добрый день,

Добрый день, Андрей Викторович! Возможно вопрос покажется глупым, но всё же. Можно ли программирование и математику изучать одновременно? Или всё же стоит сначала изучить математику, а потом перейти к вашим книгам по программированию?

admin аватар

Да, вопрос,

Да, вопрос, прямо скажем, крайне странный. А как вы собираетесь "изучить математику"? Что, вот прямо всю? Но в мире нет ни одного человека, который знал бы всю существующую математику, вот в чём проблема. И математика стоит того, чтобы изучать её всю жизнь — пока мозги окончательно не скиснут. Но, сами понимаете, тогда ни мои книжки, ни какие-либо ещё уже не понадобятся, поздно будет.

Есть только один случай, когда стоит подождать с моими книжками и сначала уделить внимание математике: это когда с математикой настолько беда, что в моих книжках ни бельмеса не понять. Но такое вроде бы не так уж и часто встречается.

Книга по математике

Добрый день, Андрей Викторович! Что Вы скажете по книге "Дискретная математика для программистов", которую написал Ф.А.Новиков?

П.С. Оставлю Вам ссылку на книгу.

https://stugum.files.wordpress.com/2014/03/novikov.pdf

admin аватар

А ничего не

А ничего не скажу. У меня она на полке стоит в бумаге, но я до неё так и не добрался, увы, как и до многих других книг.

Обучение через реверс-инжиниринг

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

Вы молоток пробовали реверс-инжинирить?

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

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

В общем, изучая реверс-инжиниринг вы освоите реверс-инжиниринг, а не программирование.

А если хотите изучать программирование, то берёте паскаль в руки, как я в свои 25 уже после вуза, и начинаете пытаться понять что к чему. Благо, Андрей Викторович написал отличное пособие как раз для новичков. Жаль, что когда я был молодым - его не было.

admin аватар

К

К программированию эта деятельность не имеет вообще никакого отношения, и тем более к изучению программирования. Если очень хочется ковыряться в чужих программах — есть свободно распространяемое ПО в исходных текстах, зачем что-то реверсить — остаётся неясным. Ну и последнее: сишность головного мозга не лечится, судя по всему, вообще никакими средствами, начал с Си — считай, калека.

Мною движет

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

Уровень архитектуры

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

Можете попробовать почитать эту книгу "Ч.Петцольд - Код. Тайный язык информатики".
Неплохое введение в "низкий уровень" для начинающих.

admin аватар

Реверс-инжиниринг

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

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

У меня вопрос

Здравствуйте, Андрей Викторович. У меня есть вопрос. У нас есть огромный массив памяти к ячейкам которого мы можем применить в общем то только две операции чтения и записи. И процессор, который может от туда получать данные и записывать таким образом в регистры. Причем по порядку шаг за шагом, через цикл запроса команд, которые собственно эти данные из/в памяти тягают, или говорят процессору обработать данные в регистрах. И у него для этого есть набор этих регистров в которые он эти данные может писать. Так же есть возможность разделить на сегменты память. Доступ к данным в сегменте памяти происходит путём смещения от адреса сегмента. Который храниться в сегментном регистре. И данные там хранятся в виде последовательностей. И доступ к ним идет через смещение от адреса сегмента. То есть оно там и находиться данное это после размещения. И доступ к нему по этому адресу и идёт изнутри программы через операции которые может выполнять процессор. Поэтому вся работа с данными осуществляется через доступ в сегменте по смещению. И туда идет запись из регистра или чтение и взятие адреса. Сама реализация любой структуры данных (даже переменной) в этом смысле является абстрактной и зависит от реализации работы с ней в коде. Но во многих случаях это адресная арифметика так называемая. Или можно еще сказать, что сложные данные и работа с ними организованы набором процедур которые и составят их в нужном порядке в памяти. И обеспечат доступ к ним так как задумано именно для этой структуры. Другими словами все, что больше этого уже является более высокой абстракцией. Собственно наибольший интерес представляет как раз способы реализации этих структур данных и задачи в которых они чаще всего применяются.

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

admin аватар

Слушайте,

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

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

В чем конкретно

В чем конкретно по вашему заключается изъян моего мышления?
Чем он наводит ужас? Я просто пробую изучать вопрос. Как получается... К данным, как я понимаю, все равно доступ идет через смещение. Ай в любом случае. Раз вы так категоричны в своих суждениях. Буду и дальше плодить свои потоки сознания. Тихо себе в тряпочку.

admin аватар

Если вы хотели

Если вы хотели моих рекомендаций — читайте предисловия первого тома. Если не хотите — можете продолжать в том же духе, но в другом месте.

Все таки вы сверх обобщили

После такого категоричного ответа моя, и без этого нулевая, самооценка упала еще ниже. Если я так ужасен, то как я пойму ваши книги? Я решил отложить книгу и попробовать что-то написать самому. Я реализовал простую змейку. Там конечно еще есть что делать с ней. Но основная логика работает. Использовал модули ptcGraph и ptcCrt. В интернете посмотрел только пару вещей про нажатие клавиш, про процедуры модулей, random. И Андре Ламота почитал про главный цикл игры. Это конечно может не бог весть что, но это опровергает ваше сверх обобщение и ужастификацию моих скудных потоков сознания. Все таки чтобы это сделать надо немного что-то понимать. Значит все не так плохо. Буду продолжать читать ваши книги за неимением лучшей альтернативы. Но доверять себе буду теперь больше.

admin аватар

Змейка -- это,

Змейка — это, несомненно, правильное направление, и если она получилась — значит, с перспективами всё хорошо.

А что, вы всё ещё не поняли, что реверс-инжиниринг не из этой сказки? Попробуйте, может, на ассемблере что-нибудь сделать, полноэкранную игрушку тут написать тяжело, ну хоть текстовую, квест какой-нибудь. Потом ту же змейку или ещё что подобное на Си/ncurses. Если после всего этого не отпадёт желание реверс-инжинирингом заниматься — ну, тогда занимайтесь :-) (я, правда, всё равно не пойму, накой чёрт, но дело ваше).

И снова про ВУЗЫ

Здравствуйте, Андрей Викторович!
Стою перед сейчас выбором, собственно, направления в ВУЗ: лингвистика и программирования.
Интереснее более программирование, но качество обучения, насколько я могу судить по отзывам в России не очень.
По лингвистике результаты более лояльные.
В чем вопрос: стоит ли вообще идти в ВУЗ именно на "программисткие" специальности, или можно (и нужно, как я думаю) освоить все самостоятельно?
Заранее спасибо за ответ!

Для начала определитесь с вашей будущей профессией

Главное, от чего стоит плясать - задайте самому себе вопрос: чем я буду зарабатывать на жизнь после окончания ВУЗа? И честно ответьте себе на него. Только реалистично, и без крайностей, типа, хочу быть олигархом. После этого выбирайте специальность, дающую наиболее подходящий набор знаний, необходимых в вашей будущей профессии.
Хотите работать дипломатом - вам нужна одна специальность.
Хотите быть директором сети Пятерочка или Макдональдс - другая.
Хотите писать софт для микроконтроллеров и ПЛИС - третья.
И не путайте вашу будущую профессию и настоящее хобби. Пусть хобби им и остается. А образование надо выбирать именно исходя из будущей профессии, а не хобби.
В редких случаях они могут совпасть, но это, скорее, редкое исключение, а не общее правило.

admin аватар

Какой яркий перл, а?

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

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

Теперь во-вторых. Есть, конечно, редчайшие случаи таких юных чуваков, которые точно знают, кем будут, и ими в итоге и становятся. Я вот, например, программистом хотел стать ещё лет в тринадцать. Ну так тут их поджидает ещё одна проблема: будущие фанаты той или иной профессиональной деятельности могут категорически не понимать, что для этой профессии надо, а чего не надо. Я вот, например, даже в девятнадцать ещё толком не понимал, нахрен надо столько всякой математики. Среди моих друзей, таких же фанатов программирования, как и я, многие шли в непонятные ВУЗы по принципу «там математики поменьше» — ей-богу, были такие. В эту топку подбрасывают топлива ещё и те якобы-программисты (в основном, конечно, вебщики и прочие 1С-ники), которые, уже работая по избранной специальности, продолжают повторять как мантру это своё «программисту математика не нужна», не замечая, насколько низок их собственный профессиональный потолок, и не понимая (что вполне естественно), что низкая высота потолка как раз и обусловлена отсутствием фундаментальной (в том числе математической) подготовки.

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

Если у молодого человека в возрасте, когда выбирается ВУЗ, имеет место некое внятное хобби, причём такое, в рамках которого может оказаться релевантным высшее образование, то это означает ровно одно: именно к этому направлению (как минимум в области фундаментальной подготовки и прилагающегося развития мозга) имеется склонность. А значит, именно это, а не какое-то другое образование данный персонаж будет получать с удовольствием, а значит — освоит наиболее качественно.

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

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

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

Лично для меня

Лично для меня как раз проблема в том, что меня будут учить тому, что мне нравится.
Или переформулирую, мое увлечение будут контролировать. А насколько я себя помню, в программировании я продвинулся хоть немного только из-за того, что меня никто в этом не контролировал и я был волен заниматься как и когда захочу.
Поэтому я и мечусь между около-программистких специальностей (та же лингвистика хоть сколько-то мне интересна).
Я боюсь, что ВУЗ отобьет у меня все желание заниматься программированием, как это уже было с литературой (очень любил читать, а сейчас почти ни читаю).

Я боюсь, что ВУЗ

Я боюсь, что ВУЗ отобьет у меня все желание заниматься программированием, как это уже было с литературой (очень любил читать, а сейчас почти ни читаю).

-----------------------------------------------------------

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

admin аватар

Ну это

Ну это проблема, да. Увы. Здесь я не знаю, что посоветовать, я не психолог, к тому же там слишком много факторов сугубо индивидуальных, которые через Интернет не видно.

Так или иначе, для программирования нужен хорошо прокачанный мозг; прокачка мозга достигается изучением высшей математики (пофиг, что она как таковая почти вся потом не потребуется, дело не в ней самой, дело в её влиянии на мозг). Если хотите изучать что-то лингвистическое, но при этом оставить себе возможность быть программистом (не вебщиком или 1С-ником, и даже не питонистом, а нормальным программистом, который понимает, что делает) — выбирайте такие направления лингвистики, где есть математика. Здесь я не совсем в курсе того, что где есть; точно знаю, что в МГУ на отделении структурной и прикладной лингвистики математика изучается, насколько глубоко и насколько адекватно — не знаю.

Закономерный вопрос

Возникает закономерный вопрос: а где и как ее учить?
Вот сижу и ботаю учебник своего класса по началам мат. анализа. В свободное время смотрю всякое интересное в интернете, читаю любимого с детства Перельмана.
Но нужна хоть какая-то систематизация. Иначе в голове -- каша. Какой-то учебник что-ли, который все правильно по полочкам разложит в голове.
P.S. Насчет лингвистики. У меня почему-то давно в голове висит идея, что надо просто создать язык, похожий на естественный, но упорядоченный для компьютера. Как Эсперанто, чтобы все было в строгом порядке: словобразование, грамматика и пунктуация. В общем легкие правила без исключений.
Я думаю, что язык созданный специально для компьютера, им будет распознаваться в разы проще, что позволит:
1) не прибегать к услугам суперкомпьютеров корпораций
2) следовательно, систему сможет сделать каждый, а это уже open source появится
3) Прочие следующие из этого плюшки: оффлайн, настройка под себя и т.д.
И настолько эта идея меня долбит каждый день, что хочется самому такой язык создать.

искусственные языки

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

Я так понимаю, вы не про так называемые "языки программирования", а именно про язык заменяющий/дополняющий естественные языки? То есть, язык на котором люди смогут общаться как между собой, так и с компьютером?

И настолько эта идея меня долбит каждый день, что хочется самому такой язык создать.

Изучили ли вы уже существующие попытки такого рода? Навскидку, например, вспоминается известнейший проект "логического языка" логлан или его форк ложбан. Подозреваю, со времён логлана/ложбана были и ещё попытки. В конструировании своего велосипеда, в принципе, нет ничего плохого, но знать при этом об уже существующих конструктивных решениях и результатах их полевых испытаний всегда полезно, можно сэкономить годы.

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

admin аватар

Да нет, тут,

Да нет, тут, если я правильно понял, речь идёт о другом — Эсперанто не случайно упоминалось. Именно что искусственный язык для людей, заменяющий естественные языки, но так, чтобы при этом задачи компьютерной лингвистики решались. Например, есть такой фетиш "семантический анализ естественного языка" — если я правильно понимаю, эта штука для компьютерных лингвистов играет примерно ту же роль, что на протяжении веков играла для математиков теорема Ферма, пока её в итоге не доказали: задача, которая вроде бы должна иметь решение, её тысячи людей пытались решить и никто не решил.

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

Да нет, тут,

Да нет, тут, если я правильно понял, речь идёт о другом — Эсперанто не случайно упоминалось. Именно что искусственный язык для людей, заменяющий естественные языки, но так, чтобы при этом задачи компьютерной лингвистики решались.

Гм, да я, вроде бы, именно так и написал:

То есть, язык на котором люди смогут общаться как между собой, так и с компьютером?

Даже интересно, это я так непонятно выражаюсь или вы просто невнимательно прочли?

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

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

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

admin аватар

Всё проще

Всё проще — это я Логлан перепутал с чем-то другим (и понять бы ещё, с чем).

Анон все-таки прав

Я как-то упустил дискуссию, отпишусь :)
Моя цель - создать язык, хоть сколько-то напоминающий ествественный (иначе можно на bash с компьютером разговаривать), который будет понятен компьютеру. Разговаривать на нем в посведневной жизни люди не будут.
Эсперанто изначально провальный проект, я его привел как пример естественного языка в принципе. Право на существование я думаю, имеют только общеязыковые. Как к примеру межславянский - я его понимаю, просто потому что носитель одного из славянских языков, мне не надо его учить. Вот только такое и будет жить.
Возвращаясь к теме, я думаю построить чуть ли не суб-культуру (ну Наполеновские прям планы). Можно просто упростить и смешать несколько языков, зафиксировать четкий порядок слов, окончания привязать к части речи (да-да, как в Эсперанто).
Итого получится что-то по типу такого:
- Shi! Holu systemo is brokene?
- Si, systemo havo 3 troublo. Holu vi fixe?
Грубо говоря, приписываем терминалу личность. У всех не-Unix пользователей функций естественно будет меньше - запрошу я права на чтение информации системы меня трояном посчитают.
В общем, упрощаем все проблемы NLP. Убираем падежи, части речи можем распарсить простой регуляркой. Можно было бы вообще сам эсперанто приспособить, но Земенгоф в книгах обязал всех эсперантистов не отклоняться от изначальной идеи. Так что слегка модифицурию и упрощу, будет в самый раз.
Так вот главное в программе - все под открытой лицензией и работает в офлайне. Такого нынешние "голосовые помощники" предложить не способны.
И опять резюмируя: голосовой терминал с характером/личностью и шуточками :) Естественно для работы будет строгий режим, где остается только рабочая ифнормация.

admin аватар

Это уже не ко мне вопросы

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

По поводу языка вопрос уж точно не ко мне. Мне почему-то кажется, что оно не взлетит, как не взлетело Эсперанто и как не взлетели другие подобные проекты, которых было несколько; но я, опять же, не лингвист. Впрочем, если речь идёт о какой-то связи лингвистики с компьютерами — то без математики в этой области делать нечего, то есть «какая попало» лингвистика не подойдёт, нужна именно та, которая с математикой.

Как вы относитесь к курсам?

А как вы относитесь к курсам по программированию? Все подряд твердят что курсы лучше ВУЗов, в последнее время стало каким-то шаблоном. И как относитесь к платформам по типу GeekBreins

Вероятно, фразу

Вероятно, фразу "курсы лучше ВУЗов" следует понимать так, что "на курсах гораздо быстрее и эффективнее, чем в ВУЗах, можно научиться делать говно и продавать его за бабло".

admin аватар

К сожалению,

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

admin аватар

"Платформы

"Платформы вроде GeekBrains" — обыкновенные мошенники, торгующие даже не воздухом — я бы сказал, они продают ничего, собственно, как и все копирасты. О таких курсах, после которых человек становится программистом (а не вебмакакой, притом крайне хреновенькой даже в сравнении с другими макаками) я никогда не слышал. Впрочем, я не слышал и о таких курсах, где учили бы высшей математике в сколько-нибудь осмысленном объёме.

Сам стоял перед

Сам стоял перед таким выбором, в итоге прогадал - выбрал лингвистику, а классическая лингвистика сейчас мало где востребована.
Если хотите расширить варианты своей занятости в будущем - выбирайте прикладную (компьютерную) лингвистику. Там у вас будет математика, лингвистика, программирование. Сейчас на подъеме автоматическая обработка естественного языка (NLP, Natural Language Processing). В этой области, как правило в настоящее время, применяются методы ML, статистики, математики.
Только обязательно посмотрите программу специальности, темы курсовых, обратите внимание на специалистов, которые преподают. Желательно, чтобы они участвовали в промышленных или научных проектах по NLP.
В дополнение к МГУ, есть программа «Фундаментальная и компьютерная лингвистика» в ВШЭ, можете ознакомиться с ее содержанием по ссылке https://www.hse.ru/ba/ling/

admin аватар

Сложно

Вот это вот "освоить всё самостоятельно" — оставляет простор для толкования. Что "всё"? Инструменты? Ну, там, языки программирования и всё что вокруг? Безусловно. Вот то есть вне всякого сомнения.

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

Лингвистика эта ваша — это тоже понятие растяжимое. В МГУ на фиолологическом факультете есть отделение структурной и прикладной лингвистики, там математика есть. В остальной части того же факультета, насколько я понимаю, математики нет. Без математики вы за несколько лет обучения в ВУЗе свои мозги похороните.

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

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

А почему?

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

admin аватар

Все ваши

Все ваши догадки не имеют ничего общего с моей причиной. А причина очень проста: само словосочетание «техническое образование» представляет собой оксюморон. Техника — это не наука, это именно техника, то есть ремесло. Ремесло не может быть передано в учебном заведении, оно передаётся только в мастерской — непосредственно в ходе работы, от мастера к ученику. В технических ВУЗах люди, никогда не бывшие инженерами, пытаются других людей учить, как надо быть инженерами; потом выпускник ВУЗа приходит туда, где надо работать инженером, показывает свой диплом в отделе кадров, и никого, кроме кадровиков, диплом не беспокоит: обычно первое, что слышит новый инженер от своих более старших коллег — предложение забыть всю ту чушь и дичь, которую ему наплели в ВУЗе.

С наукой дело обстоит иначе. Конечно, контор под вывеской «университет» нынче — хоть отбавляй (и да, я бы отбавил), но в действительности университет — это всегда крупный исследовательский центр, такое место, где занимаются наукой, а ещё попутно учат студентов. Если в университете не занимаются наукой, то это не университет, одно название. Так вот, науку в стенах университета (если это университет) передать можно, университетское образование — это обучение наукам непосредственно из рук действующих учёных. Чтобы сделать аналог для инженерных специальностей, нужно брать какие-нибудь конструкторские бюро и прочие места, где занимаются вот этой вот техникой, инженерной деятельностью — и пытаться заставить действующих инженеров учить студентов. Только не получится ничего, вот в чём проблема. Наука по сути своей — штука некоммерческая, поэтому она прекрасно соединяется с образованием (а как только становится коммерческой — соединяться перестаёт, я никогда не слышал, чтобы исследовательские центры коммерческих компаний учили студентов). А вот техника — ремесло — эффективнее всего работает именно в коммерческой среде, и там не до студентов, там другие проблемы, бабло надо зарабатывать.

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

А после

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

admin аватар

Да конечно,

Да конечно, стоит. Проблема в том, что мотивации обычно не хватает.

Получается

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

admin аватар

Сложный

Сложный вопрос.

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

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

И как я забыл

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

admin аватар

Да ну нет, конечно

Работа на старших курсах не имеет никакого отношения к образованию. Несомненно, она полезна, просто человек начинает получать специальность (ремесло) несколько раньше по времени, и если на это есть ресурс — прекрасно. Но обучение в ВУЗе тут ни при чём, работа не может ни с какого боку рассматриваться как его часть.

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

А можно ли

Добрый день, Андрей Викторович. Возник такой вопрос, а можно ли выучить самому высшую математику? Живу в Кыргызстане, учусь на программиста, и у нашей системы образования явно пробито дно. Учим математику наверное за класс 9, никакой высшей математики. А про те инструменты "программирования" которые мы учим, вам лучше не знать. Единственным вариантом остаётся самообучение, математика наверное у меня на уровне 6-7 класса, но есть очень большое желание стать программистом. Возможно ли мне от самых "низов" математики выучить высшую математику самому? Может вы могли бы посоветовать какие-то книги?

admin аватар

Конечно, можно

Что можно — в этом я не сомневаюсь. Просто, в отличие от программирования, изучить математику нужно очень хотеть.

По книгам, наверное, вопрос всё-таки не ко мне.

Навыки сисадмина

Скажите, а ХОРОШИЙ программист должен владеть навыками сисадмина?

admin аватар

Сисадмин

Сисадмин — это по факту пользователь. Очень продвинутый, но всё же пользователь. Если человек не может подчинить себе компьютер в роли пользователя, как он может подчинить себе ту же железку в роли программиста?

GUI на pure C

Доброго здравия, А. В. Приходилось ли вам писать гуёвый софт на Си (с использованием библиотек виджетов, не [n]curses)? Если да, могли бы порекомендовать что-нибудь для сотворения оного безобразия? Для C++ изобилие библиотек виджетов, а вот Си, имхо, как-то вниманием обделен. Понятно, что есть GTK+, но он уж очень монструозен и мейнстримен. Заинтересовал IUP от создателей Lua (именно простотой и легковесностью), но вот со сборкой у него все довольно неоднозначно - требуется какой-то "фирменный" Lua-шный наворот над православным make, в частности.

"фирменный"

"фирменный" Lua-шный наворот
Ничего подобного - обычный make, с Lua там никакой связи нет. Вызывать функции из кода на Lua можно, есть привязки, но сама по себе библиотека вполне сишная. Она, правда, требует для своей работы GTK или Motif, в зависимости от конфигурации, поэтому тянет довольно много зависимостей, но сама по себе весьма незамысловата.

admin аватар

Нет, такого я

Нет, такого я никогда не пробовал. Как-то так предпочитаю для написания GUI использовать ООП, оно там очень к месту. Можно ещё, наверное, на Motif посмотреть. Ну и Tk — в принципе это библиотека на plain C, насколько она на Tcl завязана -- не знаю.

как пользоваться youtube

Кстати, навеяло темой про интервью.

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

Есть неплохой, хотя и малоизвестный, инструмент для просмотра ютуба без помощи браузера. И нет, это не youtube-dl. youtube-dl хорош, но только для просмотра/скачивания видео по уже имеющейся ссылке.

Называется youtube-viewer, может знаете? Позволяет делать поиск по видео, по каналам, читать комменты, может ещё что-то, с чем я не разбирался. Есть консольный вариант, и варианты под GTK+2 и GTK+3. Написан на перле (да, понимаю, скриптовый язык, фе, но это меньшее из зол по сравнению с JS в браузере).

Пользуюсь уже несколько лет, все мои потребности в ютубе он полностью покрывает.

кстати, о рекламе

Ещё один важный момент, о котором я не упомянул. Когда я смотрю видео с ютуба при помощи youtube-dl или youtube-viewer (а я только так его и смотрю), то никаких стандартных ютубовских рекламных вставок я не вижу. Я к этому уже настолько привык, что просто забыл, как оно через браузер.

Рекламные вставки

Когда я смотрю видео с ютуба при помощи youtube-dl или youtube-viewer (а я только так его и смотрю), то никаких стандартных ютубовских рекламных вставок я не вижу.

Потому что ютуб вставляет рекламу поверх авторских видео. Их жиэснутый плеер останавливает воспроизведение ролика и запускает рекламу. youtube-dl эту "рекламную интеграцию" тупо отсекает. Намного хуже обстоит дело с рекламой от самих видеоблохеров - она вставлена при монтаже и её вырезать невозможно. Выход тут только один - не смотреть подобных блохеров, там, обычно, кроме пропаганды потреблядства ничего нет.
А так youtube-dl - это, конечно, спасение для адекватных людей, т.к. позволяет не контактировать с веб-"интерфейсом" ютуба для умственно-отсталых. Был бы ещё он реализован на нормальном языке...

SponsorBlock

А ещё есть SponsorBlock - проматывает все рекламные интеграции в самом видео.
https://sponsor.ajay.app/
Я смотрю через mpv (https://mpv.io/), поэтому использую этот скрипт: https://github.com/po5/mpv_sponsorblock

Приглашаю вас на интервью :)

Доброго времени суток, Андрей Викторович!
Меня зовут Алексей, я программист (.NET C#), и кроме программирования я веду канал на ютубе. Называется он "АйТиБорода". На нем я беру интервью у коллег на тему технологий и персоналий.
Хочу предложить вам сделать совместный контент про вас и про язык С. Тем более, что мои подписчики вас хорошо знают и ждут в гостях на канале :)

admin аватар

Вот это, как говорят, заход...

Вы меня, честно говоря, озадачили.

Пожалуй, это можно устроить при определённых условиях, а именно: ролик с моим участием, помимо ютюбика, должен быть выложен куда-то ещё в виде файла для скачивания (то есть именно не "встроенное видео", а файл в видеоформате, который можно скачать по обычной прямой ссылке, НЕ с файлопомоек, НЕ с торрентов и прочих пиринговых сетей, а вот прямо прямая ссылка на видеофайл, отдаваемый по http/https, без каких-либо защит от hotlink'ов и прочих трудностей), причём в двух версиях: одна совпадающая с той, что на тюбике, вторая такая же, но с вырезанными рекламными вставками. И в описании видео на тюбике должна быть ссылка на страницу, где это всё лежит, или прямо на сами файлы. А сама страница, где лежат файлы, не должна содержать никакой рекламы. И лежать там эти файлы должны по меньшей мере до тех пор, пока основной ролик доступен на ютюбе. Если вдруг есть проблемы с хостингом, могу на своём сайте выложить.

Ну а нет -- значит нет.

Ну ради такого

Ну ради такого интервью, я его посмотрю прямиком на ютюбе (хотя я вообще на ютюбе ничего не смотрю). Без всяких блокеров, чтобы автору скапало там сколько-то чего-то, для чего он всё это делает :)

admin аватар

Ну, это дело

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

Впрочем, мы вроде бы обо всём договорились, мои условия Алексея, как я понял, не напрягли. Единственный момент — совершенно непонятно, когда это будет. Ему из Минска в Москву выбраться не так просто.

Единственный

Единственный момент — совершенно непонятно, когда это будет.
АВ, прояснилось ли что-нибудь? Хотя бы известно, будет ли это до Нового года?

admin аватар

До нового года

До нового года этого совершенно точно не будет, то есть о таком и речи не шло с самого начала.

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

Любопытно, а

Любопытно, а никто из посетителей сего сайта не интересовался, грешным делом, у Бороды - он в курсе вообще? Анонимусы ведь такие анонимусы... По крайней мере, на момент интервью с Чайкой он о Столярове слыхом не слыхивал.

Ответочка неверующим

Это был я, Борода Лёша. В знак доказательства смотрите стену Ютуба - чиркану там пост, что это я тут поднял бучу :)
За webasm могу сказать, что люблю новые вещи, и так как я пишу на дотнетах, было грех не воспользоваться blazer'oм.
В целом, к своему сайту я отношусь как к эксперименту, а не как к "лицу".
И да, на все условия я согласен, и даже больше (А.В. ответил вам на почту)

admin аватар

люблю новые

люблю новые вещи

Ну всё, сейчас тут такое начнётся :-D

upd: народ, давайте полегче, мы же не хотим сорвать интервью :-) Приношу свои извинения тем, чьи комментарии остались скрыты, в принципе вы даже где-то правы, но, э... у обсуждаемого человека есть другие достоинства — как-то же он смог на свой канал притащить толпу весьма достойных людей и довольно грамотно с ними побеседовать на камеру. Я всего два интервью там смотрел, но оба мне понравились.

admin аватар

Интервью с

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

А где

А где можно посмотреть это интервью?

admin аватар

Вроде ссылку

Вроде ссылку сюда уже приносили: http://www.stolyarov.info/guestbook/archive/3#comment-2782

Уж не мне вам

Уж не мне вам советовать, но я бы очень хотел увидеть интервью, да и сообществу это было бы полезно.
Понимаете, как бы то не было, но проблема JS не в том, что люди не могут жить без него. Проблема в том, что люди вообще не подозревают о его существовании.
Говорю за себя, пол-года назад я был таким. Уже как 2 года метался между языками программирования, гребанными курсами и т.д.
Хоть у меня Линукс и стоял (мне очень нравилась идея свободного ПО), но про JS я не знал.
И только благодаря IT-бороде, Чайке я узнал о вас и ваших книгах.
Это было прям озарение, я наконец-то понял как правильно учиться программированию.
И не сочтите за любопытство - но хотелось бы узнать побольше о всем нормальном программистском движении.
Просто представьте сферического студента в вакууме, который решил заняться программированием. По первому же запросу в поисковике ему вылезут либо веберы, либо онлайн-школы за 17к. Найти ваши книги шанс минимальный.
Сколько людей с таким мышлением можно исправить благодаря интервью...
Хоть и согласен, нужна ссылка на прямое скачивание видео.

admin аватар

Ну вот

Ну вот смотрите. Youtube — зло, Гугл — зло, реклама (любая) — зло, копирастия — зло, любые попытки как-то сделать так, чтобы юзер мог контент просмотреть, но не мог создать локальную копию (ровно то, чем youtube занимается), да и вообще любые «защиты от копирования» — это даже не просто зло, это нечто такое, за что нужно четвертовать, колесовать и жечь живьём, поскольку всё это достигается только принудительным подсаживанием пользователю на его компьютер или иное устройство заведомо вредоносного софта.

Все, кто обо мне знает, прекрасно знают и то, что я всё перечисленное считаю злом.

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

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

А вот другой

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

Сайты

Где можно научиться нормально делать сайты?

Сейчас уже, к сожалению, нигде. Только самостоятельно. Все "курсы" создания сайтов толкают лютую дичь - пропагандируют использование всяческих вордпрессов, поделок на питонах, жабаскрипте в серверном его варианте и прочих недоразумений.
Можно поступить так:
1) Освоить основы HTML и CSS в минимальном варианте.
2) Освоить основы работы с любым вер-сервером (по сути его настройку).
3) Сделать простой сайт из набора html-страниц.
4) Сделать сайт из пункта 3 динамическим, реализовав логику на каком-либо ЯПе.
Категорически не стоит учиться "созданию сайтов на фреймворках" - они скрывают всю суть взаимодействия браузер-сервер, а многие ещё и навязывают использование жабаскрипта.

admin аватар

off-topic

Nelson, не хотите зарегаться? Делается на странице гостевухи. Я с удовольствием навешу вам флажок "comment without approval", чтобы ваши комментарии появлялись сразу.

Регистрация

Спасибо за приглашение. Зарегистрировался.

admin аватар

навесил флажок

навесил флажок :) должно теперь принимать без премода

admin аватар

А нигде

Я вообще сомневаюсь, что сайты делать возможно "нормально". Не так кошмарно, как сейчас обычно делается — ну, можно. Но учебников я таких не писал (не потому что принципиально, а потому что всё успеть невозможно). И чужих посоветовать, увы, не могу; даже если считать, что учебники в любых областях пишут люди выдающиеся (что на самом деле не так), то выдающаяся макака не станет благодаря своей "выдающести" чем-то отличным от макаки. Нынешний веб — гора дерьма, есть некая господствующая парадигма, которая ничего кроме дерьма порождать не способна, и эта парадигма даже не просто господствующая, она де-факто осталась единственной.

Следующим вопросом, скорее всего, будет сакраментальное "так делать-то что". Ну что, чёрт его поймёт, что. Лично я для себя решил, что нужно взять xhtml 1.0, css lev.1, категорически и полностью отсечь любые возможности css более высоких уровней, а равно и html5, и, естественно, любое исполнение тьюринг-полного кода в браузере, как бы оно ни называлось. Из того, что останется, судя по всему, можно использовать более-менее всё.

a что насчёт JavaScript?

Должна ли страница со ссылкой на видеофайл корректно открываться без необходимости запуска скриптов в браузере?

(Это я на сайт Бороды зашёл, а он без JS вообще ничего не показывает.)

admin аватар

Чёрт, про это я

Чёрт, про это я как-то даже и забыл. Да фиг с ним с JS, если Борода вдруг остальные условия примет, я страничку со ссылками на эти два файла у себя на сайте сделаю :-)

Кстати, по поводу сайта Бороды -- я вон на него зашёл с включённым JS, так мне это не помогло, всё равно ничего не показывает.

Кстати, по

Кстати, по поводу сайта Бороды -- я вон на него зашёл с включённым JS, так мне это не помогло, всё равно ничего не показывает.

Кстати да, аналогично. Может это как-то модно "оптимизированный под гуглохром" сайт?

Я проверил на файрфоксе и на вебкитовском браузере -- и там, и там пишет "Загрузка бороды..." и на этом всё.

Webassembly

Там webassembly - https://ru.wikipedia.org/wiki/WebAssembly. Ну, то есть, совсем всё печально. Очередная "современная" "технология" - у него сайт по сути написан на каком-то высокоуровневом ЯПе и скомпилирован в т.н. wasm.
Очередной "виток развития" веб-"технологий": теперь в браузер прилетают не только жиэс-скрипты, но и всякая скомпилированная хрень, исполняющаяся на стековой виртуальной машине.

admin аватар

Руки оторвать :-\

Руки оторвать :-\

про сайт

Андрей Викторович, а чем закончилась дискуссия на ЛОРе по поводу CMS (в смысле, что Вы в итоге прикрутили)? И хотелось бы узнать, какие средства были использованы для написания и ведения данного сайта, и почему? Спасибо.

admin аватар

Дискуссия

Дискуссия ничем не закончилась. Сейчас в разработке некая CMS (естественно, с нуля), которая будет соответствовать моим требованиям. Но она не готова и не знаю, когда будет готова, это сложно предсказывать.

Сайт этот как был в 2009 году сделан на пятом друпале, так до сих пор на нём же и работает.

Common Lisp & Scheme

А почему в книге рассматривается CL, а не Scheme, если вторая получше и попроще?

admin аватар

Вы хотя бы

Вы хотя бы оглавление смотреть не пробовали?

про видео и софт для монтажа

Не могу найти комментарий про отсутствие подходящего софта для монтажа видео, напишу здесь: публикация аудиофайлов здесь на сайте не будет ли альтернативой, или их тоже сложно монтировать?

admin аватар

Честно говоря,

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

не знаю как

не знаю как аудитории, но лично мне было бы интересно услышать рубрику "А, вот, я подумал..." или "Хм, имею соображение на тему..." в виде коротких записей. А категория физического качества аудио (шумы и т.п.) полностью нивелируется содержанием. Обращаюсь с просьбой опубликовать пилотный выпуск!

admin аватар

Нет, это вряд

Нет, это вряд ли. Видео ещё хоть какой-то смысл имеет (хотя мне это и не вполне понятно), но вместо аудио стоит — и для меня это очевидно — просто писать тексты. Например, сделать блог.

Комитеты и их поделки

В архиве были примеры ASCII с множеством бесполезных и отсутствием нужных символов, Unicode с эмодзи, C++ с его стандартами и даже POSIX.

А есть ли какие-то позитивные результаты работы комитетов?

И в комитетах ли дело? Можете ли вы привести примеры спецификаций, языков и тд, которые получились хорошо, сделанные не комитетами?

admin аватар

флеймА не будет, флеймер спился

> и даже POSIX.

Почему "даже"? Такое же комитетское поделье, как и все остальные. Ну, самый первый был ещё ничего, всё последующее скатилось, куда оно всегда скатывается.

> А есть ли какие-то позитивные результаты работы комитетов?

Разумеется, нет, и быть не может. Комитеты принципиально не могут приносить пользы и порождать конструктив. Просто в силу их сущности.

> Можете ли вы привести примеры спецификаций, языков и тд, которые получились хорошо, сделанные не комитетами?

Единственный язык программирования из тех, что я видел, изначально сделанный комитетом — Ада. Совершенно адский язык, простите за каламбурчик. К счастью, вроде она сдохла уже теперь совсем. Но вообще-то этот язык был мёртв изначально, и попытка в 95 году что-то исправить, разумеется, ни к чему не привела, комитетские бастарды заведомо нежизнеспособны.

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

Что касается спецификаций, то, например, Интернет фактически живёт по спецификациям, созданным единолично Йоном Постелом. Без всяких комитетов. Комитеты там позже образовались, когда сам Постел был уже серьёзно болен и не мог эффективно противодействовать всей этой мразоте. Собственно, тогда кроме понятия RFC появилось ещё и понятие STD (типа того, что "некоторые RFC равнее других"), и всё прочее в обычном комитетском духе. После его смерти в 1998 году Интернет стал неотвратимо скатываться в дерьмо, спасает только то, что в Интернете слишком много народу, чтобы этим народом можно было командовать.

> И в комитетах ли дело?

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

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

Игорь аватар

Дедушка со спектрумом :)

Андрей Викторович, здравствуйте!

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

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

Итого:
Сейчас ему 5 лет, пишет, читает, считает сколько угодно, оперирует целыми числами (умножение столбиком произвольных, в уме до тысяч), сложение, вычитание. Натуральные дроби (сложение, вычитание, умножение). Степени и прочее. Геометрию понимает, координатную плоскость и т.п.

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

Так вот со спектрумом, в итоге подарил ему его личный так сказать компьютер. И он программки простенькие там свои детские пишет. Цикл типа от и до, и вывод чисел и т.п. Пишет это сам, а не то что я ему говорю - пиши.

Но т.к. вы - будучи признанным специалистом в области преподавания программирования, говорите что начинать изучение необходимо с Паскаля, то я всё таки думаю не будет ли какого-то "Бейсика головного мозга" у ребёнка, если вот он начинает своё знакомство с этого куцого языка. Или всё-таки свою толику полезного в качестве игрушки может дать пытливому уму?

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

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

- Ну и с программированием, думаю вот малинку с фрёй всё же попробовать показать ребёнку. Про паскаль я ему уже говорил, что типа: "Ну вот раз уж ты программки пишешь и тебе интересно, то тогда давай паскаль по изучаем", а там посмотрим.
И что характерно, вы в книге (или на сайте только) писали, что чтобы успешно изучать программирование, должны быть задачи которые хочется решить самому (могу наврать в формулировке, но смысл такой), так вот задач таких у него вагон и две тележки. Вычисление степеней двойки, факториалов, игра в угадай число и т.п. Мы с ним на спектруме это делали (ну и делаем периодически снова), т.е. я пишу, а он доволен. Но на малинке и паскале я думаю скорость будет гораздо выше.

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

И как водится в таких длинных письмах постскриптум:
Компьютер видит только с *NIX'ом, игровые - обучающие программки типа gcompris, geogebra запускает исключительно из консоли :)

Снимаю шляпу

Сейчас ему 5 лет, пишет, читает, считает сколько угодно, оперирует целыми числами (умножение столбиком произвольных, в уме до тысяч), сложение, вычитание. Натуральные дроби (сложение, вычитание, умножение). Степени и прочее. Геометрию понимает, координатную плоскость и т.п.
Вот здесь я, встретив в наступившем году очередную группу 20-летних студентов-"платников", чавкающих жвачкой и спрашивающих: "А чё, автомата не будет?!", при этом не знающих, как найти среднее значение, путающих оси координат, вздыхающих и закатывающих глаза от слова "логарифм" и не знающих, что "дважды три" и "трижды два" - одно и то же, тихо приунываю.
Честь и хвала Вам, что не отмахиваетесь от чада "многой работой", что сейчас в моде (мама на диване с ногтями, папа в "танчиках", а потом: "Чой-то в школе у него учительница плохая совсем, надо ему репетитора какого-нибудь, что ли..."), а всячески способствуете его развитию и удовлетворяете любопытство и интерес. Если он у Вас такими темпами в 5 лет софт из консоли запускает, к школе ядра собирать начнет, не иначе... ;-)

Игорь аватар

А ну и про ядра

А ну и про ядра :)

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

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

admin аватар

Если он сам до

Если он сам до компиляции ядра доберётся, да даже если вы ему это и покажете (но не будете заставлять нигде) — он от этого ребёнком быть не перестанет. Игрушки разные бывают. Он же пока ещё не идёт работать сисадмином за деньги, правда?

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

Игорь аватар

Так оно, но

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

admin аватар

Да не, ну я тоже

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

Ох, какую

Ох, какую бурную реакцию эти самые ядра вызвали, и зачем я их только приплел... ;-) Просто вспомнилась старая-престарая история-полуанекдот то ли с башорга, то ли откуда еще про программиста, который маленькой дочке написал игрушку-паззл в виде глобуса Земли со всем "нутром". Папин друг пришел и спрашивает: "Что это ты делаешь?" А она такая, с серьезным видом: "Ядро собираю".
А так да, увлечения бывают разные - кто-то марки собирает, кто-то кроликов разводит, почему бы и ядра не пособирать в охотку.

Игорь аватар

Ну вот по

Ну вот по поводу школы я тоже немного напрягаюсь... Или вернее сказать в раздумьях. Как мне кажется к моменту поступления в школу (да уже наверное и сейчас) в первом классе ему делать будет нечего, а я со своей стороны ему и всякие моральные ориентиры тоже задаю, что типа: "Учителя или того, кто тебя чему-то учит надо уважать и внимательно слушать, ведь он тебе рассказывает то чего ты ещё не знаешь и т.п.". Но вот я представляю как он в первом классе сидит и ... И дальше не могу себе представить чтобы он с интересом занимался рисованием чёрточек, когда мы с ним сейчас периодически диктанты пишем... Учил цифры и буквы... Это же может просто отбить какой-то интерес к учёбе в школе или подорвать авторитет педагогов в его глазах.

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

А про софт из консоли - ну это очень громко сказано, он знает 2 нужных ему программы gcompris и geogebra, ну и leafpad иногда, знает как сменить рабочий стол (без моих окон) по CTRL+Fn, знает как запустить консольное меню по ALT+F2 ну и там уже автодополнением набирает нужную программулину.

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

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

Я до 1 класса

Я до 1 класса умел тоже не плохо читать, писать и считать (не умножение и не до 1000, и не в голове, но все же), и диканты мог писать, так вот в 1 классе мне было достаточно интересно, несмотря на то, что я по знаниям был заметно сильнее всех в классе. Так что, подозреваю, что в 1 классе ему все-таки будет интересно. По-крайней мере, надеюсь на это.

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

Все то, что Вы ему даете в 5 лет, можно начать давать, например, в 9,10 или 11 лет. В Вашем случае главное - голова у него работает, и это значит, что в более позднем возврасте у него не должно быть проблем с учебой и программированием. Так что быть может, что не стоит и нет смысла бежать впереди поезда, ведь он это все потом по-любому будет проходить в школе, а вот навредить мозгу ребенка перегрузкой в таком возврасте очень даже можно.

У меня тоже есть дети, если что. Так вот, старший в 5 лет тоже был смышленный, но мы ему давали только комплекты Лего различной сложности, с самых простых до достаточно сложных. Пускай скаладывает, и таким способом развивает мышление. Думаю, не зря есть вот все эти комплекты детям для каждого возвраста. В школе математику понимает, с учебой проблем нет. Сейчас ему - 11, и я начинаю его обучать Линуксу, планируя скоро его начать обучать основам программирования на Паскале. Как-то так... Опять же, не претендую на истину в последней инстанции, но вот такое у меня мнение по проводу всего этого!

С уважением!

Игорь аватар

Да, тут и Андрей

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

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

А лего, ну лего конечно есть, но вот с лего он уже не играет год наверное, и весь этот год у него судоку в жоском почёте :)

admin аватар

Чёрт-те что

Коммент я этот раскрыл, но вообще то, что тут написано, резко контрастирует с моим личным мнением на эту тему. "Давать", "не давать"... что за хрень? Знания -- не спички и не лекарства, какого дьявола их "хранить в месте, недоступном для детей". Что ему не понравится -- то он сам "не возьмёт", сопротивляться начнёт, с рук сбежит в паравозики играть и всё такое. А пока берёт, да ещё с удовольствием -- давать надо всё, что берёт. И радоваться, что так много взял.

Очень возможно,

Очень возможно, что Вы - правы!

Очень интересная тема

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

Игорь аватар

Добрый день

Добрый день Алексей.

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

А так то да... Современный мир в смартфонах - это просто какой-то масштабный проект по дибилизации масс.

Не только смартфоны

Современный мир в смартфонах - это просто какой-то масштабный проект по дибилизации масс.

Если бы только в смартфонах. Теперь, "благодаря" веб-макакам, как недавно оказалось, нельзя даже оставить полноценный комментарий на сайте.
Зарисовка: мне потребовалось оставить комментарий на сайте, который использует жиэснутый сервис комментирования (что уже само по себе вызывает многократный фэйспалм по умолчанию).
Казалось бы, ну вот что может пойти не так при банальном добавлении комментария на сайт? Оказалось, что всё. Чмо, разработавшее т.н. систему комментирования жиэснутый кусок дерьма, решило, что оставлять можно только короткие комментарии (что согласуется с реальностью, принимая во внимание умственный уровень создателей веб-поделок). В итоге пришлось оставить ссылку на простой текстовый файл.
Т.е. своим поделием веб-макаки навязывают деградационный формат комментариев.

admin аватар

Про компьютер и телефон

Я не спец по педагогике, но есть мнение, что дети вдохновляются в основном действиями родителей. Если родители из смартфона не вылезают, там же окажутся и дети. Если родители, например, на компьютере поставили Linux с fvwm2, где никаких иконок, и презирают гуёвых мышевозил, а смартфонам предпочитают кнопочники (и ещё при этом всем своим видом показывают, что смартфоны только для дураков, хотя прямо этого не говорят) — ну, понятно что будет.

admin аватар

Про математику

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

А про программирование я так и не понял — он у вас на чём сейчас пишет-то? Бейсик у вас упоминается только в составе фразы про "бейсик головного мозга" — так это правда бейсик или вы так, для фигуры речи его приплели?

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

ZX Spectrum

> так это правда бейсик или вы так, для фигуры речи его приплели?

Если что, на ZX Spectrum и его клонах, бейсик прошит в его 16-килобайтном ROM-е. Загружать туда какой-нибудь интерпретатор паскаля с кассеты (или цифрового аудиоплеера) непрактично и неудобно при том, что там всего 48k оперативки. А в модификациях, где оперативки больше, это реализовано через переключение банков памяти.

В любом случае, любая программа там загружается из консоли BASIC. даже если она сама не на нём.

Игорь аватар

Про

Про программирование - да, сейчас вот на бейсике и пишет.

admin аватар

А что, на

А что, на Паскаль перекатиться никак? Скажите ему, например, ненавязчиво, что когда он подрастёт, вы ему Паскаль расскажете — и тогда, подозреваю, придётся прямо сразу рассказывать :-)

Игорь аватар

Вот сейчас в

Вот сейчас в итоге прямо и готовлю имеющийся стариный какой-то неттоп. Как преподнести - подумаю, пока один из вариантов:

Сейчас приводящие его в восторг программы - это например написанные вычисление степеней двойки, и факториалов. Ну т.е. понятно что вычисление со всеми цифрами результата и не ограниченными архитектурными ограничениями до 10^38.

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

ООП замешательство

Вчера на видео трансляции М[name removed] я задал вопрос -"действительно ли ООП нужно учить, только после того как напишешь программу на пару тысяч строк в императивной парадигме, ибо необходимость ООП становится очевидным только в больших приложениях". Он сходу отмахнулся и сказал это чушь и ООП надо учить сразу. Человек опытный 20 лет стажа. Работа в крупных компаниях. Я как человек не опытный, но интересующийся не знаю теперь какой точке зрения доверять. Так как, очевидно, у меня нет багажа знаний который бы помог определить бОльшую правоту той или иной точки зрения(((. Но если прав он то я совершу промах откладывая изучение ООП.

Крайне сомнительная авторитетность

Вчера на видео трансляции М[name removed] я задал вопрос -"действительно ли ООП нужно учить, только после того как напишешь программу на пару тысяч строк в императивной парадигме

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

Видеоуроки

Вот не согласен.

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

А вот например, я с удовольствием смотрю видео 3blue1brown, там как раз он показывает на компьютере анимации, например двигающиеся трёхмерные графики.

Вот такие видео-лекции действительно легче воспринимаются, чем чтение текста.

admin аватар

Они не "легче

Они не "легче воспринимаются", они в лучшем случае менее утомительны. Ну то есть если одно и то же время потратить на чтение сложного текста и на просмотр занимательно состряпанного видосика — то в первом случае устанете, скорее всего, сильнее. Но на этом всё. Если цель — освоить предмет, то выхлоп от видосика мизерный, а выхлоп от книги — ну, зависит, конечно, и от качества книги, и от навыков читателя, но может, по крайней мере, быть существенным. А может, конечно, и не быть.

Полезность видеоматериалов

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

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

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

Например, в книге гораздо проще записать и прочитать полное формальное доказательство теоремы, а в видео — иллюстрированное-анимированное, но не настолько строгое.

То есть, на мой взгляд оба формата дополняют, а не заменяют друг друга.

Но с важным дополнением — это относится только к хорошим видеоматериалам.

Ещё могу привести в пример NileRed. Он проводит на практике различные химические эксперименты, объясняет свои действия, и включает в видео формулы реакций.

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

---

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

Но, может, мне просто хорошие видеоматериалы по программированию никогда попадались.

admin аватар

Ну, меня вы тут

Ну, меня вы тут всё равно не убедите, но и я вас, судя по всему, тоже. Ну так и ладно :-)

Мне кажется,

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

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

admin аватар

Повторно

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

А обсуждаемый вопрос, заметим, был задан не просто "промышленному программисту", а виндузятнику и вебщику.

Я полагаю, что

Я полагаю, что Вы смело можете положиться на точку зрения Андрея Викторовича. Одно дело - быть 20 лет программистом, совсем иное - быть программистом и в то же время преподавать предмет в ВУЗе с тем отношением, с которым это делает уважаемый хозяин сайта. Читая его эссе, читая его размышления на сайте, и его книги, очень хорошо видно, что он к вопросу преподавания программирования подходит очень основательно, и старается дать своим ученикам качественные основы ремесла, в отличии от многих преподавателей ВУЗов, которые следуют им только известно каким принципам при обучении студентов.

admin аватар

Цитата с его

Цитата с его сайта:

Все равно, с какого языка начинать изучение программирования

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

Начинать изучать программирование

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

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

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

admin аватар

Мой опыт

Мой опыт показывает, что от сишности головного мозга есть только одно спасение — не начинать с Си. Среди моих знакомых есть очень умные люди. Начавшие с Си. Со всеми вытекающими последствиями. Исключений не видел.

Андрей

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

admin аватар

Чёрт!

Спасибо, сократил цитату

Очевидность

Получается я столкнулся с проблемой не возможности проверить достоверность информации из за собственной слабой компетенции. Я не могу объективно оценить степени вашей или его правоты. Получается, чтобы сделать вывод самостоятельно, мне придется учится дальше. Со временем, возможно, сделать выводы. Существуют ли возможности сделать очевидными для новичка критичные моменты обучения? Или они видны только с позиции опытного человека. Например, в данном вопросе про ООП.
(первый раз мыло указал не верное, пропустил цифру 8)

admin аватар

Тут всё хуже

Тут всё хуже — если вы под опытными людьми понимаете программистов, то подавляющее большинство из них ни малейшего понятия не имеет о том, как учить. Между прочим, если под программистами понимать всех, кто пишет что-то на каком-нибудь языке программирования, то подавляющее большинство из них и программировать тоже не умеет (как, кстати, и этот ваш персонаж, судя по всему). Мне вот что интересно, вы тут припёрлись в комменты, с собой пытались ссылку на дрянь притащить — вы перед этим хотя бы предисловия к моему первому тому прочитать соизволили? Если нет — ничем помочь не могу.

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

Разборчивость

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

admin аватар

В принципе даже

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

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

Если не С++

После изучения Паскаля, ассемблера и Си, что же лучше всего для освоения ООП, чтобы точно прочувствовать, где ООП, а где императив? С++, как мне показалось, слабо для этого пригоден.

Чистого ООП,

Чистого ООП, как и чистого спирта, днем с огнем не сыщешь. Абсолютное большинство современных ЯП - императивные с ООП (ну и щепоткой функциональщины) "на сдачу" (даже во FreePascal есть ООП). Часто как ООП-язык преподносят Java, но от того, что там надо написать волшебное слово "class" даже для "хелловорлда", он таковым не становится. В принципе, к "чистым" можно отнести Smalltalk, но это вещь в себе, скажем так. Видимо, C++ в сильно усеченном виде для знакомства с ООП - наименьшее из всех зол.

admin аватар

Чёрт его знает.

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

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

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

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <ins> <del> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Проверка на бота
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.